Есть ли в MS Windows реализация tcp / udp / icmp traceroute без прав администратора? - PullRequest
0 голосов
/ 01 ноября 2018

Я пытался найти реализацию программы traceroute для MS Windows, которая могла бы использоваться обычным пользователем (без прав администратора), и я не смог ее найти. Те, кого я мог найти (например, tracetcp или nmap), нуждаются в библиотеке PCAP, и для установки winpcap, я думаю, требуются права администратора.

Я не знаю много о внутренностях Windows, но мне интересно, что за "магия" позади. Если tracert, поставляемый MS с Win OS, работает нормально для обычного пользователя (но он может использовать только ICMP), то есть ли проблема (техническое ограничение) с настройкой TTL для пакета TCP / UDP обычным пользователем и получением соответствующего ответа на сокете, такого как :

  • ICMP: истек TTL в пути
  • UDP: порт недоступен
  • и, возможно, несколько других (например, TCP RST, недоступность хоста ICMP и т. Д.)?

Так в основном:

  • если нет проблемы, почему нет разумной реализации traceroute для окон?
  • если есть технические ограничения для TCP / UDP, то почему traceroute MS ICMP отлично работает для пользователей без прав администратора?

Я знаю, что для самой популярной в Linux трассировки с опцией -T (для использования зондов SYN) также требуются привилегии пользователя root, но я предполагаю, что это просто потому, что он не хочет завершать полное TCP-рукопожатие и отправку RST после получения SYN-ACK может быть ограничено для root. Как бы то ни было, пока TQL может быть установлен обычным пользователем (для UDP он работает нормально), тогда я мог бы представить, что трассировка TCP, завершающая полное TCP-рукопожатие, должна быть возможна для пользователей, не являющихся пользователями root? Кстати, для трассировки ICMP также необходимы права администратора из-за использования сокетов RAW, но, к удивлению, для Windows это, похоже, не проблема.

1 Ответ

0 голосов
/ 02 ноября 2018

К сожалению, простой ответ на ваш вопрос: «Нет, для Windows нет собственного способа сделать это».

Я немного не уверен в вашем конкретном сценарии использования, но один из возможных путей - оценить, имеет ли Power Shell больше функциональности, чтобы помочь вам. Хосе Баретто из Microsoft написал статью об эквивалентах Power Shell для общих сетевых команд. Вы можете найти его здесь:

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

Если это не удастся, ваш единственный вариант - (как вы упомянули) - инструменты сторонних производителей, и вам будет сложно найти тот, который не требует повышенных привилегий.

...