Quelle est la séquence des ports RPC Windows 135, 137, 139 (et les ports supérieurs)? Qu'est-ce qui change avec le port 145?

10

Quelqu'un peut-il expliquer quand et à quelle fréquence chacun des ports Windows RPC est utilisé? Les «principaux» que je comprends sont:

  • Port 135
  • Port 137
  • Port 139
  • Ports supérieurs publiés par le "catalogue" du port 135

Ensuite, j'ai entendu que le port 145 est venu dans le mélange pour "améliorer les choses" avec NBT / TCP mais je ne sais pas comment cela s'intègre dans la séquence d'un client Windows initiant une action RPC.

Quelqu'un peut-il m'aider à corriger ma compréhension des ports RPC une fois pour toutes?

goodguys_activate
la source
3
Où as-tu regardé? MS a un article de base de connaissances à support.microsoft.com/kb/832017
Bart Silverstrim
Cet article devrait entrer plus en détail que vous ne l'auriez jamais voulu sur ce que les serveurs Windows utilisent pour les ports réseau.
Bart Silverstrim
@BartSilverstrim J'aimerais pouvoir faire un commentaire une réponse :) PS - savez-vous comment je peux énumérer tout ce qui écoute sur le port d'annuaire (je pense que 135?)
goodguys_activate
Netstat vous indique-t-il ce que vous recherchez sous Windows?
Bart Silverstrim

Réponses:

22

Cet article TechNet est fantastique , je vous recommande de le mettre en signet. Il répertorie les ports utilisés par divers services Windows et est assez complet.

Dans les versions de Windows antérieures à Vista / 2008, NetBIOS était utilisé pour le service "RPC Locator", qui gérait la base de données du service de noms RPC. Mais dans Vista / 2008 et au-delà, le service RPC Locator n'est plus nécessaire ni utile. C'est vestigial. À partir de ce moment, je ne parlerai que de MSRPC sur Vista / 2008 +.

Les ports 137, 138 et 139 sont pour NetBIOS et ne sont pas requis pour la fonctionnalité de MSRPC.

Tous les ports utilisés par RPC sont les suivants:

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

D'autres applications, telles que la passerelle Bureau à distance, utiliseront le proxy RPC sur HTTP et utiliseront le port 443, etc.

Bien que l'article que j'ai lié à ci-dessus répertorie les ports NetBIOS, ceux-ci sont hérités et ne sont pas requis pour RPC, en supposant que vous pouvez acquérir la résolution de noms par d'autres moyens (DNS) et en supposant que le service distant lui-même ne dépend pas de NetBIOS.

Le port 145 est faux. Il n'est utilisé pour rien. Partout où vous avez entendu que cela "rend les choses meilleures", c'est faux.

MSRPC de base utilise les ports 135 et la plage dynamique à numéros élevés. Cette plage dynamique élevée est constituée des ports 1024-5000 sur XP / 2003 et inférieurs, et 49152-65535 sur Vista / 2008 et supérieurs. Vous pouvez également appeler cette plage de ports ports éphémères.

Vous pouvez définir une plage de ports personnalisée si vous le souhaitez, comme ceci:

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

Et / ou

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

Le port TCP 135 est le mappeur de point de terminaison MSRPC. Vous pouvez vous lier à ce port sur un ordinateur distant, de manière anonyme, et soit énumérer tous les services (points de terminaison) disponibles sur cet ordinateur, ou vous pouvez demander sur quel port un service spécifique s'exécute si vous savez ce que vous recherchez.

Permettez-moi de vous montrer un exemple d'interrogation du mappeur de point de connexion 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 ====

Vous remarquerez que si vous effectuez cette requête sur l'ordinateur local, vous trouverez beaucoup plus de points de terminaison que si vous exécutez la requête à partir d'un ordinateur distant. En effet, de nombreux points de terminaison RPC ne sont pas exposés à distance et ne sont utilisés que pour la communication interprocessus locale.

Pour en savoir plus: http://technet.microsoft.com/en-us/library/cc738291(v=WS.10).aspx

Et aussi: https://www.myotherpcisacloud.com/post/2014/02/16/verifying-rpc-network-connectivity-like-a-boss.aspx

Ryan Ries
la source