【问题标题】:Is there ms Windows tcp/udp/icmp traceroute implementation without admin rights required?是否有不需要管理员权限的 ms Windows tcp/udp/icmp traceroute 实现?
【发布时间】:2019-04-06 03:18:15
【问题描述】:

我试图为 MS Windows 找到可供普通用户(没有管理员权限)使用的 traceroute 程序实现,但我找不到任何东西。我能找到的那些(如 tracetcp 或 nmap)需要 PCAP 库,并且为了安装 winpcap,我认为需要管理权限。

我不太了解 Windows 内部结构,但我想知道背后的“魔力”是什么。如果 MS 提供的带有 Win OS 的 tracert 对普通用户工作正常(但它只能使用 ICMP),那么普通用户为 TCP/UDP 数据包设置 TTL 并在套接字上接收相应的响应是否存在任何问题(技术限制),例如:

  • ICMP:TTL 在传输中过期
  • UDP:端口不可达
  • 可能还有其他几个(如 TCP RST、ICMP 主机无法访问等)?

所以基本上:

  • 如果没有问题,为什么没有合理的跟踪路由实施 窗户?
  • 如果 TCP/UDP 存在技术限制,那么为什么 原始 MS ICMP 跟踪路由对非管理员用户是否正常工作?

我知道最流行的带有 -T 选项(用于使用 SYN 探测)的 linux traceroute 也需要 root 权限,但我假设这只是因为它不想在收到 SYN-ACK 后完成完整的 TCP 握手和发送 RST可能会被限制为 root。无论如何,只要 TTL 可以由普通用户设置(对于 UDP,它似乎工作正常),那么我想 TCP traceroute 完成完整的 TCP 握手应该可以为非 root linux 用户实现? 顺便说一下,由于使用 RAW 套接字,ICMP 跟踪路由也需要管理员权限,但令人惊讶的是,对于 Windows,这似乎不是问题。

【问题讨论】:

    标签: windows sockets tcp udp traceroute


    【解决方案1】:

    遗憾的是,您的问题的简单答案是“不,在 Windows 机器上没有本地方法可以做到这一点”。

    我对您的具体用例有点不确定,但是可以评估 Power Shell 是否有更多功能可以帮助您。来自 Microsoft 的 Jose Baretto 写了一篇关于常见网络命令的 Power Shell 等效项的文章。你可以在这里找到它:

    https://blogs.technet.microsoft.com/josebda/2015/04/18/windows-powershell-equivalents-for-common-networking-commands-ipconfig-ping-nslookup/

    如果做不到这一点,您唯一的选择是(正如您自己提到的)第 3 方工具,您将很难找到不需要提升权限的工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 2016-07-27
      相关资源
      最近更新 更多