T1027.010

Command Obfuscation

Adversaries may obfuscate content during command execution to impede detection. Command-line obfuscation makes strings and patterns within commands and scripts more difficult to signature and analyze. Techniques include: Base64 encoding, string splitting ('Wor'+'d.Application'), character reordering with rev, caret insertion (p^o^w^e^r^s^h^e^l^l), environment variable substitution (%COMSPEC%), directory traversal to binary paths, XOR encryption, and ROT13. Tools like Invoke-Obfuscation and Invoke-DOSfuscation automate obfuscation. Adversaries including APT32, APT29, MuddyWater, Kimsuky, QakBot, FIN6, Wizard Spider, Cobalt Group, and many ransomware operators use command obfuscation extensively.

Microsoft Sentinel / Defender
kusto
let ObfuscationPatterns = dynamic([
  "^p^o^w^e^r", "^c^m^d", "^w^s^c^r^i^p^t",
  "`p`o`w`e`r", "`c`m`d",
  "po`w`er", "po^w^er",
  "\"cmd\"", "\"powershell\"",
  "eNVComspec", "%COMSPEC%",
  "[char]", "[Convert]::FromBase64",
  "iex(", "iex (",
  "Invoke-Expression",
  "$env:ComSpec"
]);
DeviceProcessEvents
| where Timestamp > ago(24h)
| where FileName in~ ("cmd.exe", "powershell.exe", "pwsh.exe", "wscript.exe", "cscript.exe")
| where ProcessCommandLine has_any (ObfuscationPatterns)
    or ProcessCommandLine matches regex @"(\^[a-zA-Z0-9]\^[a-zA-Z0-9]){3,}"
    or ProcessCommandLine matches regex @"[\"\'][a-z]{2,4}[\"\'][\+\s]+[\"\'][a-z]{2,4}[\"\'][\+\s]+"
| extend CaretObfuscation = ProcessCommandLine matches regex @"(\^[a-zA-Z0-9]\^[a-zA-Z0-9]){3,}"
| extend StringSplitting = ProcessCommandLine matches regex @"[\"\'][a-z]{2,}[\"\'][\+\s]+[\"\'][a-z]+[\"\'\
]"
| extend Base64Encoded = ProcessCommandLine has_any ("[Convert]::FromBase64", "EncodedCommand", "-enc ")
| extend InvokeExpr = ProcessCommandLine has_any ("iex(", "Invoke-Expression")
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
         InitiatingProcessFileName, CaretObfuscation, StringSplitting, Base64Encoded, InvokeExpr
| sort by Timestamp desc
high severity high confidence

Data Sources

Process: Process Creation Command: Command Execution Microsoft Defender for Endpoint

Required Tables

DeviceProcessEvents

False Positives

  • Legitimate Base64 encoding in PowerShell for handling binary data in scripts, such as certificate operations or data serialization
  • IT automation scripts using Invoke-Expression to evaluate dynamically-constructed commands for valid operational reasons
  • String concatenation patterns in legitimate PowerShell scripts where variable names or paths are assembled from components
  • Log parsing scripts that process logs containing caret or special characters

Unlock Pro Content

Get the full detection package for T1027.010 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections