是否有ms Windows tcp / udp / icmp traceroute实现,无需管理员权限?

时间:2018-11-01 20:43:48

标签: windows sockets tcp udp traceroute

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

我对Windows内部知识了解不多,但我想知道背后的“魔术”是什么。如果MS随Win OS一起提供的tracert对于普通用户而言运行良好(但只能使用ICMP),那么普通用户为TCP / UDP数据包设置TTL并在套接字上接收到相应的响应就不会有任何问题(技术限制) :

  • ICMP:TTL在运输过程中过期
  • UDP:端口不可达
  • 以及其他一些(例如TCP RST,ICMP主机无法访问等)?

所以基本上:

  • 如果没有问题,为什么没有合理的traceroute实现 用于Windows?
  • 如果TCP / UDP有技术限制,为什么 原始MS ICMP跟踪路由对非管理员用户可以正常使用吗?

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

1 个答案:

答案 0 :(得分:0)

可悲的是,对您的问题的简单回答是“不,没有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/

否则,您唯一的选择是(正如您自己提到的)第三方工具,并且很难找到不需要提升特权的工具。