135, 593 - Pentesting MSRPC

支持 HackTricks

加入 HackenProof Discord 服务器,与经验丰富的黑客和漏洞赏金猎人交流!

黑客见解 参与深入探讨黑客的刺激与挑战的内容

实时黑客新闻 通过实时新闻和见解,跟上快速变化的黑客世界

最新公告 了解最新的漏洞赏金计划和重要平台更新

今天就加入我们的 Discord,与顶尖黑客开始合作吧!

基本信息

Microsoft 远程过程调用 (MSRPC) 协议是一种客户端-服务器模型,使程序能够请求位于另一台计算机上的程序提供服务,而无需了解网络的具体情况。该协议最初源于开源软件,后来由 Microsoft 开发并获得版权。

RPC 端点映射器可以通过 TCP 和 UDP 端口 135 访问,SMB 在 TCP 139 和 445(使用空会话或经过身份验证的会话)上,以及作为 Web 服务在 TCP 端口 593 上访问。

135/tcp   open     msrpc         Microsoft Windows RPC

MSRPC是如何工作的?

由客户端应用程序发起,MSRPC过程涉及调用本地存根过程,然后与客户端运行时库交互,以准备和传输请求到服务器。这包括将参数转换为标准网络数据表示格式。如果服务器是远程的,传输协议的选择由运行时库决定,确保RPC通过网络栈传递。

https://0xffsec.com/handbook/images/msrpc.png

识别暴露的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

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

参考文献

加入 HackenProof Discord 服务器,与经验丰富的黑客和漏洞赏金猎人交流!

黑客见解 参与深入探讨黑客的刺激与挑战的内容

实时黑客新闻 通过实时新闻和见解,跟上快速变化的黑客世界

最新公告 及时了解最新的漏洞赏金计划和重要平台更新

加入我们 Discord,今天就开始与顶级黑客合作!

支持 HackTricks

Last updated