Какова последовательность портов RPC Windows 135, 137, 139 (и более поздних портов)? Что меняется с портом 145?

10

Может кто-нибудь объяснить, когда и как часто используются все порты Windows RPC? «Основные», которые я понимаю:

  • Порт 135
  • Порт 137
  • Порт 139
  • Порты более высокого уровня, которые публикуются в "каталоге" портов 135

Затем я услышал, что порт 145 вошел в смесь, чтобы «улучшить ситуацию» с помощью NBT / TCP, но я не уверен, как это согласуется с последовательностью клиента Windows, инициирующего действие RPC.

Может ли кто-нибудь помочь мне исправить мое понимание портов RPC раз и навсегда?

goodguys_activate
источник
3
Где вы смотрели? У MS есть статья базы знаний в support.microsoft.com/kb/832017
Барт Сильверстрим
Эта статья должна быть более подробной, чем вы когда-либо хотели, о том, какие серверы Windows используют для сетевых портов.
Барт Сильверстрим
@BartSilverstrim Я хотел бы прокомментировать ответ :) PS - знаете ли вы, как я могу перечислить все, что слушает через порт каталога (я думаю, 135?)
goodguys_activate
Netstat говорит вам, что вы ищете в Windows?
Барт Сильверстрим

Ответы:

22

Эта статья TechNet фантастическая , я рекомендую вам добавить ее в закладки. В нем перечислены порты, используемые различными службами Windows, и он довольно подробный.

В версиях Windows, предшествующих Vista / 2008, NetBIOS использовался для службы «RPC Locator», которая управляла базой данных службы имен RPC. Но в Vista / 2008 и более поздних версиях служба RPC Locator больше не нужна или не нужна. Это рудимент С этого момента я буду говорить только о MSRPC на Vista / 2008 +.

Порты 137, 138 и 139 предназначены для NetBIOS и не требуются для функциональности MSRPC.

Все порты, используемые RPC, следующие:

RPC EPM                  TCP 135 
RPC over HTTPS           TCP 593 
SMB (for named pipes)    TCP 445
Ephemeral Range, Dynamic *

Другие приложения, такие как Remote Desktop Gateway, будут использовать RPC через HTTP-прокси и использовать порт 443 и т. Д.

Хотя в статье, на которую я ссылался выше, перечислены порты NetBIOS, они являются устаревшими и не требуются для RPC, при условии, что вы можете получить разрешение имен с помощью других средств (DNS), и что сама удаленная служба не зависит от NetBIOS.

Порт 145 является поддельным. Это не используется ни для чего. Везде, где вы слышали, что это «делает вещи лучше», это неправильно.

Базовый MSRPC использует порты 135 и динамический диапазон с высоким номером. Этот динамический диапазон с высокими номерами - это порты 1024-5000 в XP / 2003 и ниже и 49152-65535 в Vista / 2008 и выше. Вы также можете назвать эти порты эфемерными портами.

Вы можете определить пользовательский диапазон портов, если хотите, например:

reg add HKLM\SOFTWARE\Microsoft\Rpc\Internet /v Ports /t REG_MULTI_SZ /f /d 8000-9000
reg add HKLM\SOFTWARE\Microsoft\Rpc\Internet /v PortsInternetAvailable /t REG_SZ /f /d Y
reg add HKLM\SOFTWARE\Microsoft\Rpc\Internet /v UseInternetPorts /t REG_SZ /f /d Y

И / или

netsh int ipv4 set dynamicport tcp start=8000 num=1001
netsh int ipv4 set dynamicport udp start=8000 num=1001
netsh int ipv6 set dynamicport tcp start=8000 num=1001
netsh int ipv6 set dynamicport udp start=8000 num=1001

TCP-порт 135 является преобразователем конечной точки MSRPC. Вы можете привязать этот порт на удаленном компьютере анонимно и перечислить все службы (конечные точки), доступные на этом компьютере, или вы можете запросить, на каком порту работает конкретная служба, если вы знаете, что ищете.

Позвольте мне показать вам пример запроса RPC Enpoint Mapper:

C:\>PortQry.exe -n 192.168.1.1 -e 135

Querying target system called:

 192.168.1.1

Attempting to resolve IP address to a name...    

IP address resolved to host01.labs.myotherpcisacloud.com

querying...

TCP port 135 (epmap service): LISTENING

Using ephemeral source port
Querying Endpoint Mapper Database...
Server's response:

UUID: d95afe70-a6d5-4259-822e-2c84da1ddb0d
ncacn_ip_tcp:192.168.1.1[49152]

UUID: 12345778-1234-abcd-ef00-0123456789ac
ncacn_np:192.168.1.1[\\pipe\\lsass]

UUID: 12345778-1234-abcd-ef00-0123456789ac
ncacn_ip_tcp:192.168.1.1[49159]

UUID: 6b5bdd1e-528c-422c-af8c-a4079be4fe48 Remote Fw APIs
ncacn_ip_tcp:192.168.1.1[49158]

UUID: 367abb81-9844-35f1-ad32-98f038001003
ncacn_ip_tcp:192.168.1.1[49157]

UUID: 12345678-1234-abcd-ef00-0123456789ab
ncacn_ip_tcp:192.168.1.1[49155]

UUID: 0b6edbfa-4a24-4fc6-8a23-942b1eca65d1
ncacn_ip_tcp:192.168.1.1[49155]

UUID: ae33069b-a2a8-46ee-a235-ddfd339be281
ncacn_ip_tcp:192.168.1.1[49155]

UUID: 4a452661-8290-4b36-8fbe-7f4093a94978
ncacn_ip_tcp:192.168.1.1[49155]

UUID: 76f03f96-cdfd-44fc-a22c-64950a001209
ncacn_ip_tcp:192.168.1.1[49155]

UUID: 7f1343fe-50a9-4927-a778-0c5859517bac DfsDs service
ncacn_np:192.168.1.1[\\PIPE\\wkssvc]

UUID: 3473dd4d-2e88-4006-9cba-22570909dd10 WinHttp Auto-Proxy Service
ncacn_np:192.168.1.1[\\PIPE\\W32TIME_ALT]

UUID: 1ff70682-0a51-30e8-076d-740be8cee98b
ncacn_np:192.168.1.1[\\PIPE\\atsvc]

...

Total endpoints found: 50

==== End of RPC Endpoint Mapper query response ====

Вы заметите, что если вы выполните этот запрос на локальном компьютере, вы найдете гораздо больше конечных точек, чем если бы вы выполняли запрос с удаленного компьютера. Это связано с тем, что многие конечные точки RPC не предоставляются удаленно и используются только для локального межпроцессного взаимодействия.

Дополнительная информация: http://technet.microsoft.com/en-us/library/cc738291(v=WS.10).aspx

А также: https://www.myotherpcisacloud.com/post/2014/02/16/verifying-rpc-network-connectivity-like-a-boss.aspx

Райан Райс
источник