Glosario
Registro clásico de Windows PowerShell
El registro original Windows PowerShell.evtx, con eventos del ciclo de vida del motor y los proveedores (400/403/600) y de canalizaciones (800).
El registro Windows PowerShell (Windows PowerShell.evtx en System32\winevt\Logs) es el registro de eventos original de PowerShell. Es anterior a los canales modernos por proveedor, razón por la cual PowerShell añadió más tarde Microsoft-Windows-PowerShell/Operational junto a él en lugar de sustituirlo. El registro clásico está presente y habilitado de forma predeterminada, y registra cuatro event ID:
- 400: el estado del motor cambió a Available, es decir, se inició un host de PowerShell
- 403: el estado del motor cambió a Stopped, es decir, el host finalizó
- 600: ciclo de vida de los proveedores, como Registry o Certificate
- 800: detalles de ejecución de la canalización
Por qué importa en una investigación
Como no requiere ninguna directiva, el registro clásico es con frecuencia la única evidencia de PowerShell en los hosts sin Script Block Logging. Los eventos 400 y 403 delimitan la vida de cada host de PowerShell, y su bloque de detalle contiene HostApplication: la línea de comandos completa que lo inició. Ahí es donde aparece un -EncodedCommand, un -WindowStyle Hidden o una degradación con -Version 2. EngineVersion confirma qué motor se ejecutó realmente, y el evento 800 registra la línea de comandos de cada canalización, a menudo el mejor registro de lo que se ejecutó cuando no hay eventos 4104.
Ejemplo
El bloque de detalle de un evento 400 es una lista de líneas Key=Value:
NewEngineState=Available
PreviousEngineState=None
HostName=ConsoleHost
HostVersion=5.1.19041.4648
HostApplication=powershell.exe -nop -w hidden -enc VwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAnAHMAeQBuAHQAaABlAHQAaQBjACAAcwBhAG0AcABsAGUAJwA=
EngineVersion=5.1.19041.4648
RunspaceId=...
El parser divide estas líneas en campos ordenables, decodifica el comando codificado de HostApplication y señala la ventana oculta. Para un evento 400 o 403 con una EngineVersion 2.x, genera un hallazgo de degradación.
Términos relacionados
- Event ID 4104 y Module Logging (4103), en el registro Operational
- Ataque de degradación de PowerShell, visible aquí a través de
EngineVersion - Comando codificado, que a menudo se encuentra en
HostApplication
Combine el registro clásico con el registro Operational en el PowerShell Parser y consulte la guía de registros de eventos de PowerShell para saber qué demuestra cada event ID.