hacktricks/network-services-pentesting/135-pentesting-msrpc.md

7.4 KiB
Raw Blame History

135, 593 - 渗透测试 MSRPC

从零开始学习 AWS 黑客技术,成为专家 htARTEHackTricks AWS 红队专家)

支持 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定位器服务和各个端点可以确定RPC服务在TCP、UDP、HTTP和SMB上的暴露情况。诸如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接口

  • IFID12345778-1234-abcd-ef00-0123456789ab
  • 命名管道\pipe\lsarpc
  • 描述LSA接口用于枚举用户。
  • IFID3919286a-b10c-11d0-9ba8-00c04fd92ef5
  • 命名管道\pipe\lsarpc
  • 描述LSA目录服务DS接口用于枚举域和信任关系。
  • IFID12345778-1234-abcd-ef00-0123456789ac
  • 命名管道\pipe\samr
  • 描述LSA SAMR接口用于访问公共SAM数据库元素例如用户名并对用户密码进行暴力破解而不受帐户锁定策略的影响。
  • IFID1ff70682-0a51-30e8-076d-740be8cee98b
  • 命名管道\pipe\atsvc
  • 描述:任务计划程序,用于远程执行命令。
  • IFID338cd001-2244-31f1-aaaa-900038001003
  • 命名管道\pipe\winreg
  • 描述:远程注册表服务,用于访问和修改系统注册表。
  • IFID367abb81-9844-35f1-ad32-98f038001003
  • 命名管道\pipe\svcctl
  • 描述:服务控制管理器和服务器服务,用于远程启动和停止服务以及执行命令。
  • IFID4b324fc8-1670-01d3-1278-5a47bf6ee188
  • 命名管道\pipe\srvsvc
  • 描述:服务控制管理器和服务器服务,用于远程启动和停止服务以及执行命令。
  • IFID4d9f4ab8-7d1c-11cf-861e-0020af6e7c57
  • 命名管道\pipe\epmapper
  • 描述DCOM接口用于通过WM进行暴力破解密码和信息收集。

识别IP地址

使用https://github.com/mubix/IOXIDResolver,来自空中客车研究可以滥用_IOXIDResolver_接口内的_ServerAlive2_方法。

此方法已用于从HTB盒子_APT_中获取IPv6地址的接口信息。查看这里了解0xdf APT的解析其中包括使用Impacket的rpcmap.py和_stringbinding_的替代方法请参见上文

使用有效凭据执行RCE

如果具有有效用户的凭据,则可以使用impacket框架中的dcomexec.py在计算机上执行远程代码。

记得尝试使用不同的可用对象

  • ShellWindows
  • ShellBrowserWindow
  • MMC20

端口593

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

参考资料

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

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

实时黑客新闻
通过实时新闻和见解保持与快节奏的黑客世界同步

最新公告
通过最新的赏金计划启动和重要平台更新保持信息更新

加入我们的 Discord,立即与顶尖黑客合作!