hacktricks/windows-hardening/active-directory-methodology/ad-certificates/domain-persistence.md

67 lines
16 KiB
Markdown
Raw Normal View History

2023-07-07 23:42:27 +00:00
# AD CS ドメインの永続化
2022-09-01 21:06:19 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-09-01 21:06:19 +00:00
2023-07-07 23:42:27 +00:00
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
2022-09-01 21:06:19 +00:00
2023-07-07 23:42:27 +00:00
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション
2022-09-01 21:06:19 +00:00
2023-07-07 23:42:27 +00:00
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
2022-09-01 21:06:19 +00:00
2023-07-07 23:42:27 +00:00
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
2022-09-01 21:06:19 +00:00
2023-07-07 23:42:27 +00:00
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
2022-09-01 21:06:19 +00:00
</details>
2023-07-07 23:42:27 +00:00
## 盗まれたCA証明書を使用した証明書の偽造 - DPERSIST1
2022-09-01 21:06:19 +00:00
2023-07-07 23:42:27 +00:00
証明書がCA証明書であるかどうかをどのように判断できますか
2022-09-01 21:06:19 +00:00
2023-07-07 23:42:27 +00:00
* CA証明書は、**CAサーバー自体**に存在し、その**秘密鍵はマシンDPAPIによって保護されています**OSがTPM/HSM/その他のハードウェアを使用して保護している場合を除く)。
* 証明書の**発行者**と**サブジェクト**は、両方とも**CAの識別名**に設定されています。
* CA証明書CA証明書のみには**「CAバージョン」拡張子**があります。
* **EKUはありません**
2022-09-01 21:06:19 +00:00
2023-07-07 23:42:27 +00:00
この証明書の秘密鍵を抽出するための組み込みのGUIサポートされた方法は、CAサーバー上の`certsrv.msc`を使用することです。\
ただし、この証明書はシステムに格納されている他の証明書とは**異なりません**。そのため、例えば[**THEFT2テクニック**](certificate-theft.md#user-certificate-theft-via-dpapi-theft2)をチェックして、**抽出方法**を確認してください。
2022-09-02 13:32:02 +00:00
2023-07-07 23:42:27 +00:00
また、[**certipy**](https://github.com/ly4k/Certipy)を使用して証明書と秘密鍵を取得することもできます。
2022-09-02 13:32:02 +00:00
```bash
certipy ca 'corp.local/administrator@ca.corp.local' -hashes :123123.. -backup
```
2023-07-07 23:42:27 +00:00
**CA証明書**を`.pfx`形式で秘密鍵と共に取得したら、[**ForgeCert**](https://github.com/GhostPack/ForgeCert)を使用して有効な証明書を作成できます。
2022-09-01 22:02:18 +00:00
```bash
# Create new certificate with ForgeCert
ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword Password123! --Subject "CN=User" --SubjectAltName localadmin@theshire.local --NewCertPath localadmin.pfx --NewCertPassword Password123!
2022-09-02 13:32:02 +00:00
# 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'
2022-09-01 22:02:18 +00:00
# Use new certificate with Rubeus to authenticate
Rubeus.exe asktgt /user:localdomain /certificate:C:\ForgeCert\localadmin.pfx /password:Password123!
2022-09-02 13:32:02 +00:00
# User new certi with certipy to authenticate
certipy auth -pfx administrator_forged.pfx -dc-ip 172.16.126.128
2022-09-01 22:02:18 +00:00
```
{% hint style="warning" %}
2023-07-07 23:42:27 +00:00
**注意**: 証明書の偽造時に指定する**ユーザー**は、ADで**アクティブ/有効**であり、**認証できる必要があります**。なぜなら、このユーザーとして認証の交換が行われるからです。例えば、krbtgtアカウントの証明書を偽造しようとしてもうまくいきません。
2022-09-01 22:02:18 +00:00
{% endhint %}
2023-07-07 23:42:27 +00:00
この偽造された証明書は、指定された終了日まで**有効**であり、**ルートCA証明書が有効な限り**通常は5年から**10年以上**)有効です。また、**マシン**にも有効であり、**S4U2Self**と組み合わせることで、攻撃者はCA証明書が有効な限り、任意のドメインマシンで**持続性を維持**することができます。\
さらに、この方法で生成された**証明書は取り消すことができません**。なぜなら、CAがそれらを認識していないからです。
2022-09-01 22:02:18 +00:00
2023-07-07 23:42:27 +00:00
## 信頼されたローグCA証明書 - DPERSIST2
2022-09-01 22:02:18 +00:00
2023-07-07 23:42:27 +00:00
オブジェクト`NTAuthCertificates`は、その`cacertificate`**属性**に1つ以上の**CA証明書**を定義し、ADはそれを使用します。認証中、**ドメインコントローラ**は、認証中の証明書の発行者フィールドに指定された**CA**に対して**`NTAuthCertificates`**オブジェクトにエントリが含まれているかどうかをチェックします。**含まれている場合、認証が進行します**。
2022-09-01 22:02:18 +00:00
2023-07-07 23:42:27 +00:00
攻撃者は、**自己署名のCA証明書**を生成し、それを**`NTAuthCertificates`**オブジェクトに**追加**することができます。攻撃者は、**`NTAuthCertificates`**ADオブジェクトを**制御**できる場合にこれを行うことができます(デフォルトの構成では、**Enterprise Admin**グループのメンバーと**Domain Admins**または**Administrators**のメンバーはこれらの権限を持っています)。昇格したアクセス権を持つ場合、`certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA126`を使用して、任意のシステムから**`NTAuthCertificates`**オブジェクトを編集することができます。または、[**PKI Health Tool**](https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/import-third-party-ca-to-enterprise-ntauth-store#method-1---import-a-certificate-by-using-the-pki-health-tool)を使用することもできます。
2022-09-01 22:02:18 +00:00
2023-07-07 23:42:27 +00:00
指定された証明書は、以前に詳細に説明した**ForgeCert**を使用して、必要に応じて証明書を生成するために使用することができます。
2022-09-01 22:02:18 +00:00
2023-07-07 23:42:27 +00:00
## 悪意のあるミス構成 - DPERSIST3
2022-09-01 22:02:18 +00:00
2023-07-07 23:42:27 +00:00
AD CSのコンポーネントの**セキュリティ記述子の変更**による**持続性**のための無数の機会があります。"[ドメインエスカレーション](domain-escalation.md)"セクションで説明されているシナリオは、昇格したアクセス権を持つ攻撃者によって悪意のある目的で実装される可能性があります。また、感​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​