# 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]]