20145325张梓靖 《网络对抗技术》 免杀原理与实践
实验内容
- 使用msf编码器,veil-evasion,以及利用shellcode编程等免杀工具,来验证各种免杀方式的免杀强度
- 通过组合各种技术实现恶意代码免杀,并运行在另一部机子上进行测试
基础问题回答
-
杀软是如何检测出恶意代码的?
通过特征码:对已存在的流行代码特征的提取与比对
通过行为:是否有更改注册表行为、是否有设置自启动、是否有修改权限等等
-
免杀是做什么?
植入恶意代码,防止被杀毒软件检测出来,并能成功控制被植入机
-
免杀的基本方法有哪些?
对恶意代码进行加壳、用其他语言或编译器进行再编译,利用shellcode进行编码,减少对系统的修改,多在内存里进行操作,多使用反弹式的连接
实验总结与体会
在本次实验中,主要是对恶意代码进行免杀操作。可以看出,对于现在的杀毒软件来说,着重的是恶意代码的特征值与行为,一旦我们给出的恶意代码避免了被查杀的特征值、减少了对系统的一些行为,那么杀毒软件将无法判断此代码是病毒;更别说一些恶意代码捆绑到了有用的应用软件上,更甚是自己创造的一个新病毒。所以,对于杀毒软件的应用上,我们不能盲目的绝对相信,也还是需要自己去多积累些防毒杀毒的知识与方法,尽量做到有毒可知,有毒可删。
离实战还缺的技术或步骤
虽说在实验中我们做出的很多恶意代码都能避免被杀毒软件的查杀,但是杀毒软件也在不断更新、扩充病毒库,所以如果想真正的进行实战的话,最好的方法就是自己去研究各个软件的源代码,寻找到漏洞,并且能够写出攻击该漏洞的恶意代码,同时还需要了解计算机是如何运作的、杀毒软件是如何查杀的方面的,来进一步的避免自己生成的恶意代码在半道上被“截获”。
实践过程记录
直接使用Msfvenom来生成恶意代码,并使用shikata_ga_nai对其再进行编码
- 靶机:win7 杀毒软件:电脑管家 杀毒范围:所有盘
有一个风险,但它和我们刚生成的恶意代码无关
- 靶机:win7 杀毒软件:电脑管家 杀毒范围:存储刚生成的恶意代码的F盘
存在10个风险,且我们生成的恶意代码被查出
为什么杀毒范围大了,很多病毒就查不出来了?说明这款杀毒软件可能有它的局限性,大范围的查找可能精确度、效率不高,所以以后还是多多一个盘一个盘的单独杀毒吧
- 靶机:win7 杀毒软件:2345安全卫士 杀毒范围:存储刚生成的恶意代码的F盘
查出恶意代码
同样继续使用Msfvenom,但使用shikata_ga_nai对其再进行10次的编码
- 靶机:win7 杀毒软件:电脑管家
当把生成的可执行文件一传到win7,电脑管家就自动对其进行检测并删除掉了
使用Veil-Evasion生成免杀的可执行代码
- 这里选择的是用ruby进行编译的meterpreter的rev_tcp
同样的,一传送到win7上,就被电脑管家检测出并删除了
使用Msfvenom直接生成shellcode代码,并在靶机上,利用此shellcode进行编程,生成可执行代码
- 靶机:win7 杀毒软件:电脑管家 杀毒范围:存储刚生成的可执行文件的E盘
未检测出恶意代码
- 靶机:win7 杀毒软件:2345安全卫士 杀毒范围:存储刚生成的可执行文件的E盘
未检测出恶意代码
- 尝试运行该可执行文件,查看是否能在msfconsole中进行连接,并控制靶机
成功控制靶机
- 在Virscan检测该可执行软件的免杀强度
有12%的杀毒软件检测到该可执行文件为病毒,说明使用编程方式的病毒免杀强度还是挺高的
使用Msfvenom生成被shikata_ga_nai编译过的shellcode代码,并在靶机上,利用此shellcode进行编程,生成可执行代码
- 靶机:win7 杀毒软件:电脑管家、2345安全卫士 杀毒范围:存储刚生成的可执行文件的E盘
未检测出恶意代码
- 在Virscan检测该可执行软件的免杀强度
这次只有5%的杀毒软件检测出来了,说明对shellcode进行初次的再编译对于免杀来说还是很有必要的
使用Msfvenom生成被shikata_ga_nai编译过10次的shellcode代码,并在靶机上,利用此shellcode进行编程,生成可执行代码
- 靶机:win7 杀毒软件:电脑管家、2345安全卫士 杀毒范围:存储刚生成的可执行文件的E盘
未检测出恶意代码
- 在Virscan检测该可执行软件的免杀强度
同只用shikata_ga_nai编译一次的免杀效果是一样,那就可能可以说,无论我们用同一个编译器对shellcodea编译了多少次,只要杀毒软件认定该编译器生成的文件就是有问题,那么最终都会被查杀出来
转载于:https://www.cnblogs.com/zzjzzjzzj/p/6591128.html