gpt4 book ai didi

network-programming - pwnat 仍然是一个适用的解决方案吗

转载 作者:行者123 更新时间:2023-12-03 01:14:31 24 4
gpt4 key购买 nike

我需要一个 NAT 穿越解决方案,以便通过互联网传输 RDP 数据。我发现了以下工具,它真的很棒 - pwnat .

我已经在不同路由器后面的两台不同机器上尝试过,但我无法按照上面链接中的说明使其工作。那么 pwnat 是否仍然有效?如果是,我可能做错了什么?这对我很有帮助。

注意:我使用Windows机器进行测试,并从以下链接下载了Windows版本:

http://www.sumitgupta.net/pwnat-windows-complied-version/

最佳答案

没有。
我假设你知道它是如何工作的: enter image description here
服务器向固定地址(例如 1.2.3.4)发送 ICMP 回显请求数据包,该地址不会返回任何回显答复,客户端假装是 Internet 上的一跳,向服务器发送 ICMP 超时数据包服务器,期望服务器前端的NAT将ICMP超时消息转发给服务器。

上图来自homepage of pwnat ,前提是客户端不在 NAT 之后,并且 NAT 实现通常不会检查超时消息中的原始有效负载。如果客户端和服务器都像这样位于 NAT 后面,

=========================================================================================
| CLIENT | <---> | NAT-C | <---> { internet } <---> | NAT-S | <---> | SERVER |
=========================================================================================

现在它很少起作用,主要有以下两个原因:

  1. 当服务器向固定地址发送ICMP echo请求数据包时,根据RFC 3022 ,ICMP echo 请求头中的标识符字段将通过 NAT-S 唯一映射到注册 IP 地址的查询标识符,以便它可以将具有相同查询 ID 的 future ICMP Echo Replies 路由到发送方,因此 ICMP 头必须修改 ICMP 查询数据包中的查询 ID 和 ICMP header 校验和。 RFC 3022 ICMP error packet modifications section :

In a NAPT setup, if the IP message embedded within ICMP happens to bea TCP, UDP or ICMP Query packet, you will also need to modify theappropriate TU port number within the TCP/UDP header or the QueryIdentifier field in the ICMP Query header.

但客户端不知道外部查询ID(pwnat中的代码使用0作为原始请求的标识符),它向服务器发送ICMP超时数据包,即使该数据包可以到达NAT- S 在服务器前面,NAT-S 无法找到嵌入数据包的事件映射,大多数 NAT 实现都会丢弃它。

  • 此外,根据rfc 5508 ,当 NAT-C 收到来自 Private Realm 的 ICMP 错误数据包时,NAT-C 使用嵌入在 ICMP 错误消息中的数据包(即从客户端到服务器的 IP 数据包)来查找该嵌入数据包所属。如果 NAT-C 没有嵌入数据包的事件映射,则 NAT-C 应静默丢弃 ICMP 错误数据包。这意味着来自客户端的 ICMP 超时数据包不会到达 NAT-S。
  • 因此 pwnat 仅适用于执行简单地址转换的基本 NAT 设备(rfc 1631 描述),不适用于任何具有强大 NAPT 实现的 NAPT 设备。和This paper确实提到了这个问题。

    关于network-programming - pwnat 仍然是一个适用的解决方案吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22985793/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com