Glossar
Kodierter Befehl (-EncodedCommand)
Ein PowerShell-Parameter, der einen Base64-String aus UTF-16LE-Befehlstext entgegennimmt – genutzt, um Skripte unbeschadet durch Quoting zu übergeben, und um die Absicht zu verschleiern.
-EncodedCommand (auch -enc, -e) führt einen Befehl aus, der als Base64 seiner UTF-16LE-Bytes übergeben wird. Legitim sorgt das dafür, dass ein Befehl das Quoting der Shell unbeschadet übersteht, es ist aber auch die gängigste Methode, einen bösartigen Einzeiler zu verschleiern. Zum Dekodieren wird das Argument Base64-dekodiert und das Ergebnis als UTF-16LE gelesen – eine reine Textoperation, die den Code nie ausführt.
Ein typisches Merkmal ist das aufgefüllte Base64 (VwByAGkAdABlA…), bedingt durch das Null-Byte an höherwertiger Stelle jedes ASCII-Zeichens. Darüber hinaus fügen Angreifer gzip/deflate, [char]-Codes, Verkettung und den -f-Operator hinzu. Siehe kodierte Befehle dekodieren.