135, 593 - Pentesting MSRPC
Reading time: 7 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
基本信息
Microsoft 远程过程调用 (MSRPC) 协议是一种客户端-服务器模型,使程序能够请求位于另一台计算机上的程序提供服务,而无需了解网络的具体细节。该协议最初源于开源软件,后来由 Microsoft 开发并获得版权。
RPC 端点映射器可以通过 TCP 和 UDP 端口 135 访问,SMB 在 TCP 139 和 445(使用空会话或经过身份验证的会话)上,以及作为 TCP 端口 593 上的 Web 服务。
135/tcp open msrpc Microsoft Windows RPC
MSRPC是如何工作的?
由客户端应用程序发起,MSRPC过程涉及调用本地存根过程,然后与客户端运行时库交互,以准备并将请求传输到服务器。这包括将参数转换为标准网络数据表示格式。如果服务器是远程的,传输协议的选择由运行时库决定,确保RPC通过网络栈传递。
识别暴露的RPC服务
通过查询RPC定位服务和各个端点,可以确定通过TCP、UDP、HTTP和SMB暴露的RPC服务。工具如rpcdump有助于识别独特的RPC服务,以IFID值表示,揭示服务细节和通信绑定:
D:\rpctools> rpcdump [-p port] <IP>
**IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
Annotation: Messenger Service
UUID: 00000000-0000-0000-0000-000000000000
Binding: ncadg_ip_udp:<IP>[1028]
通过特定协议启用对RPC定位服务的访问:ncacn_ip_tcp和ncadg_ip_udp用于通过端口135访问,ncacn_np用于SMB连接,ncacn_http用于基于Web的RPC通信。以下命令示例展示了利用Metasploit模块审计和与MSRPC服务交互,主要集中在端口135:
use auxiliary/scanner/dcerpc/endpoint_mapper
use auxiliary/scanner/dcerpc/hidden
use auxiliary/scanner/dcerpc/management
use auxiliary/scanner/dcerpc/tcp_dcerpc_auditor
rpcdump.py <IP> -p 135
所有选项除了 tcp_dcerpc_auditor
都是专门针对端口 135 上的 MSRPC 进行攻击设计的。
显著的 RPC 接口
- IFID: 12345778-1234-abcd-ef00-0123456789ab
- 命名管道:
\pipe\lsarpc
- 描述: LSA 接口,用于枚举用户。
- IFID: 3919286a-b10c-11d0-9ba8-00c04fd92ef5
- 命名管道:
\pipe\lsarpc
- 描述: LSA 目录服务 (DS) 接口,用于枚举域和信任关系。
- IFID: 12345778-1234-abcd-ef00-0123456789ac
- 命名管道:
\pipe\samr
- 描述: LSA SAMR 接口,用于访问公共 SAM 数据库元素(例如,用户名)并强行破解用户密码,无论账户锁定策略如何。
- IFID: 1ff70682-0a51-30e8-076d-740be8cee98b
- 命名管道:
\pipe\atsvc
- 描述: 任务调度程序,用于远程执行命令。
- IFID: 338cd001-2244-31f1-aaaa-900038001003
- 命名管道:
\pipe\winreg
- 描述: 远程注册表服务,用于访问和修改系统注册表。
- IFID: 367abb81-9844-35f1-ad32-98f038001003
- 命名管道:
\pipe\svcctl
- 描述: 服务控制管理器和服务器服务,用于远程启动和停止服务以及执行命令。
- IFID: 4b324fc8-1670-01d3-1278-5a47bf6ee188
- 命名管道:
\pipe\srvsvc
- 描述: 服务控制管理器和服务器服务,用于远程启动和停止服务以及执行命令。
- IFID: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57
- 命名管道:
\pipe\epmapper
- 描述: DCOM 接口,用于强行破解密码和通过 WM 收集信息。
识别 IP 地址
使用 https://github.com/mubix/IOXIDResolver,来自 Airbus research,可以滥用 ServerAlive2 方法在 IOXIDResolver 接口内。
该方法已被用于从 HTB 盒子 APT 获取接口信息作为 IPv6 地址。有关 0xdf APT 的详细信息,请参见 这里,它包括使用来自 Impacket 的 rpcmap.py 的替代方法,使用 stringbinding(见上文)。
使用有效凭据执行 RCE
如果有有效用户的凭据,可以使用来自 impacket 框架的 dcomexec.py 在机器上执行远程代码。
记得尝试不同的可用对象
- ShellWindows
- ShellBrowserWindow
- MMC20
端口 593
来自 rpctools 的 rpcdump.exe 可以与此端口交互。
参考文献
- https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/
- https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/
- https://0xffsec.com/handbook/services/msrpc/
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。