# 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)*