Alertas de WithSecure sobre el uso de PAExec por parte de Medulla
Aplicable a: Medulla / WithSecure Elements
Versión: Todas
Entorno: Windows / Local / SaaS
Categoría: Seguridad / EDR / Ejecución remota
Contexto
Medulla utiliza PAExec, un equivalente de código abierto de PsExec/SysInternals, para ejecutar acciones de forma remota en los equipos Windows gestionados:
- Despliegue de aplicaciones
- Ejecución de scripts programados
- Orquestación de tareas desde el quiosco de aplicaciones
- Acciones de corrección o mantenimiento
Importante:
Cualquier medida de exclusión de seguridad (EDR, antivirus, lista de permitidos) debe reevaluarse periódicamente para garantizar que siga siendo pertinente en función del contexto, las versiones de software y su política de seguridad.
Se recomienda aplicar las exclusiones más restrictivas posibles.
En Medulla, este mecanismo lo utiliza, en particular, el componente:
scheduling_launch_kiosk.py
PAExec adopta deliberadamente un comportamiento similar al de PsExec, una herramienta legítima ampliamente utilizada por los administradores de sistemas, pero también conocida como vector de movimiento lateral en determinados escenarios de ataque.
Por lo tanto, los EDR modernos, entre ellos WithSecure Elements, supervisan este tipo de comportamiento de forma predeterminada.
¿Por qué WithSecure detecta un archivo PAExec-XXXX-POSTE.exe?
PAExec funciona según un mecanismo temporal:
- El binario Medulla se copia en el equipo de destino
- Se guarda una copia temporal en
C:\Windows\ - Esta copia se ejecuta como un servicio temporal de Windows
- El archivo se elimina automáticamente al finalizar la operación
El nombre del archivo es dinámico:
C:\WINDOWS\PAExec-<PID>-<NombreEquipo>.exe
Ejemplo:
C:\WINDOWS\PAExec-2124-CSE-SDN-ALV-02.exe
El binario original de Medulla permanece en:
C:\Archivos de programa\Medulla\bin\paexec.exe
Información:
El EDR detecta principalmente la copia temporal guardada en C:\Windows\, y no el binario original de Medulla.
¿Por qué se ejecuta PAExec con el permiso de NT\Sistema?
Este comportamiento es normal.
El ciclo de ejecución de PAExec se desarrolla en dos fases:
- El binario de Medulla se copia en
C:\Windows\PAExec-*.exe - La copia se instala como un servicio temporal de Windows
Esta segunda fase se ejecuta con:
NT AUTHORITY\SYSTEM
con el argumento:
-service
Comportamiento esperado:
La ejecución bajo SYSTEM y el argumento -service son normales en el contexto de Medulla.
¿Qué eventos de Windows se generan?
| ID | Registro | Descripción | Esperado |
|---|---|---|---|
7045 |
Sistema | Instalación del servicio PAExec temporal | ✅ Sí |
7036 |
Sistema | Inicio del servicio PAExec | ✅ Sí |
5145 |
Seguridad | Acceso al recurso compartido de Administración | ✅ Sí |
5145 |
Seguridad | Acceso a las tuberías con nombre stdin/stdout/stderr | ✅ Sí |
4648 |
Seguridad | Autenticación con credenciales explícitas | ✅ Posible |
Eventos en las tuberías denominadas:
*-stdin
*-stdout
*-stderr
son objeto de una vigilancia especial por parte de los EDR, ya que caracterizan el funcionamiento de PsExec/PAExec.
¿Por qué WithSecure asocia esto al movimiento lateral?
WithSecure detecta un conjunto de comportamientos típicamente asociados a las herramientas de administración remota:
- Copia de un ejecutable en
C:\Windows\ - Uso del recurso compartido
de Administración - Creación de un servicio temporal de Windows
- Ejecución bajo
NT AUTHORITY\SYSTEM - Comunicación a través de tuberías denominadas
stdin/stdout/stderr
Estos comportamientos son idénticos en un uso:
- Legítimo: Medulla / administración del sistema
- Malicioso: desplazamiento lateral del atacante
Importante:
La exclusión debe ser lo más restrictiva posible para no reducir el nivel general de seguridad.
¿Puedo excluir C:\Program Files\Medulla\bin\paexec.exe?
No.
Esta exclusión por sí sola es ineficaz, ya que el archivo detectado por el EDR es la copia temporal:
C:\WINDOWS\PAExec-*.exe
y no el binario original:
C:\Archivos de programa\Medulla\bin\paexec.exe
¿Qué exclusión se recomienda en WithSecure Elements?
Opción A: exclusión mediante hash SHA256 (recomendada)
En WithSecure Elements Security Center:
- Ve a
Perfiles → Seguridad → Control de aplicaciones - Crea una regla «Allow by hash»
- Introduce el hash SHA256 del archivo binario PAExec Medulla
- Opcionalmente, restringir a la ruta:
C:\Windows\PAExec-*.exe
y a la cuenta:
NT AUTHORITY\SYSTEM
Recomendación:
La exclusión por hash es el método más seguro, ya que comprueba la integridad exacta del archivo binario de Medulla.
Opción B – Exclusión de padre a hijo (recomendada como complemento)
Permitir PAExec-*.exe únicamente cuando el proceso padre sea el agente Medulla.
Proceso padre esperado:
Servicio del agente Medulla (programador de tareas de Python)
Este método permite reducir considerablemente el riesgo de uso indebido.
Opción C – Exclusión con comodín (temporal)
Crear una exclusión de ruta:
C:\Windows\PAExec-*.exe
con las siguientes condiciones:
Atención:
Este método debe ser solo temporal. No valida la integridad del binario.
¿Cómo se obtiene el hash SHA256 del binario PAExec?
Desde un equipo administrado por Medulla:
Get-FileHash "C:\Program Files\Medulla\bin\paexec.exe" -Algorithm SHA256
El hash es idéntico entre:
C:\Program Files\Medulla\bin\paexec.exe
y:
C:\WINDOWS\PAExec-*.exe
ya que PAExec se copia tal cual.
¿Cambia el hash tras una actualización de Medulla?
Sí.
Si PAExec se actualiza en una nueva versión de Medulla, el SHA256 cambiará.
Recomendación:
Comprueba las exclusiones de WithSecure tras cada actualización importante de Medulla.
Resumen de los aspectos técnicos
| Elemento | Valor |
|---|---|
| Archivo binario de origen | C:\Archivos de programa\Medulla\bin\paexec.exe |
| Ruta detectada | C:\Windows\PAExec-<PID>-<NombreEquipo>.exe |
| Mecanismo | Copia temporal a través de la administración |
| Cuenta de ejecución | NT AUTHORITY\SYSTEM |
| Argumento | -service |
| Eventos de Windows | 7045, 7036, 5145 |
| Componente Medulla | scheduling_launch_kiosk.py |
| Exclusión recomendada | Hash SHA256 + contexto de ejecución |
| Exclusión que debe evitarse | C:\Archivos de programa\Medulla\bin\paexec.exe por sí solo |