# T1059.001 - PowerShell ## Técnica Pai Esta é uma sub-técnica de [[t1059-command-scripting-interpreter|T1059 - T1059 - Command and Scripting Interpreter]]. ## Descrição **T1059.001 - PowerShell** é uma subtécnica da categoria [[t1059-command-and-scripting-interpreter|T1059 - Command and Scripting Interpreter]], classificada na tática de **Execution** (Execução) do MITRE ATT&CK. Adversários abusam do PowerShell - o poderoso ambiente de scripting e linha de comando incluído nativamente no Windows - para executar código malicioso, fazer download de payloads da internet, realizar descoberta de ambiente, se mover lateralmente e até destruir dados. Por ser uma ferramenta legítima e assinada pela Microsoft, o PowerShell apresenta um desafio considerável para defesas baseadas em allowlisting. O que torna o PowerShell especialmente valioso para atacantes é sua capacidade de executar código diretamente em memória, sem gravar arquivos em disco (técnica conhecida como *fileless execution*). Comandos como `IEX (Invoke-Expression)`, `Invoke-Command` e `Start-Process` permitem desde execução remota em outros sistemas da rede até download e execução imediata de scripts hospedados em servidores C2. Frameworks de ataque inteiramente construídos sobre PowerShell - como [[s0363-empire|Empire]], PowerSploit e PoshC2 - tornaram essa técnica um pilar do arsenal ofensivo moderno, cobrindo do reconhecimento inicial à persistência. Além do binário `powershell.exe` convencional, adversários sofisticados exploram a DLL subjacente `System.Management.Automation` via .NET ou Windows Common Language Interface (CLI), contornando restrições que monitoram apenas o processo `powershell.exe`. Esse vetor é usado por grupos como [[g0007-apt28|APT28]] e [[g0034-sandworm|Sandworm Team]] para executar operações sem acionar alertas baseados em nome de processo. Grupos de ransomware como [[s1202-lockbit-30|LockBit 3.0]] e [[s1212-ransomhub|RansomHub]] utilizam PowerShell para desabilitar backups, remover shadow copies e preparar o ambiente antes da criptografia. **Contexto Brasil/LATAM:** PowerShell é uma das técnicas de execução mais registradas em incidentes no Brasil. Campanhas de phishing direcionadas ao setor financeiro e governamental brasileiro frequentemente usam documentos Office com macros que invocam PowerShell para baixar o stager do C2. Trojans bancários como [[s0650-qakbot|QakBot]] e [[s0330-zeus-panda|Zeus Panda]] - com histórico de operações no Brasil - usam PowerShell em estágios intermediários de infecção. O CERT.br registra regularmente campanhas com uso de `powershell -EncodedCommand` como vetor de entrega de RATs e stealers direcionados a CPFs e credenciais bancárias. ## Attack Flow ```mermaid graph TB A[Initial Access<br/>T1566 Phishing] --> B[Execução<br/>**T1059.001 PowerShell**]:::highlight B --> C[Download Payload<br/>Fileless / In-Memory] B --> D[Persistence<br/>T1547.001 Run Keys] B --> E[Discovery<br/>T1033 / T1082] B --> F[C2<br/>T1071 HTTP/HTTPS] classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b ``` ## Como Funciona 1. **Preparação:** O adversário prepara um script PowerShell ou um one-liner ofuscado. Técnicas comuns de ofuscação incluem: encoding em Base64 (`-EncodedCommand`), concatenação de strings (`'po'+'wer'+'shell'`), uso de backticks e substituição de caracteres. O objetivo é contornar assinaturas de AV/EDR que buscam padrões textuais conhecidos. 2. **Execução:** O script é invocado diretamente via `powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -EncodedCommand <base64>`, ou indiretamente a partir de um documento Office (via `WScript.Shell`, `cmd.exe` ou `mshta.exe`). Em ataques avançados, a chamada ocorre via API .NET, sem instanciar o binário `powershell.exe`, contornando detecções baseadas em processo. 3. **Pós-execução:** O script executa o payload - que pode ser um stager de C2, um módulo de [[t1033-system-owneruser-discovery|discovery]], um módulo de credential dumping ([[t1003-os-credential-dumping|T1003]]) ou um script de destruição como `Remove-Item -Recurse` ou deleção de shadow copies via `vssadmin`. A execução em memória evita artefatos em disco e complica a análise forense. ## Detecção **Fontes de dados:** - **PowerShell Script Block Logging (Event ID 4104):** Captura o conteúdo real do script executado, incluindo scripts desofuscados após a execução pelo interpretador. É o controle mais poderoso disponível - deve ser habilitado via GPO em todos os ambientes Windows. - **PowerShell Module Logging (Event ID 4103):** Registra cada chamada de cmdlet e seus parâmetros. Mais verboso que ScriptBlock, útil para correlação detalhada. - **Windows Event ID 4688 / Sysmon Event ID 1 (Process Creation):** Monitorar instâncias de `powershell.exe` com flags suspeitas (`-EncodedCommand`, `-NonI`, `-NoP`, `-W Hidden`, `-Exec Bypass`). - **Sysmon Event ID 3 (Network Connection):** PowerShell fazendo conexões de saída - especialmente para IPs/domínios não corporativos - é indicador forte de C2 ou download de payload. - **AMSI (Antimalware Scan Interface):** Windows 10+ expõe o conteúdo de scripts ao AMSI antes da execução. EDRs e Windows Defender usam esse hook para detectar conteúdo malicioso mesmo em scripts ofuscados. **Sigma Rule:** ```yaml title: Suspicious PowerShell Execution with Encoded Command id: b5d2c1a3-8f7e-4b2a-a1b5-2d4f6e8a0c1b status: stable description: Detecta execução de PowerShell com flags de evasão e comandos codificados em Base64 logsource: product: windows category: process_creation detection: selection_binary: Image|endswith: - '\powershell.exe' - '\pwsh.exe' selection_flags: CommandLine|contains: - '-EncodedCommand' - '-enc ' - '-ExecutionPolicy Bypass' - '-Exec Bypass' - '-NonInteractive' - '-WindowStyle Hidden' - '-NoProfile' - 'IEX' - 'Invoke-Expression' - 'DownloadString' - 'DownloadFile' - 'WebClient' condition: selection_binary and selection_flags falsepositives: - Scripts legítimos de automação de TI usando flags não-interativas - Ferramentas de RMM (ex: N-able, PDQ Deploy) level: medium tags: - attack.execution - attack.t1059.001 ``` ## Mitigação | Mitigação | Recomendação Prática | |-----------|---------------------| | [[m1042-disable-or-remove-feature-or-program\|M1042 - Disable or Remove Feature or Program]] | Em estações onde PowerShell não é necessário operacionalmente (ex: estações de call center, caixas de varejo), desabilitar ou remover o binário. Usar AppLocker para bloquear `powershell.exe` e `pwsh.exe` por usuários não administrativos. | | [[Antimalware]] | Garantir que o AMSI está habilitado e integrado ao EDR. Soluções modernas (CrowdStrike, Defender for Endpoint, SentinelOne) têm detecção comportamental de PowerShell que vai além de assinaturas estáticas. | | [[m1045-code-signing\|M1045 - Code Signing]] | Configurar `Set-ExecutionPolicy AllSigned` exige que todos os scripts sejam assinados digitalmente. Reduz drasticamente o vetor de scripts ad-hoc baixados da internet. | | [[m1026-privileged-account-management\|M1026 - Privileged Account Management]] | Limitar quem pode executar `Invoke-Command` remoto. PowerShell Remoting com JEA (Just Enough Administration) restringe comandos permitidos por perfil de usuário. | | [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Habilitar ScriptBlock Logging (Event ID 4104) e Module Logging (Event ID 4103) via GPO. São controles gratuitos e de alto valor que viabilizam detecção e resposta a incidentes. | ## Threat Actors que Usam - [[g0090-wirte|WIRTE]] - APT do Oriente Médio que usa PowerShell em campanhas de espionagem contra entidades governamentais e diplomáticas. - [[g1044-apt42|APT42]] - grupo iraniano que abusa de PowerShell para executar stagers e módulos de reconhecimento em alvos de ativismo e mídia. - [[g1023-apt5|APT5]] - grupo chinês focado em telecomúnicações; usa PowerShell para reconhecimento de rede e exfiltração de configurações de roteadores. - [[g0108-blue-mockingbird|Blue Mockingbird]] - grupo de cryptojacking que usa PowerShell para instalar e persistir mineradores XMR em servidores Windows públicos. - [[g0087-apt39|APT39]] - APT iraniano (Chafer) que usa PowerShell em campanhas de espionagem no setor de telecomúnicações e viagens. - [[g0059-magic-hound|Magic Hound]] - grupo iraniano que usa PowerShell em campanhas de spearphishing contra Israel e EUA, com histórico de operações contra infraestrutura crítica. - [[g0073-apt19|APT19]] - APT chinês que usa PowerShell em ataques a escritórios de advocacia e consultorias, frequentemente via documentos Word com macros. - [[g0007-apt28|APT28]] - Fancy Bear (GRU russo); um dos grupos que mais documentou uso ofensivo de PowerShell em campanhas de interferência eleitoral e espionagem NATO. - [[g0096-apt41|APT41]] - grupo dual-use (espionagem + crime financeiro) chinês que usa PowerShell extensivamente em operações de supply chain e intrusão a videogames. - [[g0034-sandworm|Sandworm Team]] - grupo do GRU russo responsável por NotPetya e ataques à infraestrutura ucraniana; usa PowerShell para destruição de dados e wipers. ## Software Associado - [[s1212-ransomhub|RansomHub]] (malware) - [[badhatch|BADHATCH]] (malware) - [[s0363-empire|Empire]] (ferramenta) - [[s0330-zeus-panda|Zeus Panda]] (malware) - [[s0650-qakbot|QakBot]] (malware) - [[s0622-appleseed|AppleSeed]] (malware) - [[s1141-lunarweb|LunarWeb]] (malware) - [[s1202-lockbit-30|LockBit 3.0]] (malware) - [[s1140-spica|Spica]] (malware) - [[s1155-covenant|Covenant]] (ferramenta) --- *Fonte: [MITRE ATT&CK - T1059.001](https://attack.mitre.org/techniques/T1059/001)* ## Mapa de Defesa ```mermaid graph TB ATK["T1059.001"] ATK --> THAR["🛡️ Harden"] THAR --> D1["D3-FE<br/>File Encryption"] ATK --> TDET["📡 Detect"] TDET --> D2["D3-DA<br/>Dynamic Analysis"] TDET --> D3["D3-EFA<br/>Emulated File Analysis"] TDET --> D4["D3-FA<br/>File Analysis"] TDET --> D5["D3-FIM<br/>File Integrity Monitoring"] ATK --> TISO["🔒 Isolate"] TISO --> D6["D3-CF<br/>Content Filtering"] TISO --> D7["D3-CM<br/>Content Modification"] TISO --> D8["D3-CQ<br/>Content Quarantine"] TISO --> D9["D3-EAL<br/>Executable Allowlisting"] TISO --> D10["D3-EDL<br/>Executable Denylisting"] ATK --> TDEC["🎭 Deceive"] TDEC --> D11["D3-DF<br/>Decoy File"] ATK --> TEVI["🚫 Evict"] TEVI --> D12["D3-FEV<br/>File Eviction"] ATK --> TRES["♻️ Restore"] TRES --> D13["D3-RF<br/>Restore File"] classDef attack fill:#c0392b,color:#fff classDef detect fill:#2980b9,color:#fff classDef harden fill:#27ae60,color:#fff classDef isolate fill:#8e44ad,color:#fff classDef evict fill:#e67e22,color:#fff class ATK attack class THAR harden class TDET detect class TISO isolate class TEVI evict ``` | Tática D3FEND | Técnica | ID | |--------------|---------|-----| | 🛡️ Harden | File Encryption | D3-FE | | 📡 Detect | Dynamic Analysis | D3-DA | | 📡 Detect | Emulated File Analysis | D3-EFA | | 📡 Detect | File Analysis | D3-FA | | 📡 Detect | File Integrity Monitoring | D3-FIM | | 🔒 Isolate | Content Filtering | D3-CF | | 🔒 Isolate | Content Modification | D3-CM | | 🔒 Isolate | Content Quarantine | D3-CQ | | 🔒 Isolate | Executable Allowlisting | D3-EAL | | 🔒 Isolate | Executable Denylisting | D3-EDL | | 🔒 Isolate | Local File Permissions | D3-LFP | | 🔒 Isolate | Remote File Access Mediation | D3-RFAM | | 🎭 Deceive | Decoy File | D3-DF | | 🚫 Evict | File Eviction | D3-FEV | | ♻️ Restore | Restore File | D3-RF | *Fonte: [MITRE D3FEND](https://d3fend.mitre.org/offensive-technique/attack/T1059.001)*