Skip to content

Glosario

Comando codificado (-EncodedCommand)

Parámetro de PowerShell que recibe en Base64 el texto UTF-16LE de un comando, para pasar scripts que sobreviven al entrecomillado y ocultar la intención.

-EncodedCommand es un parámetro de powershell.exe (y de pwsh) que ejecuta un comando proporcionado como Base64 de sus bytes UTF-16LE. A menudo se abrevia como -enc o -e. Su finalidad legítima es pasar un comando con comillas, llaves o saltos de línea a través de otro shell o de una herramienta de administración sin que se altere. Esa misma propiedad lo convierte en la forma más habitual de ocultar una línea de comando maliciosa a quien echa un vistazo rápido a la línea de comandos de un proceso.

Por qué importa en una investigación

Un comando codificado no es malicioso por sí mismo, pero es poco frecuente en la administración tecleada a mano y habitual en los lanzadores de malware, por lo que merece revisarse siempre. Dónde lo verá depende del artefacto: el Script Block Logging suele registrar el bloque después de decodificarlo, mientras que la línea de comandos de los eventos 400 y 800 del registro clásico, el historial de PSReadLine y las transcripciones conservan la forma codificada, así que allí tendrá que decodificarlo.

La decodificación es una operación puramente textual: se decodifica el argumento en Base64 y después se leen los bytes como UTF-16LE. Nunca ejecuta el comando. El resultado suele ser otra capa, como un flujo gzip o deflate, códigos [char], concatenación de cadenas o el operador de formato -f, cada una de las cuales también puede revertirse como texto.

Ejemplo

Un lanzador típico registrado en el campo HostApplication de un evento 400:

powershell.exe -nop -w hidden -enc VwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAnAHMAeQBuAHQAaABlAHQAaQBjACAAcwBhAG0AcABsAGUAJwA=

Se decodifica como Write-Output 'synthetic sample'. Observe los caracteres A repetidos en el Base64: proceden del byte alto a cero de cada carácter ASCII en UTF-16LE y son una pista visual rápida. El parser decodifica el argumento, muestra cada capa y señala además la ventana oculta que lo acompaña.

Términos relacionados

Pegue un comando codificado en la vista de desofuscación del PowerShell Parser y lea cómo decodificar comandos codificados y la ofuscación para conocer cada capa en detalle.