
Utilidad de validación de mitigación para la cadena de ataque de Ivanti Connect Around. Ejecuta múltiples comprobaciones. CVE-2023-46805, CVE-2024-21887.
La cadena de ataque Connect Around, que involucra CVE-2023-46805 y CVE-2024-21887, representa una amenaza significativa para los dispositivos Ivanti Connect Secure y Policy Secure. Esta cadena de ataque permite el acceso no autorizado y la ejecución de comandos en sistemas vulnerables. CVE-2023-46805 permite a los atacantes eludir los controles de autenticación, mientras que CVE-2024-21887, una vulnerabilidad de inyección de comandos, puede explotarse sin necesidad de autenticación cuando se combina con la anterior. Este par de vulnerabilidades requiere atención urgente por parte de las organizaciones que utilizan productos Ivanti, instándolas a aplicar las mitigaciones disponibles según se detalla en el Foro de la Comunidad de Ivanti.
En respuesta a la necesidad de que las organizaciones validen el estado de mitigación, se ha desarrollado el Comprobador de Vulnerabilidad Ivanti Connect Around. Este script está diseñado para evaluar los dispositivos Ivanti Connect Secure y Policy Secure en busca de vulnerabilidades asociadas con la cadena de ataque Connect Around. Realiza comprobaciones para verificar la presencia de estas vulnerabilidades y genera los resultados en formato CSV. Se emplean múltiples metodologías de validación de mitigación para proporcionar una evaluación completa y fiable.
Nota: Este script no valida CVE-2024-21888 ni CVE-2024-21893.
El script realiza varias comprobaciones para evaluar el estado de seguridad de los sistemas Ivanti Connect Secure. Cada comprobación se basa en metodologías específicas adaptadas de investigaciones dentro de la comunidad de seguridad de la información.
/api/v1/configuration/users/user-roles/user-role/rest-userrole1/web/web-bookmarks/bookmark sin autenticación./api/v1/system/system-information./admin/options/.Cada comprobación proporciona información sobre posibles vulnerabilidades. "Vulnerable" indica una vulnerabilidad confirmada, mientras que "Mitigated" o "Not Vulnerable" significa que el sistema parece seguro contra la vulnerabilidad específica que se está probando.
El script clasifica cada comprobación con tipos de estado específicos, proporcionando información sobre la postura de seguridad del host escaneado. A continuación se presentan las descripciones de cada tipo de estado:
Mitigated: Indica que el sistema tiene mitigaciones implementadas contra las vulnerabilidades comprobadas. Este estado se devuelve cuando se detectan respuestas típicas de un sistema seguro y parcheado.
Vulnerable: Este estado sugiere que el sistema es vulnerable a las comprobaciones específicas realizadas por el script. Se devuelve cuando el sistema exhibe patrones o respuestas conocidos que indican una vulnerabilidad.
HTTP Error: Se devuelve cuando el script encuentra respuestas de error HTTP estándar (distintas de 403 Forbidden) del sistema objetivo. Generalmente indica un problema con el servidor web o la solicitud.
Network Issue: Este estado se utiliza cuando el script encuentra problemas relacionados con la red, como la imposibilidad de alcanzar el host. Combina estados anteriores como "Host Unreachable" y "Network Error".
Timeout Error: Indica que la solicitud al objetivo excedió el tiempo de espera, lo que sugiere posibles problemas de red o configuración que impidieron que el script completara su comprobación.
Connection Error: Similar a "Timeout Error", este estado se utiliza cuando hay problemas para establecer una conexión con el host, lo que podría deberse a problemas de red, nombres de host incorrectos, etc.
Ivanti Presence Inconclusive: Anteriormente conocido como "Attestation Needed", este estado se devuelve cuando las comprobaciones del script no arrojan evidencia definitiva de vulnerabilidad o mitigación. Sugiere que se requiere una investigación manual adicional para determinar el estado de seguridad del sistema.
Vulnerable (Bypass Detected): Específico de la comprobación de vulnerabilidad de bypass, este estado indica que el sistema es vulnerable a la técnica de evasión de autenticación descrita en la metodología del script.
Cada estado proporciona una instantánea de la postura de seguridad del sistema con respecto a las vulnerabilidades comprobadas. Los usuarios deben considerar estos estados como indicadores iniciales y, cuando sea necesario, realizar investigaciones manuales adicionales para confirmar el estado de seguridad real del sistema.
requestsurllib3colorama para salida con código de coloresPara ejecutar el script, use el siguiente comando:
python ivanti_scan.py -i [archivo_de_entrada]
Opcionalmente, ejecute con argumentos adicionales:
python ivanti_scan.py -i [archivo_de_entrada] -o [archivo_de_salida] -t [número_de_hilos] -p [puerto1 puerto2 ...] --color
Utilice una de estas opciones para especificar el/los objetivo(s) de prueba.
-i o --input: Ruta al archivo de entrada que contiene la lista de objetivos.-u o --url: Cadena de URL única para probar.-o o --output: Opcional. Nombre del archivo CSV de salida. Valor predeterminado: [fecha_hora_actual]_results.csv.-t o --threads: Opcional. Número de hilos a utilizar para la ejecución concurrente. Valor predeterminado: 20.-p o --ports: Opcional. Especifique los puertos a comprobar (por ejemplo, 80 443). Por defecto, comprueba los puertos 80 y 443.-a o --user-agent: Opcional. Especifique la cadena de user agent. Valor predeterminado: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.3-c o --color: Opcional. Habilita la salida con código de colores si colorama está instalado.¡Las contribuciones son bienvenidas! Si desea contribuir, aquí hay algunas formas en que puede ayudar:
main.Gracias por considerar contribuir a este proyecto.
Esta herramienta está diseñada para individuos y organizaciones que buscan validar la mitigación de vulnerabilidades dentro de sus propios entornos. Está específicamente destinada para su uso en dispositivos Ivanti Connect Secure donde se haya otorgado permiso explícito para pruebas de seguridad.
Al usar esta herramienta, usted reconoce y acepta estos términos.
Este proyecto está licenciado bajo la Licencia MIT con una Cláusula de Uso Ético; consulte el archivo LICENSE para más detalles.
Este proyecto aprovecha investigaciones y metodologías desarrolladas por varios grupos e individuos estimados en el campo de la ciberseguridad. Expresamos nuestro agradecimiento a:
WatchTowr Labs: Por su esclarecedora investigación sobre las vulnerabilidades de Ivanti Connect Secure. Su trabajo ha sido fundamental en el desarrollo de la metodología de comprobación WEB ACCESS.
Stephen Fewer de Rapid7: Su trabajo en el Módulo de Metasploit proporcionó información valiosa.
Rapid7 en AttackerKB: Su investigación sobre técnicas de evasión de autenticación informó en gran medida este script.
Assetnote: Reconocer /admin/options/ como un método de prueba fiable ayuda a determinar la aplicación de mitigaciones.
Un agradecimiento especial a estos grupos e individuos por sus contribuciones al campo de la ciberseguridad, que han ayudado enormemente al desarrollo de esta herramienta.
Chris Farrell es un investigador de vulnerabilidades comprometido con mejorar la ciberseguridad a través de un análisis exhaustivo y soluciones integrales.
Su experiencia incluye gestión de vulnerabilidades, vCISO, probador de penetración senior, líder de respuesta a incidentes e ISSO.