¿Cuál es la secuencia de los puertos RPC de Windows 135, 137, 139 (y puertos superiores)? ¿Qué cambia con el puerto 145?

10

¿Alguien puede explicar cuándo y con qué frecuencia se utilizan cada uno de los puertos RPC de Windows? Los "principales" que entiendo son:

  • Puerto 135
  • Puerto 137
  • Puerto 139
  • Puertos superiores publicados por el "catálogo" del puerto 135

Luego escuché que el Puerto 145 entró en la mezcla para "mejorar las cosas" con NBT / TCP, pero no estoy seguro de cómo encaja esto con la secuencia de un cliente de Windows que inicia una acción RPC.

¿Alguien puede ayudarme a arreglar mi comprensión de los puertos RPC de una vez por todas?

goodguys_activate
fuente
3
Donde has mirado MS tiene un artículo de base de conocimiento en support.microsoft.com/kb/832017
Bart Silverstrim
Ese artículo debería entrar en más detalles de lo que siempre quiso sobre lo que usan los servidores de Windows para los puertos de red.
Bart Silverstrim
@BartSilverstrim Me gustaría poder hacer un comentario una respuesta :) PD - ¿Sabe usted cómo puedo enumerar todo lo que escucha en el puerto de directorio (creo que 135?)
goodguys_activate
¿Netstat te dice lo que estás buscando en Windows?
Bart Silverstrim

Respuestas:

22

Este artículo de TechNet es fantástico , le recomiendo que lo marque como favorito. Enumera los puertos utilizados por varios servicios de Windows y es bastante exhaustivo.

En versiones de Windows anteriores a Vista / 2008, NetBIOS se usaba para el servicio "Localizador RPC", que administraba la base de datos del servicio de nombres RPC. Pero en Vista / 2008 y más allá, el servicio RPC Locator ya no es necesario ni útil. Es vestigial. A partir de este momento solo voy a hablar sobre MSRPC en Vista / 2008 +.

Los puertos 137, 138 y 139 son para NetBIOS y no son necesarios para la funcionalidad de MSRPC.

Todos los puertos utilizados por RPC son los siguientes:

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

Otras aplicaciones, como Remote Desktop Gateway, usarán RPC sobre proxy HTTP y usarán el puerto 443, etc.

Aunque el artículo que he vinculado anteriormente enumera los puertos de NetBIOS, estos son heredados y no son necesarios para RPC, suponiendo que pueda adquirir la resolución de nombre a través de otros medios (DNS) y suponiendo que el servicio remoto en sí no depende de NetBIOS.

El puerto 145 es falso. No se usa para nada. Dondequiera que escuchaste que "mejora las cosas", está mal.

El MSRPC básico usa los puertos 135 y el rango dinámico de alto número. Ese rango dinámico de alto número son los puertos 1024-5000 en XP / 2003 y versiones inferiores, y 49152-65535 en Vista / 2008 y versiones posteriores. También puede llamar a ese rango de puertos puertos efímeros.

Puede definir un rango de puertos personalizado si lo desea, así:

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

Y / o

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

El puerto TCP 135 es el mapeador de puntos finales MSRPC. Puede vincularse a ese puerto en una computadora remota, de forma anónima, y ​​enumerar todos los servicios (puntos finales) disponibles en esa computadora, o puede solicitar en qué puerto se está ejecutando un servicio específico si sabe lo que está buscando.

Permítame mostrarle un ejemplo de consulta del Mapeador de puntos RPC:

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 ====

Notará que si realiza esa consulta en la computadora local, encontrará muchos más puntos finales que si realiza la consulta desde una computadora remota. Esto se debe a que muchos puntos finales RPC no están expuestos de forma remota y solo se utilizan para la comunicación local entre procesos.

Más información: http://technet.microsoft.com/en-us/library/cc738291(v=WS.10).aspx

Y también: https://www.myotherpcisacloud.com/post/2014/02/16/verifying-rpc-network-connectivity-like-a-boss.aspx

Ryan Ries
fuente