# DC0029 — Script Execution
## Descrição
O componente de dados **Script Execution** registra a execução de arquivos de texto contendo código interpretável — incluindo scripts PowerShell, VBScript, JScript, Python, Bash, batch files (`.bat`, `.cmd`) e outros interpretadores suportados pelo sistema operacional. Este componente é um dos mais importantes para detecção de ameaças, pois adversários utilizam scripts extensivamente em todas as fases de ataque: desde execução inicial até persistência, movimentação lateral e exfiltração.
A execução de scripts é capturada principalmente por mecanismos de logging nativo do sistema operacional. No Windows, o **PowerShell ScriptBlock Logging** (Event ID 4104) é a fonte mais rica, registrando o conteúdo completo de cada bloco de script antes da execução, inclusive após deobfuscação em tempo de execução. O **Windows Script Host** e engines de script do Office também geram telemetria relevante quando configurados.
Adversários frequentemente utilizam técnicas de ofuscação — como codificação Base64, fragmentação de strings, download de payloads via `Invoke-WebRequest` ou `IEX (New-Object Net.WebClient).DownloadString()` — para evadir detecções baseadas em assinatura. O logging de ScriptBlock captura o script já deobfuscado, tornando-o extremamente valioso para análise forense e detecção comportamental.
No contexto LATAM, famílias de malware como [[mekotio]] e [[s0531-grandoreiro]] (RATs bancários brasileiros) são frequentemente entregues via scripts VBScript ou PowerShell embutidos em documentos Office, executando uma cadeia de download e instalação de múltiplos estágios.
## Telemetria
| Fonte | Event ID | Descrição |
|-------|----------|-----------|
| PowerShell/Operational | 4104 | ScriptBlock Logging — conteúdo completo do script |
| PowerShell/Operational | 4103 | Module Logging — chamadas de módulo e parâmetros |
| Windows Script Host | N/A | Logs de wscript.exe / cscript.exe via Process Creation |
| Sysmon | 1 | Process Creation com linha de comando completa |
| Security | 4688 | Criação de processo com CommandLine (requer auditoria) |
| AMSI | N/A | Anti-Malware Scan Interface — conteúdo pré-execução |
## Queries de Detecção
### KQL — Microsoft Sentinel
```kql
// Detecta PowerShell com padrões de download e execução em memória
DeviceProcessEvents
| where FileName in~ ("powershell.exe", "pwsh.exe")
| where ProcessCommandLine has_any (
"DownloadString", "IEX", "Invoke-Expression",
"EncodedCommand", "FromBase64String", "bypass"
)
| project Timestamp, DeviceName, AccountName,
ProcessCommandLine, InitiatingProcessFileName
| order by Timestamp desc
```
### SPL — Splunk
```spl
index=wineventlog EventCode=4104 source="Microsoft-Windows-PowerShell/Operational"
| where match(ScriptBlockText, "(?i)(IEX|Invoke-Expression|DownloadString|FromBase64String|bypass)")
| stats count by host, UserID, ScriptBlockText
| sort -count
```
## Técnicas Relacionadas
- [[t1059-command-and-scripting-interpreter|T1059-command-and-scripting-interpreter]] — Execução de scripts via PowerShell, Bash, Python, VBScript
- [[t1027-obfuscated-files-or-information|T1027-obfuscated-files-or-information]] — Ofuscação de scripts para evasão de defesas
- [[t1204-user-execution|T1204-user-execution]] — Usuário executando scripts maliciosos (phishing)
- [[t1566-phishing|T1566-phishing]] — Entrega de scripts via anexos de e-mail maliciosos
- [[t1105-ingress-tool-transfer|T1105-ingress-tool-transfer]] — Scripts que baixam cargas adicionais
> [!tip] ScriptBlock Logging é Essencial
> Certifique-se de que o PowerShell ScriptBlock Logging (Event ID 4104) está habilitado via GPO em todos os endpoints. Sem ele, a detecção de ameaças baseadas em PowerShell fica gravemente comprometida. Combine com AMSI para cobertura de outros interpretadores.
## Contexto LATAM
> [!warning] Relevância para SOCs Brasileiros
> Scripts PowerShell e VBScript são o principal vetor de entrega de malware bancário no Brasil. Campanhas direcionadas a clientes de grandes bancos brasileiros usam scripts ofuscados embutidos em arquivos `.lnk`, `.iso` ou documentos Office com macros para executar downloaders de múltiplos estágios. A habilitação do PowerShell ScriptBlock Logging e a integração com SIEM são contramedidas prioritárias para SOCs do setor financeiro brasileiro ([[financial]]).
## Referências
- [MITRE ATT&CK — DC0029: Script Execution](https://attack.mitre.org/datasources/DS0012/#Script%20Execution)
- [Microsoft Docs — PowerShell Script Block Logging](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logging_windows)
- [AMSI — Anti-Malware Scan Interface](https://docs.microsoft.com/en-us/windows/win32/amsi/antimalware-scan-interface-portal)