Basic Detection of PowerShell Encoded Command Execution
Beginner-level query to detect PowerShell executions with base64 encoding or profile suppression parameters, a fundamental technique used by attackers to obfuscate malicious scripts in Windows environments
EDRpowershellencoded-commandobfuscationwindowslotlT1059.001T1027
FDR Beginnerby darkreitor 1 min read
Query
#repo="base_sensor" #event_simpleName=ProcessRollup2
| FileName=/(?i)(powershell\.exe|pwsh\.exe)$/
| CommandLine=/(?i)(-enc|-encodedcommand|-ec\s)/
| groupBy([ComputerName, UserName, CommandLine], function=count(as=exec_count))
| sort(exec_count, order=desc)Explanation
| Pipe | Descripción | ||
|---|---|---|---|
#repo="base_sensor" #event_simpleName=ProcessRollup2 | Filtra eventos de creación de procesos desde telemetría FDR | ||
| `FileName=/(?i)(powershell\.exe\ | pwsh\.exe)$/` | Apunta a ambas versiones de PowerShell (clásica y Core) | |
| `CommandLine=/(?i)(-enc\ | -encodedcommand\ | -ec\s)/` | Detecta el uso del parámetro de comando codificado en base64, indicador de ofuscación |
groupBy([ComputerName, UserName, CommandLine], function=count(as=exec_count)) | Agrupa resultados por host, usuario y línea de comando completa para identificar patrones | ||
sort(exec_count, order=desc) | Ordena por frecuencia para priorizar las ejecuciones más repetidas |
Adjustable Variables
Añade -nop, -noprofile, -w hidden o -bypass a la regex si quieres ampliar la cobertura. Filtra por UserName para excluir cuentas de servicio con uso legítimo documentado de PowerShell codificado.