AD侦查中,MSRPC Over SMB如何进行详细分析?
摘要:本文通过 Google 翻译 AD Recon – MSRPC Over SMB (135139445) 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。 导航 0 前言 1 MSRPC、NetBIOS、
本文通过 Google 翻译 AD Recon – MSRPC Over SMB (135/139/445) 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。
导航
0 前言
1 MSRPC、NetBIOS、SMB 简介
1.1 MSRPC – Port 135
1.1.1 MSRPC Over SMB
1.2 NetBIOS – Port 139
1.3 SMB – Port 445
1.3.1 SMB 默认管理共享
2 初始枚举 – nmap 扫描
3 脚本枚举 – msrpc-enum
4 手动枚举 – rpcclient
4.1 Win10 主机(已加域)的枚举限制
4.2 Rpcclient 枚举命令
4.2.1 域枚举
4.2.2 用户枚举
4.2.3 组枚举
4.2.4 共享枚举
5 自动枚举 – enum4linux
6 示例 – 从服务台到域管理员
6.1 使用 Rpcclient 更改用户密码
6.2 立足于 DC
6.3 权限提升 – 从域用户到 SYSTEM (DnsAdmins 组)
7 最后的想法
0、前言
在这篇文章中,我们将介绍几种可用于枚举 MSRPC over SMB 的工具 ,同时了解 MSRPC、NetBIOS、SMB 这三种服务是什么以及它们是如何结合在一起的。
接下来,我们会对一台加域的 win10 主机进行 nmap 扫描,发现主机打开了我们感兴趣的三个端口 135、139、445;然后,使用 rpcclient 手动枚举域相关的大量信息;然而,在对 win 10 主机进行域枚举尝试时发现并不能够成功,于是便将精力转向了运气更好的 DC;在 DC 上手动提取了大量的域信息之后,我们另外再了解一个可以自动执行整个手动枚举过程的自动化工具 enum4linux;最后,经过检查枚举结果我们发现可以从 DC 上的标准用户权限提升到 SYSTEM!
1、MSRPC、NetBIOS、SMB 简介
MSRPC 服务使用 IPC 机制(如 命名管道、NetBIOS、Winsock)在客户端和服务器之间建立通信,协议 IPC$、TCP、UDP、HTTP 用于提供对服务的访问。因此,我们必须了解这些服务是什么(MSRPC/NetBIOS/命名管道 (SMB)),以及它们在通过 SMB 枚举 MSRPC 时是如何协同工作的。
1.1、MSRPC – Port 135
微软远程过程调用 (MSRPC) 是一种通信协议,它用于向网络中另一台计算机上的程序请求服务。换句话说,MSRPC 调用远程系统上的其它进程,就像是在本地系统中调用它们一样。这是通过“客户端-服务器”或“请求-响应”模型实现的。
如果想更详细地了解 RPC 的工作原理,请查看维基百科。
RPC 端点映射器可通过 TCP 和 UDP 135 端口、使用空会话或验证会话(TCP 139 和 445)的 SMB (管道)以及监听 TCP 593 端口的 web 服务进行访问。此外,在 49xxx 上打开 RPC 端口也很常见,而这些端口又被称为“随机分配的高 TCP 端口”。
如上所述,如果 SMB 打开,则可以使用命名管道进行 RPC 调用。由于不同的命名管道允许进行不同的操作,因此这对枚举/利用来说非常重要。
1.1.1、MSRPC Over SMB
由于 SMB 在 Windows 主机上几乎始终处于打开状态,因此利用 MSRPC 进行枚举的最常见方式就是通过 SMB 命名管道(通过 IPC$ 共享)。【大多数工具与 RPC 的交互方式也均以 SMB 命名管道这种方式为主。】
MSRPC Over SMB 使用了许多不同的命名管道,其中包括但不限于以下这些:
\pipe\lsarpc:本地安全机构 (LSA) – 枚举权限、信任关系、SID、策略等。
\pipe\samr:本地 SAM 数据库 – 枚举域/本地用户、域/本地组等。
\pipe\svcctl:服务控制管理器 – 远程创建、启动和停止服务以执行命令
\pipe\atsvc:任务计划程序 – 远程创建计划任务来执行命令
\pipe\epmapper:支持 Windows 管理规范 (WMI) 的分布式组件对象模型 (DCOM) – 通过 WMI 执行远程命令
\pipe\winreg:远程注册表服务 – 用于访问系统注册表
虽然 SMB 共享和 RPC Over SMB 都是基于端口 445 展开的服务,但本文的重点是介绍基于 SMB 的 RPC 工具。虽然也有一些用于枚举 SMB 共享的工具也利用到了 RPC 的部分功能,但这类工具仍被划入 SMB 共享工具。
