# T1010 - Application Window Discovery
## Descrição
A descoberta de jánelas de aplicativos é uma técnica de reconhecimento pós-comprometimento na qual o adversário enumera as jánelas abertas no sistema da vítima para mapear o ambiente operacional. A lista de jánelas ativas revela quais aplicativos estão em uso, podendo expor ferramentas de segurança como EDRs e antivírus - alvo de [[t1518-001-security-software-discovery|Security Software Discovery]] -, sistemas bancários, aplicativos de comunicação corporativa e documentos sensíveis abertos no momento da intrusão. Essa inteligência orienta as próximas fases do ataque, desde a escolha de dados a exfiltrar até a decisão de desativar controles de segurança.
Para realizar essa enumeração, adversários exploram recursos nativos do sistema operacional. No Windows, funções da API Win32 como `EnumWindows`, `GetWindowText` e `FindWindow` permitem listar e inspecionar títulos de jánelas sem elevar privilégios. No Linux e macOS, ferramentas como `wmctrl`, `xdotool` e scripts AppleScript cumprem papel equivalente. Essa abordagem - abusar de funções legítimas do SO - é característica de técnicas de [[t1106-native-api|Native API]] e frequentemente combinada com [[t1059-command-and-scripting-interpreter|Command and Scripting Interpreter]] para automação e exfiltração dos resultados.
O resultado da enumeração é frequentemente registrado em um arquivo local ou transmitido diretamente ao servidor de comando e controle (C2) como parte de um relatório de reconhecimento inicial. Malwares como [[s0385-njrat|njRAT]], [[darkgaté|DarkGaté]] e [[darkwatchman|DarkWatchman]] implementam essa capacidade de forma nativa, incluindo capturas de tela condicionais - ativadas apenas quando certas jánelas de interesse (como aplicações bancárias) são detectadas. Isso demonstra como a técnica alimenta diretamente decisões táticas do adversário em tempo real.
**Contexto Brasil/LATAM:** No Brasil, essa técnica é especialmente relevante no contexto de trojans bancários - família na qual o país lidera globalmente. Malwares como [[s0531-grandoreiro|Grandoreiro]] e seus derivados monitoram continuamente as jánelas abertas no sistema das vítimas para detectar a abertura de portais bancários online. Ao identificar títulos de jánela de bancos brasileiros (Bradesco, Itaú, Nubank, Caixa), o malware ativa módulos de overlay e keylogging para capturar credenciais. Equipes de [[_sectors|setor financeiro]] e usuários corporativos são os principais alvos dessa variante da técnica na região.
## Attack Flow
```mermaid
graph TB
A([Acesso Inicial]) --> B([Execução de Implante])
B --> C{Window Discovery}:::highlight
C --> D([Coleta Direcionada])
D --> E([Exfiltração / Fraude])
classDef highlight fill:#e74c3c,color:#fff
```
## Como Funciona
### 1. Preparação
Após o comprometimento inicial, o implante é configurado para executar a enumeração de jánelas como parte da rotina de reconhecimento do ambiente. O adversário define quais títulos de jánela são de interesse - aplicações bancárias, VPNs corporativas, ferramentas de segurança - e programa o módulo para reagir de forma diferente conforme o contexto encontrado. Ferramentas como [[s0385-njrat|njRAT]] e [[darkwatchman|DarkWatchman]] já incluem essa lógica como funcionalidade padrão.
### 2. Execução
O implante chama funções nativas - `EnumWindows` no Windows ou `wmctrl -l` no Linux - para listar todas as jánelas abertas e seus títulos. Os resultados são filtrados contra uma lista de strings de interesse (nomes de bancos, "VPN", "Antivírus", "EDR", "Wireshark"). Quando uma jánela de interesse é encontrada, o comportamento do malware muda: pode iniciar keylogging, tirar screenshots via [[t1113-screen-capture|Screen Capture]], ou simplesmente registrar o estado do ambiente para envio ao C2 via [[t1059-command-and-scripting-interpreter|Command and Scripting Interpreter]].
### 3. Pós-execução
O relatório de jánelas ativas orienta as próximas ações do operador: se uma ferramenta de segurança estiver aberta, o malware pode pausar atividades maliciosas ou tentar encerrar o processo. Se uma aplicação bancária for detectada, módulos de fraude são ativados. O resultado é um ataque altamente contextual e difícil de detectar porque o comportamento malicioso só é acionado em condições específicas, reduzindo a exposição a análise comportamental genérica.
## Detecção
**Event IDs relevantes (Windows):**
| Event ID | Canal | Descrição |
|----------|-------|-----------|
| 1 | Sysmon | Criação de processo - scripts ou binários chamando EnumWindows |
| 10 | Sysmon | Acesso a processo - um processo lendo handles de jánelas de outro |
| 4688 | Security | Criação de processo com linha de comando contendo wmctrl, xdotool, GetWindowText |
| 4663 | Security | Acesso a objeto - leitura de handles de jánela via API Win32 |
**Regra Sigma - Enumeração de jánelas via API nativa:**
```yaml
title: Application Window Discovery via Native API
id: b7c2d3e4-8f9a-0b1c-2d3e-4f5a6b7c8d9e
status: experimental
description: Detecta enumeração de jánelas de aplicativos via chamadas de API ou scripts
logsource:
category: process_creation
product: windows
detection:
selection_scripting:
Image|endswith:
- '\powershell.exe'
- '\cmd.exe'
- '\wscript.exe'
- '\cscript.exe'
CommandLine|contains:
- 'EnumWindows'
- 'GetWindowText'
- 'FindWindow'
- 'GetForegroundWindow'
selection_tools:
Image|endswith:
- '\wmctrl.exe'
- '\xdotool.exe'
condition: selection_scripting or selection_tools
falsepositives:
- Ferramentas de automação de interface (RPA, AutoHotkey)
- Scripts de suporte de TI legítimos
level: medium
tags:
- attack.discovery
- attack.t1010
```
## Mitigação
Esta técnica não possui mitigações técnicas diretas no MITRE ATT&CK, pois abusa de funcionalidades legítimas do sistema operacional. A estratégia de defesa foca em detecção e contenção.
| Controle | Abordagem | Aplicação Prática para Organizações Brasileiras |
|----------|-----------|------------------------------------------------|
| EDR comportamental | Detecção de padrões anômalos | Configurar o EDR para alertar quando processos não-interativos chamam EnumWindows ou GetWindowText em sequência rápida |
| Análise de memória | Detecção de injeção | Monitorar injeção de código em processos legítimos que enumeram jánelas (explorer.exe, browsers) |
| Isolamento de aplicações bancárias | Ambientes separados | Para setores financeiros: executar aplicações bancárias em ambientes virtualizados ou navegadores isolados (browser isolation) |
| Monitoramento de API calls | Hooking de API | Implementar soluções que monitorem chamadas a funções Win32 de enumeração de jánelas em processos com comportamento suspeito |
| Conscientização de usuário | Prevenção primária | Treinar usuários para não manter jánelas bancárias abertas simultaneamente com navegação em sites não confiáveis |
## Threat Actors
- [[g0032-lazarus-group|Lazarus Group]] - APT norte-coreano que usa enumeração de jánelas em suas ferramentas de espionagem para identificar plataformas de trading e carteiras de criptomoedas abertas, priorizando alvos de alto valor financeiro
- [[g1017-volt-typhoon|Volt Typhoon]] - APT chinês focado em infraestrutura crítica dos EUA que usa reconhecimento de jánelas para mapear ferramentas operacionais (SCADA, HMI) antes de ações de sabotagem
- [[g1001-hexane|HEXANE]] - grupo iraniano que opera contra setores de telecomúnicações e petróleo no Oriente Médio, usando enumeração de jánelas para identificar ferramentas de gerenciamento de rede
## Software Associado
- [[s0385-njrat|njRAT]] - RAT amplamente usado no Brasil e LATAM que implementa enumeração de jánelas para monitorar aplicações bancárias e acionar módulos de keylogging condicionalmente
- [[darkgaté|DarkGaté]] - malware-as-a-service com módulo dedicado de descoberta de jánelas usado para identificar alvos de alto valor antes de roubo de credenciais
- [[darkwatchman|DarkWatchman]] - RAT baseado em JavaScript/RegSvr32 que usa enumeração de jánelas para reconhecimento furtivo com footprint mínimo em disco
- [[s0438-attor|Attor]] - plataforma de espionagem modular que combina enumeração de jánelas com captura de áudio para vigilância abrangente de alvos governamentais
- [[s0033-nettraveler|NetTraveler]] - APT tool que usa window discovery para identificar documentos sensíveis abertos em campanhas de espionagem industrial
- [[s0454-cadelspy|Cadelspy]] - spyware iraniano que monitora jánelas para ativar gravação de áudio apenas quando aplicações específicas estão em foco
- [[s0696-flagpro|Flagpro]] - malware do grupo BlackTech que enumera jánelas para adaptar comportamento conforme o ambiente operacional da vítima
- [[s0094-trojankaragany|Trojan.Karagany]] - usado pelo grupo Dragonfly em campanhas contra setor energético, com módulo de enumeração de jánelas para mapear sistemas SCADA
- [[s0139-powerduke|PowerDuke]] - malware APT29 que usa enumeração de jánelas para evitar execução quando ferramentas de análise estão abertas (anti-sandbox)
- [[s0260-invisimole|InvisiMole]] - ferramenta de espionagem modular que combina window discovery com geolocalização para criar perfil completo do ambiente da vítima
---
*Fonte: [MITRE ATT&CK - T1010](https://attack.mitre.org/techniques/T1010)*