Windows RPC 端口 135、137、139(和更高端口)的顺序是什么?端口 145 有何变化?

Chr*_*ski 11 windows rpc netbios

有人可以解释每个 Windows RPC 端口的使用时间和使用频率吗?我理解的“核心”是:

  • 端口 135
  • 端口 137
  • 端口 139
  • 端口 135 的“目录”发布的更高端口

然后我听说端口 145 加入了 NBT/TCP 以“使事情变得更好”,但我不确定这如何与 Windows 客户端启动 RPC 操作的顺序相适应。

谁能帮我一劳永逸地解决我对 RPC 端口的理解?

Rya*_*ies 24

这篇 TechNet 文章很棒,我建议您将其加入书签。它列出了各种 Windows 服务使用的端口,非常详尽。

在早于 Vista/2008 的 Windows 版本中,NetBIOS 用于管理 RPC 名称服务数据库的“RPC 定位器”服务。但在 Vista/2008 及更高版本中,RPC 定位器服务不再必要或有用。是遗迹。从现在开始,我将只讨论 Vista/2008+ 上的 MSRPC。

端口137,138和139是用于NetBIOS的,并且要求MSRPC的功能。

RPC使用的所有端口如下:

RPC EPM                  TCP 135 
RPC over HTTPS           TCP 593 
SMB (for named pipes)    TCP 445
Ephemeral Range, Dynamic *
Run Code Online (Sandbox Code Playgroud)

其他应用程序,例如远程桌面网关,将使用 RPC over HTTP 代理并使用端口 443 等。

虽然我上面链接的文章列出了 NetBIOS 端口,但这些是遗留的,RPC 不需要,假设您可以通过其他方式 (DNS) 获取名称解析,并假设远程服务本身不依赖于 NetBIOS。

端口 145 是假的。它不用于任何事情。无论你在哪里听说它“让事情变得更好”,都是错误的。

基本 MSRPC 使用端口 135 和高编号动态范围。XP/2003 及以下版本的端口号为 1024-5000,Vista/2008 及以上版本为 49152-65535。您也可以将该端口范围称为临时端口。

如果您愿意,您可以定义自定义端口范围,如下所示:

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
Run Code Online (Sandbox Code Playgroud)

和/或

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
Run Code Online (Sandbox Code Playgroud)

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 ====
Run Code Online (Sandbox Code Playgroud)

您会注意到,如果您在本地计算机上执行该查询,您会发现比从远程计算机执行查询更多的端点。这是因为许多 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