# DET0505 — Detection Strategy for Command Obfuscation
## Descrição
A ofuscação de comandos é uma técnica de evasão amplamente utilizada por adversários para dificultar a análise e detecção de comandos maliciosos executados via interpreters como PowerShell, cmd.exe, bash e outros. Técnicas incluem: codificação Base64 de scripts PowerShell (`-EncodedCommand`), concatenação de strings para dividir palavras-chave monitoradas, uso de variáveis de ambiente para substituição de caracteres, charcode obfuscation e uso de aliases. A técnica é mapeada como [[T1027.010-obfuscated-files-or-information-command-obfuscation|T1027.010]] e [[t1140-deobfuscate-decode|T1140]] no MITRE ATT&CK.
Ferramentas como [[s0154-cobalt-strike|Cobalt Strike]] e frameworks de post-exploitation utilizam ofuscação de comandos por padrão para evitar detecção baseada em assinaturas de strings. PowerShell Script Block Logging (Event ID 4104) é crítico para detecar ofuscação em PowerShell, pois registra o comando após a deobfuscação interna do interpretador — revelando o código malicioso real independente da camada de ofuscação. A análise de entropia e uso de heurísticas de ofuscação em comandos de linha são complementares.
A detecção eficaz de ofuscação de comandos requer análise heurística da linha de comando: alta proporção de caracteres especiais, sequências de codificação Base64 (alto valor de entropia), uso excessivo de concatenação de strings, e comprimento anômalo de linha de comando são indicadores de ofuscação. Soluções SIEM com capacidade de decodificação automática de Base64 e análise de entropia são particularmente eficazes.
## Indicadores de Detecção
- PowerShell invocado com parâmetro `-EncodedCommand` ou `-enc` seguido de string Base64 de comprimento elevado
- Linha de comando com alta concentração de caracteres especiais (`^`, `` ` ``, `%`, `'`) indicando obfuscação de cmd/PowerShell
- Script Block Logging (Event ID 4104) mostrando código PowerShell deobfuscado contendo downloads ou execuções remotas
- Uso de `[char]` casting ou `join` com array de inteiros para construir strings de comandos sensíveis em PowerShell
- Variáveis de ambiente usadas para quebrar palavras-chave monitoradas (`%com%spec%` → `cmd.exe`)
- Comprimento de argumento de linha de comando excedendo 1000 caracteres para interpretadores de script
- Download de URL codificada em Base64 ou hex dentro de payload de PowerShell/cmd ofuscado
## Técnicas Relacionadas
- [[T1027.010-obfuscated-files-or-information-command-obfuscation|T1027.010 — Command Obfuscation]]
- [[t1027-obfuscated-files-or-information|T1027 — Obfuscated Files or Information]]
- [[t1059-001-powershell|T1059.001 — PowerShell]]
- [[T1059.003-windows-command-shell|T1059.003 — Windows Command Shell]]
- [[t1140-deobfuscate-decode|T1140 — Deobfuscaté/Decode Files or Information]]
## Analytics Relacionadas
- [[an1394-analytic-1394|AN1394 — Analytic 1394]]
- [[an1395-analytic-1395|AN1395 — Analytic 1395]]
- [[an1396-analytic-1396|AN1396 — Analytic 1396]]
---
*Fonte: [MITRE ATT&CK — DET0505](https://attack.mitre.org/detectionstrategies/DET0505)*