Skip to content

Glosario

Ataque de degradación de PowerShell

Iniciar la versión 2 de PowerShell para escapar del Script Block Logging y de AMSI, que solo existen en la versión 5.

Un ataque de degradación (downgrade) de PowerShell inicia PowerShell con -Version 2 para que la sesión se ejecute en el antiguo motor de PowerShell 2.0 en lugar de en la versión 5. El motor 2.0 es anterior a las funciones de seguridad añadidas en la versión 5: no tiene Script Block Logging, ni Module Logging, ni integración con AMSI. Si están presentes la característica Windows PowerShell 2.0 y el runtime de .NET Framework 2.0/3.5 del que depende, el atacante obtiene un entorno de scripting completo que deja mucha menos evidencia y que el antivirus no analiza en tiempo de ejecución.

Por qué importa en una investigación

Una degradación es una decisión deliberada para evitar la visibilidad, por lo que su presencia es significativa aunque no pueda ver lo que se ejecutó después. También explica ciertos huecos: un host con el Script Block Logging habilitado pero sin eventos 4104 para una sesión sospechosa puede haber estado ejecutando el motor v2. La buena noticia es que el motor v2 sigue escribiendo en el registro clásico Windows PowerShell, por lo que el propio intento sigue siendo visible.

Los defensores lo impiden eliminando la característica opcional Windows PowerShell 2.0, con lo que -Version 2 se queda sin motor que cargar.

Ejemplo

La línea de comandos, tal como queda registrada en el campo HostApplication de un evento 400 del registro clásico:

HostApplication=powershell.exe -Version 2 -NoProfile -Command whoami
EngineVersion=2.0

Los dos campos cuentan la misma historia desde dos ángulos: la opción muestra la petición y EngineVersion=2.0 muestra el motor que se inició realmente. El parser genera un hallazgo de degradación de gravedad alta por una opción -Version 2 (o -v 2) en una línea de comandos de PowerShell, y por cualquier evento 400 o 403 cuya versión del motor sea 2.x.

Términos relacionados

Compruebe las versiones del motor de los eventos 400 en el PowerShell Parser, lea la guía de registros de eventos de PowerShell y consulte Lee Holmes sobre los ataques de degradación.