# T1518 - Software Discovery
## Descrição
**Software Discovery** é uma técnica de reconhecimento pós-comprometimento na qual o adversário enumera os programas instalados no sistema alvo - incluindo versões, datas de instalação e configurações. O objetivo é construir um mapa preciso do ambiente para orientar as próximas etapas do ataque: saber quais ferramentas de segurança estão presentes, identificar softwares vulneráveis a [[t1068-exploitation-privilege-escalation|exploração para escalada de privilégios]], ou localizar ferramentas de implantação de software como [[t1072-software-deployment-tools|Software Deployment Tools]] que possam ser abusadas para movimentação lateral em massa.
No contexto **Brasil e LATAM**, esta técnica é amplamente observada em campanhas contra o setor financeiro e governo. Grupos como [[g1017-volt-typhoon|Volt Typhoon]] e [[g0129-mustang-panda|Mustang Panda]] realizam enumeração de software como parte do reconhecimento inicial em redes corporativas brasileiras, buscando soluções de segurança locais (como Kaspersky, ESET e softwares de compliance do Banco Central) antes de prosseguir com implantação de malware. A presença de ferramentas de backup - alvo da sub-técnica [[t1518-002-backup-software-discovery|T1518.002]] - é especialmente relevante em operações de ransomware que visam desabilitar rotinas de recuperação antes da criptografia.
> [!warning] Relevância para o Brasil
> Organizações brasileiras frequentemente utilizam software de segurança e ERP com versões desatualizadas, tornando a enumeração especialmente valiosa para adversários. A presença de soluções como SAP, TOTVS e ferramentas de gestão de TI nacionais amplia a superfície de interesse para enumeração.
## Attack Flow
```mermaid
graph TB
A([Acesso Inicial]) --> B([Execução])
B --> C([Discovery])
C --> D{T1518<br>Software Discovery}:::highlight
D --> E([T1518.001<br>Security Software Discovery])
D --> F([T1518.002<br>Backup Software Discovery])
D --> G([Escalada de Privilégios])
D --> H([Movimentação Lateral])
G --> I([Impacto / Exfiltração])
H --> I
classDef highlight fill:#e74c3c,color:#fff
```
## Como Funciona
**Passo 1 - Consulta ao Registro e WMI (Windows)**
O adversário executa consultas ao registro do Windows (`HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall`) ou via WMI (`Win32_Product`, `Win32_InstalledSoftware`) para listar todos os programas instalados. Ferramentas como `reg query`, `wmic product get`, ou cmdlets PowerShell (`Get-WmiObject`, `Get-ItemProperty`) são utilizadas. Em Linux, o equivalente é consultar gerenciadores de pacotes (`dpkg -l`, `rpm -qa`, `apt list --installed`).
**Passo 2 - Identificação de Alvos de Alto Valor**
Com a lista em mãos, o adversário filtra por categorias críticas: EDRs e antivírus (para [[t1518-001-security-software-discovery|evasão de segurança]]), soluções de backup (para [[t1518-002-backup-software-discovery|desabilitação pré-ransomware]]), softwares vulneráveis com CVEs conhecidos (para [[t1068-exploitation-privilege-escalation|exploração de privilégios]]) e ferramentas de administração remota que possam ser abusadas. Malwares como [[s0154-cobalt-strike|Cobalt Strike]] e [[s0455-metamorfo|Metamorfo]] automatizam essa filtragem.
**Passo 3 - Exfiltração e Uso Operacional**
Os resultados são armazenados localmente ou exfiltrados para infraestrutura controlada pelo atacante. Em ambientes de nuvem (IaaS), o adversário pode utilizar APIs de inventário do provedor (AWS Systems Manager Inventory, Azure Resource Graph) para enumerar software em instâncias remotas sem precisar de acesso direto a cada host, amplificando o alcance da técnica.
## Detecção
### Event IDs Relevantes (Windows)
| Fonte | Event ID | Descrição |
|-------|----------|-----------|
| Security | 4688 | Criação de processo - monitorar `wmic.exe`, `reg.exe`, `powershell.exe` com args suspeitos |
| System | 7045 | Novo serviço instalado (indicador de backdoor pós-descoberta) |
| PowerShell | 4103/4104 | Execução de script - `Get-WmiObject Win32_Product`, `Get-ItemProperty Uninstall` |
| Sysmon | 1 | Process Creaté - linha de comando com padrões de enumeração |
| Sysmon | 13 | Registry Value Set - monitorar leituras em chave Uninstall |
### Sigma Rule
```yaml
title: Software Discovery via WMI and Registry
id: a3b7f2c1-4e8d-4a9b-bc3f-1d2e5f6a7b8c
status: experimental
description: >
Detecta enumeração de software instalado via WMI ou consulta ao registro
do Windows, comportamento característico da técnica T1518.
author: RunkIntel
daté: 2026-03-24
references:
- https://attack.mitre.org/techniques/T1518
logsource:
category: process_creation
product: windows
detection:
selection_wmic:
Image|endswith: '\wmic.exe'
CommandLine|contains:
- 'product get'
- 'Win32_Product'
- 'Win32_InstalledSoftware'
selection_reg:
Image|endswith: '\reg.exe'
CommandLine|contains:
- 'Uninstall'
- 'CurrentVersion\Software'
selection_ps:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
CommandLine|contains:
- 'Get-WmiObject'
- 'Get-ItemProperty'
- 'Win32_Product'
- 'Uninstall'
condition: 1 of selection_*
falsepositives:
- Ferramentas de inventário legítimas (SCCM, Ansible, scripts de auditoria)
- Administradores de sistema realizando inventário manual
level: medium
tags:
- attack.discovery
- attack.t1518
```
## Mitigação
| Controle | Descrição | Prioridade para Orgs Brasileiras |
|----------|-----------|----------------------------------|
| Restringir WMI remoto | Bloquear acesso WMI remoto via GPO e firewall para estações não-administrativas | Alta - WMI é frequentemente exposto em redes flat brasileiras |
| Monitoramento de linha de comando | Habilitar auditoria de criação de processos (Event ID 4688) com linha de comando completa | Alta - muitas orgs ainda não têm esse log habilitado |
| Princípio do menor privilégio | Contas de usuário não devem ter permissão de ler chaves de registro sensíveis do sistema | Alta - aplica-se a todos os setores regulados (BACEN, ANS, ANEEL) |
| EDR com inspeção de comportamento | Soluções EDR devem detectar padrões de enumeração em cadeia (múltiplas queries em sequência) | Média - fundamental para setores financeiro e governo |
| Segmentação de rede | Impedir que hosts comuns acessem APIs de inventário de nuvem sem autenticação multifator | Média - crítico para orgs com workloads em AWS/Azure |
| Auditoria de scripts PowerShell | Habilitar Script Block Logging e Transcription para todos os hosts com PS habilitado | Alta - PowerShell é vetor primário de enumeração em ambientes Windows |
## Threat Actors que Usam Esta Técnica
[[g1017-volt-typhoon|Volt Typhoon]] - grupo de espionagem chinês com histórico de operações de longa duração em infraestrutura crítica. Realiza enumeração meticulosa de software antes de qualquer ação, priorizando a identificação de soluções de monitoramento e EDR que possam expor sua presença. Relevante para organizações de energia e telecomúnicações no Brasil.
[[g0129-mustang-panda|Mustang Panda]] - APT chinês focado em espionagem governamental e diplomática. Utiliza [[s0455-metamorfo|Metamorfo]] e outros stagers para automatizar a enumeração de software como parte de seu processo de reconhecimento inicial. Campanhas documentadas na América Latina.
[[g0069-mango-sandstorm|MuddyWater]] - grupo iraniano que usa [[s0674-charmpower|CharmPower]] para descoberta de software como etapa preparatória para implantação de backdoors. Documentado em ataques a organizações de telecomúnicações.
[[g1008-sidecopy|SideCopy]] e [[g0121-sidewinder|Sidewinder]] - grupos sul-asiáticos com campanhas direcionadas a governos. Utilizam [[s0062-dustysky|DustySky]] e ferramentas customizadas para mapeamento de software em alvos governamentais.
[[g1001-hexane|HEXANE]] - grupo focado em setor de energia e telecomúnicações. A enumeração de software de controle industrial (ICS/SCADA) é característica operacional documentada.
## Software Associado
| Ferramenta | Tipo | Uso na Técnica |
|------------|------|----------------|
| [[s0154-cobalt-strike\|Cobalt Strike]] | Framework C2 | Módulo `execute-assembly` para enumeração automatizada |
| [[s0455-metamorfo\|Metamorfo]] | Malware banking | Enumera soluções de segurança bancárias (muito ativo no Brasil) |
| [[s1042-sugardump\|SUGARDUMP]] | Infostealer | Lista software instalado como parte do perfil da vítima |
| [[s0126-comrat\|ComRAT]] | RAT | Inclui rotina de software discovery no reconhecimento inicial |
| [[s0658-xcsset\|XCSSET]] | Malware macOS | Enumera apps instalados em sistemas macOS via AppleScript |
| [[s1153-cuckoo-stealer\|Cuckoo Stealer]] | Infostealer | Coleta inventário completo de software para exfiltração |
| [[s0445-shimratreporter\|ShimRatReporter]] | Ferramenta | Especializado em enumeração de software para relatórios de C2 |
| [[s0062-dustysky\|DustySky]] | RAT | Módulo dedicado de software discovery em alvos governamentais |
| [[s0623-siloscape\|Siloscape]] | Malware container | Enumera software em ambientes Kubernetes/Windows containers |
| [[s0674-charmpower\|CharmPower]] | Backdoor | Coleta inventário de software como módulo de reconhecimento |
## Sub-técnicas
- [[t1518-001-security-software-discovery|T1518.001 - Security Software Discovery]]
- [[t1518-002-backup-software-discovery|T1518.002 - Backup Software Discovery]]