rpcclient enumeration

Support HackTricks

相关标识符 (RID) 和安全标识符 (SID) 概述

相对标识符 (RID)安全标识符 (SID) 是 Windows 操作系统中用于唯一标识和管理网络域内对象(如用户和组)的关键组件。

  • SID 作为域的唯一标识符,确保每个域都是可区分的。

  • RID 附加到 SID 上,以创建该域内对象的唯一标识符。这种组合允许精确跟踪和管理对象权限和访问控制。

例如,一个名为 pepe 的用户可能有一个唯一标识符,该标识符结合了域的 SID 和他的特定 RID,以十六进制 (0x457) 和十进制 (1111) 格式表示。这导致在域内为 pepe 生成一个完整且唯一的标识符,如:S-1-5-21-1074507654-1937615267-42093643874-1111

使用 rpcclient 进行枚举

Samba 的 rpcclient 工具用于通过命名管道与 RPC 端点 进行交互。以下命令可以在建立 SMB 会话 后发出,通常需要凭据。

服务器信息

  • 要获取 服务器信息:使用 srvinfo 命令。

用户枚举

  • 可以列出用户:使用 querydispinfoenumdomusers

  • 获取用户详细信息:使用 queryuser <0xrid>

  • 获取用户的组:使用 queryusergroups <0xrid>

  • 通过以下方式检索用户的 SID:使用 lookupnames <username>

  • 用户的别名:使用 queryuseraliases [builtin|domain] <sid>

# Users' RIDs-forced
for i in $(seq 500 1100); do
rpcclient -N -U "" [IP_ADDRESS] -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";
done

# samrdump.py can also serve this purpose

组的枚举

  • 通过: enumdomgroups 获取组

  • 使用: querygroup <0xrid> 获取组的详细信息

  • 通过: querygroupmem <0xrid> 获取组的成员

别名组的枚举

  • 通过: enumalsgroups <builtin|domain> 获取别名组

  • 使用: queryaliasmem builtin|domain <0xrid> 获取别名组的成员

域的枚举

  • 使用: enumdomains 获取域

  • 通过: lsaquery 检索域的SID

  • 通过: querydominfo 获取域信息

共享的枚举

  • 通过: netshareenumall 获取所有可用的共享

  • 使用: netsharegetinfo <share> 获取特定共享的信息

使用SID的附加操作

  • 通过名称获取SID: lookupnames <username>

  • 通过: lsaenumsid 获取更多SID

  • 通过: lookupsids <sid> 进行RID循环以检查更多SID

额外命令

命令

接口

描述

queryuser

SAMR

检索用户信息

querygroup

检索组信息

querydominfo

检索域信息

enumdomusers

枚举域用户

enumdomgroups

枚举域组

createdomuser

创建域用户

deletedomuser

删除域用户

lookupnames

LSARPC

查找用户名到SIDa

lookupsids

查找SID到用户名(RIDb循环)

lsaaddacctrights

向用户账户添加权限

lsaremoveacctrights

从用户账户移除权限

dsroledominfo

LSARPC-DS

获取主要域信息

dsenumdomtrusts

枚举AD森林中的受信域

更好地理解工具 samrdump rpcdump 的工作原理,您应该阅读 Pentesting MSRPC

支持 HackTricks

Last updated