# T1595.003 - Wordlist Scanning
## Descrição
O **Wordlist Scanning** (Varredura por Wordlist) é uma sub-técnica da tática de [[t1595-active-scanning|Varredura Ativa]] (T1595) na qual adversários utilizam listas de palavras pré-definidas para enumerar iterativamente recursos, diretórios, arquivos, buckets de armazenamento em nuvem e outros componentes de infraestrutura de um alvo. Ao contrário de um ataque de [[t1110-brute-force|Força Bruta]] (T1110), cujo objetivo principal é descobrir credenciais válidas, o Wordlist Scanning tem como meta mapear a superfície de ataque exposta: identificar páginas ocultas, portais administrativos esquecidos, arquivos de configuração acessíveis públicamente e recursos de nuvem mal configurados.
Os adversários podem empregar wordlists genéricas - compostas por nomes de diretórios e extensões de arquivo comuns como `/admin`, `/backup`, `/config`, `.env`, `.bak`, `.git` - ou listas altamente customizadas, construídas com inteligência obtida por meio de outras técnicas de reconhecimento, como [[t1591-gather-victim-org-information|Coleta de Informações da Organização Alvo]] (T1591) e [[t1594-search-victim-owned-websites|Busca em Websites Próprios da Vítima]] (T1594). Essa abordagem personalizada aumenta significativamente a taxa de descoberta, pois os termos na lista refletem a nomenclatura interna, tecnologias e padrões de nomenclatura específicos do alvo.
Ferramentas amplamente utilizadas para varredura web incluem **Dirb**, **DirBuster**, **GoBuster**, **ffuf** e **Feroxbuster**. Para enumeração de armazenamento em nuvem, adversários recorrem a utilitários como **s3recon**, **GCPBucketBrute**, **AWSBucketDump** e **bucket-finder**, explorando o fato de que buckets em serviços como Amazon S3, Google Cloud Storage e Azure Blob Storage utilizam namespaces globalmente acessíveis. A descoberta de buckets públicos ou acessíveis indevidamente pode expor dados sensíveis, credenciais, backups e arquivos de configuração que viabilizam [[t1530-data-from-cloud-storage|Acesso a Dados em Armazenamento em Nuvem]] (T1530) ou até [[t1078-valid-accounts|Uso de Contas Válidas]] (T1078) obtidas a partir de vazamentos.
O resultado do Wordlist Scanning geralmente alimenta fases subsequentes do ciclo de ataque: páginas administrativas descobertas podem ser alvo de [[t1190-exploit-public-facing-application|Exploração de Aplicações Expostas Publicamente]] (T1190), arquivos de configuração expostos podem revelar credenciais para [[t1078-valid-accounts|acesso inicial]], e endpoints de API não documentados podem ser explorados para reconhecimento adicional ou movimento lateral.
> **Técnica pai:** [[t1595-active-scanning|T1595 - Active Scanning]]
> **Tática MITRE:** Reconnaissance
> **Plataforma:** PRE (pré-comprometimento)
---
## Como Funciona
O Wordlist Scanning opera em múltiplas camadas da infraestrutura de um alvo. O processo é iterativo: para cada entrada na wordlist, o scanner envia uma requisição ao alvo e analisa a resposta para determinar se o recurso existe.
### Varredura Web (Enumeração de Diretórios e Arquivos)
Ferramentas como GoBuster e ffuf enviam requisições HTTP GET para URLs formadas pela combinação do domínio alvo com cada entrada da wordlist:
```
https://alvo.com.br/admin
https://alvo.com.br/backup
https://alvo.com.br/.env
https://alvo.com.br/api/v1/users
https://alvo.com.br/wp-admin
```
Respostas com código HTTP 200 (OK), 301 (Redirect) ou 403 (Forbidden - recurso existe mas está restrito) indicam que o caminho é válido. Recursos com status 403 são especialmente valiosos, pois confirmam a existência do recurso para tentativas posteriores de contorno de controles de acesso.
### Varredura de Buckets em Nuvem
Para infraestrutura em nuvem, a lógica é similar mas focada em namespaces de serviços:
- **Amazon S3:** `https://{wordlist-item}.s3.amazonaws.com/`
- **Google Cloud Storage:** `https://storage.googleapis.com/{wordlist-item}/`
- **Azure Blob Storage:** `https://{wordlist-item}.blob.core.windows.net/`
Buckets com listagem pública habilitada revelam seu conteúdo completo, incluindo potencialmente arquivos de backup, logs, dumps de banco de dados e chaves de API armazenadas inadvertidamente.
### Construção de Wordlists Customizadas
Adversários sofisticados como [[g0096-apt41|APT41]] constroem wordlists personalizadas combinando:
- Nomes de produtos internos descobertos via engenharia social ou fontes abertas
- Padrões de nomenclatura identificados em repositórios públicos (GitHub, GitLab)
- Termos específicos do setor da organização alvo
- Subdomínios e nomes de serviços obtidos via [[t1596-004-cdns|pesquisa de CDNs]] (T1596.004)
---
## Attack Flow
```mermaid
graph TB
A["Reconhecimento Inicial<br/>(OSINT, WHOIS, DNS)"] --> B["Construção da Wordlist<br/>(genérica ou customizada)"]
B --> C["Configuração do Scanner<br/>(GoBuster, ffuf, DirBuster)"]
C --> D["Varredura Web<br/>(Enumeração de diretórios/arquivos)"]
C --> E["Varredura de Nuvem<br/>(S3, GCP, Azure Buckets)"]
D --> F["Análise de Respostas HTTP<br/>(200, 301, 403, 500)"]
E --> G["Verificação de Buckets<br/>(público, privado, listável)"]
F --> H["Recursos Descobertos<br/>(admin panels, configs, APIs)"]
G --> I["Dados Expostos<br/>(backups, credenciais, configs)"]
H --> J["Exploração<br/>(T1190, T1078, T1110)"]
I --> J
J --> K["Acesso Inicial ou<br/>Movimento Lateral"]
```
---
## Exemplos de Uso
### APT41 - Campanhas de Espionagem e Crime Financeiro
O grupo [[g0096-apt41|APT41]], conhecido por combinar espionagem patrocinada pelo estado chinês com operações de crime cibernético, utiliza varredura por wordlist como parte de seu reconhecimento extensivo antes de comprometer organizações. O grupo é documentado usando ferramentas de enumeração web para identificar painéis administrativos, interfaces de gerenciamento de rede e endpoints de API não documentados em empresas de tecnologia, saúde e telecomúnicações. Após descobrir recursos ocultos, o APT41 frequentemente os utiliza como vetor para [[t1190-exploit-public-facing-application|exploração de aplicações web]] vulneráveis.
### Volatile Cedar - Operações no Oriente Médio
O grupo [[g0123-volatile-cedar|Volatile Cedar]], associado ao Hezbollah, utilizou varredura de diretórios em campanhas de 2012 a 2015 contra organizações governamentais e de defesa. A técnica foi empregada para identificar portais de acesso remoto e sistemas de gerenciamento de conteúdo expostos que serviam como vetores de entrada inicial.
### Cenários de Ataque a Organizações Brasileiras
No contexto brasileiro, campanhas de ransomware como as do grupo [[lockbit|LockBit]] e afiliados de [[blackcat|ALPHV]] frequentemente iniciam com varredura por wordlist para identificar painéis de administração de VMware vCenter, interfaces web de backup (Veeam, Acronis) e portais de VPN expostos. Setores como [[_sectors|financeiro, saúde e energia]] são alvos frequentes, dado o valor dos dados e a criticidade dos sistemas.
### Exemplo de Comando - GoBuster
```bash
gobuster dir \
-u https://alvo.com.br \
-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
-x php,asp,aspx,jsp,html,bak,env,config \
-t 50 \
--timeout 10s \
-o resultados.txt
```
### Exemplo de Comando - ffuf (Fuzzing de API)
```bash
ffuf -u https://api.alvo.com.br/v1/FUZZ \
-w /usr/share/wordlists/api-endpoints.txt \
-mc 200,201,301,302,401,403 \
-o api-discovery.json \
-of json
```
---
## Detecção
A detecção de Wordlist Scanning é desafiadora porque o tráfego gerado pode se misturar com uso legítimo. As principais fontes de detecção incluem logs de servidor web, logs de WAF (Web Application Firewall) e análise de padrões de tráfego anômalos.
### Regra Sigma - Detecção de Enumeração Web
```yaml
title: "Wordlist Scanning - Enumeração de Diretórios Web"
status: experimental
description: |
Detecta padrões de varredura por wordlist via análise de logs de servidor web.
Alto volume de requisições 404 de um único IP em curto intervalo de tempo.
logsource:
category: webserver
service: access_log
detection:
selection:
status_code:
- '404'
- '403'
timeframe: 60s
condition: selection | count(client_ip) by client_ip > 100
level: high
tags:
- attack.reconnaissance
- attack.t1595.003
falsepositives:
- Scanners de segurança internos autorizados
- Ferramentas de monitoramento legítimas
- Crawlers de SEO
```
### Regra Sigma - Varredura de Buckets S3
```yaml
title: "Wordlist Scanning - Tentativas de Bucket S3"
status: experimental
description: |
Detecta tentativas de enumeração de buckets S3 via logs do AWS CloudTrail.
logsource:
product: aws
service: cloudtrail
detection:
selection:
eventSource: "s3.amazonaws.com"
eventName:
- "HeadBucket"
- "ListObjects"
- "GetBucketAcl"
errorCode: "NoSuchBucket"
timeframe: 300s
condition: selection | count(sourceIPAddress) by sourceIPAddress > 50
level: high
tags:
- attack.reconnaissance
- attack.t1595.003
- attack.t1530
```
### Indicadores de Comprometimento Comportamentais
| Indicador | Descrição | Severidade |
|-----------|-----------|-----------|
| Alto volume de 404/403 de um IP | > 100 erros/minuto de origem única | Alta |
| User-Agent de ferramenta conhecida | `gobuster/`, `DirBuster`, `ffuf/` nos logs | Alta |
| Padrão sequencial de requisições | Requisições em ordem alfabética de wordlist | Média |
| Múltiplas extensões testadas | `.php`, `.bak`, `.env`, `.config` em sequência | Alta |
| Varredura de subdomínios em nuvem | Muitos `NoSuchBucket` do mesmo IP | Alta |
---
## Mitigação
| ID | Mitigação | Descrição |
|----|-----------|-----------|
| [[m1056-pre-compromise\|M1056]] | Pre-compromise | Limitar a superfície de ataque exposta. Remover páginas e endpoints desnecessários. Configurar corretamente controles de acesso em buckets de nuvem para evitar listagem pública. |
| [[m1042-disable-or-remove-feature-or-program\|M1042]] | Disable or Remove Feature or Program | Desabilitar listagem de diretórios no servidor web (`Options -Indexes` no Apache; `autoindex off` no Nginx). Remover arquivos de backup, configuração e debug de ambientes de produção. |
### Controles Preventivos Adicionais
1. **WAF com Raté Limiting:** Configurar Web Application Firewall para bloquear IPs que excedam thresholds de requisições 404/403 (ex: > 50 erros/minuto).
2. **CAPTCHA em endpoints sensíveis:** Proteger painéis administrativos com autenticação de dois fatores e CAPTCHA.
3. **Política de Bucket Privado por Padrão:** Configurar SCPs (Service Control Policies) na AWS para bloquear buckets públicos por padrão.
4. **Monitoramento de DNS e Certificados:** Usar serviços como Censys e Shodan para identificar ativos expostos antes que atacantes o façam.
5. **Remover arquivos sensíveis:** Garantir que `.env`, `.git`, `backup.zip`, `wp-config.php.bak` nunca estejam acessíveis publicamente.
---
## Contexto Brasil/LATAM
O Wordlist Scanning é amplamente empregado em ataques direcionados ao Brasil e à América Latina, especialmente como fase inicial de campanhas de ransomware e espionagem industrial.
### Cenários Recorrentes no Brasil
**Setor Financeiro:** Bancos brasileiros são alvos frequentes de varredura de diretórios para identificar painéis de administração de sistemas de internet banking, APIs de Open Finance expostas sem autenticação adequada e interfaces de back-office acessíveis externamente.
**Setor de Saúde:** Hospitais e operadoras de saúde frequentemente possuem sistemas legados com interfaces de administração expostas. A varredura por wordlist frequentemente revela instâncias de PACS (sistemas de imagem médica), prontuários eletrônicos e sistemas de RH acessíveis sem autenticação adequada.
**Infraestrutura Crítica:** Empresas de energia, saneamento e telecomúnicações são alvos de grupos como [[g0096-apt41|APT41]] e atores de espionagem, que utilizam Wordlist Scanning para mapear painéis SCADA/ICS expostos via interfaces web.
**Governo:** Portais de governo eletrônico frequentemente expõem endpoints de API legados, painéis de administração de CMS (WordPress, Drupal) e interfaces de banco de dados via wordlist scanning. O [[sources|CERT.br]] reporta incidentes recorrentes envolvendo varredura automatizada de infraestrutura governamental.
### Ferramentas Observadas em Ataques LATAM
- **GoBuster** e **ffuf** são as ferramentas mais frequentemente observadas em logs de incidentes brasileiros
- Wordlists específicas para CMS populares no Brasil (WordPress em português, Joomla com extensões `.php.bak`)
- Scripts customizados em Python direcionados a APIs de Open Banking e PIX
### Relação com Outros TTPs Observados
O Wordlist Scanning frequentemente precede [[t1190-exploit-public-facing-application|T1190]] em incidentes brasileiros, com atacantes descobrindo versões desatualizadas de WordPress, Joomla ou phpMyAdmin expostos. A combinação com [[t1078-valid-accounts|T1078]] é comum quando a varredura revela arquivos `.env` contendo credenciais de banco de dados ou APIs.
---
## Referências
- [MITRE ATT&CK - T1595.003](https://attack.mitre.org/techniques/T1595/003)
- [GoBuster - GitHub](https://github.com/OJ/gobuster)
- [ffuf - Fast Web Fuzzer](https://github.com/ffuf/ffuf)
- [SecLists - Wordlists Repository](https://github.com/danielmiessler/SecLists)
- [CERT.br - Varreduras e Reconhecimento](https://www.cert.br/)
- [AWS S3 Bucket Security Best Practices](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html)
- [[t1595-active-scanning|T1595 - Active Scanning]]
- [[t1110-brute-force|T1110 - Brute Force]]
- [[t1190-exploit-public-facing-application|T1190 - Exploit Public-Facing Application]]
- [[t1530-data-from-cloud-storage|T1530 - Data from Cloud Storage]]
- [[g0096-apt41|APT41]]
- [[g0123-volatile-cedar|Volatile Cedar]]