hacktricks/network-services-pentesting/135-pentesting-msrpc.md
2023-08-03 19:12:22 +00:00

12 KiB
Raw Blame History

135, 593 - MSRPC 渗透测试

☁️ HackTricks 云 ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

HackenProof 是所有加密漏洞赏金的家园。

无需等待即可获得奖励
HackenProof 的赏金只有在客户存入奖励预算后才会启动。在漏洞验证后,您将获得奖励。

在 web3 渗透测试中积累经验
区块链协议和智能合约是新的互联网!在它崛起的日子里掌握 web3 安全。

成为 web3 黑客传奇
每次验证的漏洞都会获得声誉积分,并占据每周排行榜的榜首。

在 HackenProof 上注册 开始从您的黑客攻击中获利!

{% embed url="https://hackenproof.com/register" %}

基本信息

Microsoft 远程过程调用Remote Procedure CallRPC也称为函数调用或子程序调用是一种使用客户端-服务器模型的协议允许一个程序向另一台计算机上的程序请求服务而无需了解该计算机的网络细节。MSRPC 最初是从开源软件衍生而来,但已经得到了进一步的开发并由 Microsoft 版权所有。

根据主机配置RPC 端点映射器可以通过 TCP 和 UDP 端口 135 进行访问,通过空或经过身份验证的会话的 SMBTCP 139 和 445以及作为在 TCP 端口 593 上监听的 Web 服务。

135/tcp   open     msrpc         Microsoft Windows RPC

MSRPC是如何工作的

MSRPC过程始于客户端,客户端应用程序调用本地存根过程而不是实现该过程的代码。客户端存根代码从客户端地址空间中检索所需参数,并将它们传递给客户端运行时库,然后将参数转换为标准的网络数据表示格式以传输到服务器。

然后客户端存根调用RPC客户端运行时库中的函数将请求和参数发送到服务器。如果服务器位于远程位置运行时库会指定适当的传输协议和引擎并将RPC传递给网络堆栈以进行传输到服务器。
来源:https://www.extrahop.com/resources/protocols/msrpc/

图片来自书籍《网络安全评估第三版》

识别暴露的RPC服务

从书籍《网络安全评估第三版》中提取的部分内容

您可以查询RPC定位器服务和单个RPC端点以记录在TCP、UDP、HTTP和SMB通过命名管道上运行的有趣服务。通过此过程收集的每个IFID值表示一个RPC服务例如5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc是Messenger接口

Todd Sabin的rpcdump和ifids Windows实用程序查询RPC定位器和特定的RPC端点以列出IFID值。rpcdump的语法如下

D:\rpctools> rpcdump [-p port] 192.168.189.1
IfId: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
Annotation: Messenger Service
UUID: 00000000-0000-0000-0000-000000000000
Binding: ncadg_ip_udp:192.168.189.1[1028]

您可以通过使用四个协议序列访问RPC定位器服务

  • ncacn_ip_tcp和ncadg_ip_udpTCP和UDP端口135
  • ncacn_np通过SMB的\pipe\epmapper命名管道
  • ncacn_http通过TCP端口80、593和其他端口的RPC over HTTP
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接口用于枚举用户
3919286a-b10c-11d0-9ba8-00c04fd92ef5 \pipe\lsarpc LSA目录服务DS接口用于枚举域和信任关系
12345778-1234-abcd-ef00-0123456789ac \pipe\samr LSA SAMR接口用于访问公共SAM数据库元素例如用户名并对用户密码进行暴力破解而不受帐户锁定策略的限制Oreilly library
1ff70682-0a51-30e8-076d-740be8cee98b \pipe\atsvc 任务计划程序,用于远程执行命令
338cd001-2244-31f1-aaaa-900038001003 \pipe\winreg 远程注册表服务,用于访问系统注册表
367abb81-9844-35f1-ad32-98f038001003 \pipe\svcctl 服务控制管理器和服务器服务,用于远程启动和停止服务并执行命令
4b324fc8-1670-01d3-1278-5a47bf6ee188 \pipe\srvsvc 服务控制管理器和服务器服务,用于远程启动和停止服务并执行命令
4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 \pipe\epmapper DCOM接口支持WMI

识别IP地址

使用https://github.com/mubix/IOXIDResolver,来自Airbus research可以滥用_IOXIDResolver_接口中的_ServerAlive2_方法。

这种方法已被用于从HTB盒子_APT_获取IPv6地址的接口信息。请参阅此处以获取0xdf APT的写作其中包括使用rpcmap.py从Impacket和_stringbinding_的替代方法见上文

参考资料:

端口593

来自rpctoolsrpcdump.exe可以与此端口进行交互。

HackenProof是所有加密漏洞赏金的家园。

即时获得奖励
HackenProof的赏金只有在客户存入奖励预算后才会启动。在漏洞经过验证后您将获得奖励。

在web3渗透测试中积累经验
区块链协议和智能合约是新的互联网在其崛起之时掌握web3安全。

成为web3黑客传奇
每次验证的漏洞都会获得声誉积分,并占据每周排行榜的榜首。

在HackenProof上注册开始从您的黑客行动中获利!

{% embed url="https://hackenproof.com/register" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥