Back to hub

Basic PowerShell Base64 Encoded Command Detection

Beginner-level query to detect the use of Base64 encoding parameters in PowerShell (-EncodedCommand, -enc), a technique widely used by attackers to obfuscate malicious scripts and evade plain-text detection. Ideal starting point for EDR threat hunting

EDRpowershellbase64obfuscationencoded-commanddetection-evasionT1059.001T1027
FDR Beginnerby darkreitor 1 min read

Query

#repo="base_sensor" #event_simpleName=ProcessRollup2
| FileName=/(?i)powershell\.exe$/
| CommandLine=/(?i)(-enc\s|-encodedcommand\s|-e\s+[A-Za-z0-9+\/=]{20,})/
| groupBy([ComputerName, UserName, CommandLine], function=count(as=exec_count), limit=max)
| sort(field=exec_count, order=desc, limit=50)

Explanation

PipeDescripción
#repo="base_sensor" #event_simpleName=ProcessRollup2Filtra eventos de creación de procesos del sensor FDR en endpoints
FileName=/(?i)powershell\.exe$/Selecciona únicamente procesos de PowerShell incluyendo cualquier variante de capitalización del nombre
`CommandLine=/(?i)(-enc\s\-encodedcommand\s\-e\s+[A-Za-z0-9+\/=]{20,})/`Detecta los flags de codificación Base64 con un payload mínimo de 20 caracteres para reducir falsos positivos de comandos cortos
groupBy([ComputerName, UserName, CommandLine], function=count(as=exec_count))Agrupa por host, usuario y comando completo para facilitar triaje rápido e identificar recurrencia
sort(field=exec_count, order=desc, limit=50)Muestra los 50 comandos codificados más frecuentes — reducir el límite para enfocarse en las mayores anomalías

Adjustable Variables

El mínimo {20,} puede aumentarse a {50,} o {100,} para reducir falsos positivos de scripts legítimos cortos. Añadir exclusiones por CommandLine con firmas de herramientas de administración legítimas conocidas. Combinar con ScriptBlockText del evento ScriptBlockLogging para decodificar y analizar el payload real del script.