Este artigo do TechNet é fantástico , eu recomendo que você o marque como favorito. Ele lista as portas usadas por vários serviços do Windows e é bastante completo.
Nas versões do Windows anteriores ao Vista / 2008, o NetBIOS era usado para o serviço "RPC Locator", que gerenciava o banco de dados do serviço de nomes RPC. Mas no Vista / 2008 e além, o serviço RPC Locator não é mais necessário ou útil. É vestigial. A partir deste momento, vou falar apenas sobre o MSRPC no Vista / 2008 +.
As portas 137, 138 e 139 são para NetBIOS e não são necessárias para a funcionalidade do MSRPC.
Todas as portas usadas pelo RPC são as seguintes:
RPC EPM TCP 135
RPC over HTTPS TCP 593
SMB (for named pipes) TCP 445
Ephemeral Range, Dynamic *
Outros aplicativos, como o Gateway de Área de Trabalho Remota, usarão o proxy RPC sobre HTTP e a porta 443, etc.
Embora o artigo ao qual eu vinculei acima liste as portas NetBIOS, elas são herdadas e não são necessárias para o RPC, supondo que você possa adquirir a resolução de nomes por outros meios (DNS) e assumindo que o serviço remoto em si não depende do NetBIOS.
A porta 145 é falsa. Não é usado para nada. Onde quer que você tenha ouvido que "melhora as coisas", está errado.
O MSRPC básico usa as portas 135 e o intervalo dinâmico de numeração alta. Esse intervalo dinâmico de grande número é as portas 1024-5000 no XP / 2003 e abaixo, e 49152-65535 no Vista / 2008 e acima. Você também pode chamar esse intervalo de portas de portas efêmeras.
Você pode definir um intervalo de portas personalizado, se desejar, da seguinte maneira:
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
E / 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
A porta TCP 135 é o mapeador de pontos de extremidade MSRPC. Você pode vincular a essa porta em um computador remoto, anonimamente, ou enumerar todos os serviços (pontos de extremidade) disponíveis nesse computador ou pode solicitar em que porta um serviço específico está sendo executado, se souber o que está procurando.
Deixe-me mostrar um exemplo de consulta ao 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 ====
Você notará que, se executar essa consulta no computador local, encontrará muito mais pontos de extremidade do que se realizar a consulta em um computador remoto. Isso ocorre porque muitos pontos de extremidade RPC não são expostos remotamente e são usados apenas para comunicação entre processos locais.
Outras leituras: http://technet.microsoft.com/en-us/library/cc738291(v=WS.10).aspx
E também: https://www.myotherpcisacloud.com/post/2014/02/16/verifying-rpc-network-connectivity-like-a-boss.aspx