pulse-secure-vpn-mitm-research
Investigación sobre MitM en Pulse Secure
Fecha de lanzamiento
Fecha de lanzamiento conjunta con el proveedor: 26 de octubre de 2020
Autor
David Kierznowski, @withdk
Créditos
- Sahil Mahajan, del equipo PSIRT de Pulse Secure, por su apoyo durante todo el proceso de divulgación.
- Alyssa Herrera, Justin Wagner, Mimir y Rich Warren por su artículo, "Red Teamer’s Guide to Pulse Secure SSL VPN" - Alyssa Herrera (4 de septiembre de 2019).
- El equipo SA Red Team por su apoyo y estímulo continuos.
Referencias CVE
- CVE-2020-8241 (8.1 Alto CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H)
- CVE-2020-8239 (5.9 Medio CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N)
Muestra

Prueba de concepto que demuestra cómo rogue-pulse-svr.py obtiene una shell inversa de meterpreter de un cliente Pulse conectado a la misma red.
Introducción
Pulse Connect Secure (PCS) es una solución VPN empresarial de uso común. En el momento de redactar este documento, PCS admite más de 20 millones de endpoints (Pulse Secure, s.f.). Esta investigación se centró en revisar la confidencialidad e integridad del canal de comunicación de red establecido entre un endpoint PCS con Windows 10 y una puerta de enlace PCS. En particular, plantea la pregunta: "¿qué tan seguro es un endpoint cuando está conectado a una red no confiable?". Esta investigación se aplica a las configuraciones predeterminadas y "Always-On".
Impacto (Medio - Alto)
Cuando se encadenan, es posible obtener ejecución remota de código desde una red no confiable con privilegios completos de SYSTEM. Alternativamente, una amenaza interna podría usar CVE-2020-8241 como vulnerabilidad independiente para escalar privilegios.
Estos ataques podrían utilizarse en una variedad de situaciones; sin embargo, son más adecuados para ataques dirigidos. Con base en esto y en los supuestos que se indican a continuación, la probabilidad es baja - media.
Ataques potenciales
Los siguientes ataques se han demostrado con éxito en una herramienta de prueba de concepto "rogue-pulse":
- Robar credenciales de usuario. Un servidor malicioso podría engañar al usuario para que revele sus credenciales de inicio de sesión.
- Ejecutar un binario desde una ruta UNC de Microsoft Windows. El servidor PCS admite la opción de lanzar un ejecutable después de la autenticación. Se puede abusar de esto para obtener ejecución de código con los permisos del usuario que ha iniciado sesión. Esto se basa en el trabajo de Alyssa Herrera y el equipo Alyssa Herrera (4 de septiembre de 2019).
- Acceso de administrador remoto completo abusando de las comprobaciones de cumplimiento del host. Las comprobaciones de cumplimiento del host se ejecutan como SYSTEM. Un servidor malicioso podría abusar de esta funcionalidad para enviar una política maliciosa que permita acceso de escritura arbitrario al registro.
- Interceptar tráfico de red. Esto permitirá al atacante interceptar y modificar el tráfico de red incluso cuando "always-on" está habilitado. Actualmente, la herramienta solo muestra las solicitudes de tráfico de red del endpoint.
El PoC también implementa una función de inicio de sesión automático. Esto engaña al cliente haciéndole creer que ya se ha autenticado anteriormente. Esto sería útil en los casos en que la ejecución de código es la prioridad sobre la recolección de credenciales.
Supuestos
- Esta investigación tiene como objetivo obtener ejecución remota de código a través de una red no confiable. Ambas vulnerabilidades se encadenan para lograr este objetivo. Dicho esto, una amenaza interna podría simplemente usar CVE-2020-8241 por sí sola para escalar privilegios.
- La puerta de enlace PCS utiliza la configuración predeterminada con "dynamic-trust" habilitado. Tenga en cuenta que la política generalmente se actualiza y se envía al cliente después de la autenticación. Esto significa que aún puede existir una pequeña ventana de oportunidad incluso después de que la puerta de enlace haya deshabilitado "dynanmic-trust".
- El atacante está en posición de realizar un ataque de hombre en el medio (MitM) sobre el tráfico de red HTTPS, p. ej., el atacante ha comprometido el router de la red doméstica del usuario, puntos de acceso Wi-Fi maliciosos, etc.
- Se requiere que el usuario acepte la advertencia del certificado. Una observación interesante es que el cliente de Pulse Secure continuará mostrando este mensaje emergente hasta que el usuario acepte el certificado. Además, el mensaje emergente no es particularmente alarmante. Finalmente, al ser un "Secure Client", es mucho más probable que el usuario ignore el mensaje y se conecte de todos modos. Esto no parece ser un gran obstáculo.
- El endpoint se conecta desde un sistema operativo Microsoft Windows.
Recomendaciones
Para mitigar y remediar el problema, se deben considerar las siguientes recomendaciones:
- Las organizaciones deben realizar verificaciones de cumplimiento con las mejores prácticas de seguridad de Pulse Secure (Pulse Secure, 2 de julio de 2019). Asegúrense de que la "Dynamic certificate trust" esté deshabilitada.
- Apliquen las correcciones del proveedor (consulten https://kb.pulsesecure.net/articles/Pulse_Security_Advisories/SA44601).
- La ejecución de scripts del servidor PCS se ejecuta como un proceso hijo de "Pulse.exe". Por lo tanto, se pueden implementar salvaguardas monitoreando los procesos hijos del binario "Pulse.exe".
- Monitoreen el servicio "PulseSecureService" para detectar actividad sospechosa en el registro.
Referencias
Descargo de responsabilidad
La información proporcionada es solo para fines educativos y de investigación. El autor no asume ninguna responsabilidad por el uso que usted haga de esta información y condena firmemente cualquier intento de violar las leyes aplicables. El autor no asume el deber de actualizar esta información, no ofrece garantías sobre su integridad, uso o aplicabilidad, y rechaza toda confianza en ella. El uso que usted haga de esta información es de su exclusiva responsabilidad.