「域渗透」Shadow Credentials 利用
2022-11-8 16:19:43 Author: 黑客在思考(查看原文) 阅读量:11 收藏

    许多文章介绍Shadow Credentials利用可能都当做一种权限维持的方式,其实再Windows Server 2016功能级别下还可以配合Relay等,相当于可以把之前的配置RBCD换为配置Shadow Credentials。

背景

    申请TGT之前有一个过程叫做pre-auth,客户端可以告知KDC使用 DES、RC4、AES128 或 AES256 加密请求,或使用非对称(使用证书)预认证。预认证的不对称方式就称为 PKINIT(这是2016引入的)。

    比如说普通的可以看到加密方式为AES256:

req-body

什么是PKINIT?

    PKINIT 是不太常见的非对称密钥方法。客户端有一个公私钥对,并用他们的私钥对预认证数据进行加密,KDC 用客户端的公钥对其进行解密。此外,KDC 还有一个公私密钥对,允许交换会话密钥。

    Windows Server2016域功能级别中,LDAP有一个名为 msDS-KeyCredentialLink 的属性,可以在其中设置公钥。当使用 PKINIT 进行预认证时,KDC 将检查认证用户是否知道匹配的私钥,如果匹配,将发送 TGT。

    所以说如果我们可以控制能够编辑其他对象的 msDS-KeyCredentialLink属性的帐户的话,那么这允许我们创建密钥对,附加到该属性中的公钥,并获得对目标对象(可以是用户或计算机)的持久和隐秘访问。

img

利用条件

  1. 位于域功能级别为 Windows Server 2016 或更高版本的域中(或至少一个运行 Windows Server 2016 或更高版本的域控制器)

  2. DC拥有自己的密钥对(用于会话密钥交换)(例如,在启用 AD CS 或存在证书颁发机构 (CA) )

  3. 可以控制编辑目标对象的 msDs-KeyCredentialLink 属性的帐户

  4. 开启PKINIT支持

Key Trust Mode

    并且微软还引入了一个Key Trust模式,以支持在不支持证书信任的环境中进行无密码身份验证。在 Key Trust 模式下,PKINIT 身份验证是基于原始密钥数据,而不是证书建立的。

    客户端的公钥存储在名为 msDS-KeyCredentialLink 的多值属性中,但是DC还是需要用于密钥交换的证书,所以说条件2还是必须的。

所以说基于这个Key Trust模式,我们上述的攻击才可以成立。

img

有权限修改msDs-KeyCredentialLink 属性的帐户有:

  1. 域管
  2. KeyCredential Admins
  3. Acl高权限用户
  4. 机器账号给自己新增

利用思路

1.直接修改目标msDs-KeyCredentialLink 属性

使用工具:

https://github.com/eladshamir/Whisker

https://github.com/ShutdownRepo/pywhisker

Whisker.exe add /target:"TARGET_SAMNAME" /domain:"FQDN_DOMAIN" /dc:"DOMAIN_CONTROLLER" /path:"cert.pfx" /password:"pfx-password"
pywhisker.py -d "FQDN_DOMAIN" -u "user1" -p "CERTIFICATE_PASSWORD" --target "TARGET_SAMNAME" --action "list"

2.Relay的方式修改目标msDs-KeyCredentialLink 属性

   可以使用常规relay方法,比如我们知道机器账户可以自己给自己新增,那么:

  1. webdav配合efs这类工具无需签名利用
  2. -remove-mic,利用1040绕过签名
python3 ntlmrelayx.py  --shadow-credent --shadow-target 'dc2$' -t ldap://dc1 --remove-mic

还可以relay特殊用户、DA的NTLM请求,因为高权限用户也可以修改这个属性。

3.用来域内权限维持

略,懂就懂。

与RBCD的区别

  1. 攻击的目标对象可以是用户账户也可以是机器账户
  2. 不需要利用默认MAQ特性去添加机器账户
  3. 不需要目标机器当前存活

PKINIT 协议文档:https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-pkca/d0cf1763-3541-4008-a75f-a577fa5e8c5b




文章来源: http://mp.weixin.qq.com/s?__biz=MzI5NzU0MTc5Mg==&mid=2247484693&idx=1&sn=10825db6a81a4171f3f3d8f4067a7f0c&chksm=ecb2ccdadbc545cc12ba9941ca13ae994e15f9139c1c73d31cd4277934a656db89011a76458d#rd
如有侵权请联系:admin#unsafe.sh