Bishop Fox desarrolló internamente un exploit para CVE-2023-27997, un desbordamiento de montón en FortiOS, el sistema operativo detrás de los firewalls FortiGate, que permite la ejecución remota de código. Hay 490,000 interfaces SSL VPN afectadas expuestas en Internet, y aproximadamente el 69% de ellas están actualmente sin parches. Deberías parchear el tuyo ahora.

El exploit

FIGURA 1 – Ejecución remota de código a través de CVE-2023-27997 en FortiGate FGVM64 versión 7.2.4

El equipo de desarrollo de capacidades de Bishop Fox creó un exploit para CVE-2023-27997 que estamos utilizando continuamente para probar a los clientes de Cosmos. En la captura de pantalla anterior, nuestro exploit rompe el montón, se conecta de nuevo a un servidor controlado por el atacante, descarga un binario BusyBox y abre un shell interactivo. Este exploit sigue muy de cerca los pasos detallados en la publicación original del blog de Lexfo, aunque tuvimos que tomar algunos pasos adicionales que no se mencionaron en esa publicación. El exploit se ejecuta en aproximadamente un segundo, que es significativamente más rápido que el video de demostración en un dispositivo de 64 bits mostrado por Lexfo.

Buscando Shodan

Varios artículos publicados a raíz de la divulgación de esta vulnerabilidad han sugerido que una búsqueda de Shodan revela 250,000 firewalls FortiGate expuestos en Internet. Muchos de estos artículos utilizan la consulta , que busca cualquier certificado SSL que se emitió para FortiGate. Hay algunos problemas con esta consulta:ssl.cert.subject.cn:FortiGate

  • No filtra específicamente las interfaces SSL VPN, que es donde reside esta vulnerabilidad.
  • No encuentra dispositivos con certificados emitidos por alguien que no sea Fortinet (por ejemplo, certificados autofirmados, proxies inversos, etc.)

Para obtener mejores resultados, podemos buscar cualquier servidor que devuelva el encabezado de respuesta HTTP (curiosamente, esto parece ser una huella digital confiable para dispositivos que ejecutan FortiOS) y luego filtrar aquellos que redirigen a , la ruta que expone la interfaz SSL VPN.Server: xxxxxxxx-xxxxx/remote/login

Esta consulta en Shodan CLI hará el truco:

$ shodan count '"Server: xxxxxxxx-xxxxx" http.html:"top.location=/remote/login"'
489337

Devuelve casi 490,000 interfaces SSL VPN expuestas, aproximadamente el doble del número que obtuvimos cuando solo buscamos en base a un certificado SSL.

Búsqueda de dispositivos sin parches

Al inspeccionar las imágenes de software publicadas de Fortinet, sabemos que las versiones parcheadas de FortiOS se empaquetaron en mayo-junio de 2023. Si buscamos en Shodan esos dos meses en el encabezado de respuesta HTTP de última modificación, podemos encontrar dispositivos que han sido parcheados. En la siguiente consulta, asumimos que la mitad de los dispositivos con instalaciones basadas en mayo están parcheados (hay algunas versiones superpuestas en este período de tiempo), y todas las instalaciones basadas en junio están parcheadas.

$ seq 01 31 |
parallel 'printf "2023-05-%02d\n2023-06-%02d\n" {} {}' |
parallel 'date -d {} "+Last-Modified: %a, %d %b %Y" 2>/dev/null' |
parallel --bar 'shodan count "\"Server: xxxxxxxx-xxxxx\" http.html:\"top.location=/remote/login\" \"{}\"" | tr "\n" " "; echo {}' |
awk '{if ($0 ~ /May/) {SUM += $1 / 2} else {SUM += $1}} END {print SUM}'
153414

Si solo 153,414 dispositivos en Internet están parcheados, eso deja 335,923 / 489,337 = 69% sin parches. Esto es ciertamente preocupante, pero es menos sorprendente cuando se observan las instalaciones de FortiOS orientadas a Internet graficadas por sus valores de encabezado de última modificación:

FIGURA 2 – Instalaciones de FortiOS de abril de 2014 a junio de 2023

En el gráfico anterior, podemos ver claramente las instalaciones agrupadas alrededor del otoño de 2022 y el invierno de 2023 (probablemente aplicando parches para CVE-2022-42475, para el que también desarrollamos un exploit), con un pequeño pico cerca de la fecha del parche para CVE-2023-27997 en el verano de 2023. Sin embargo, hay muchos valores atípicos en 2018 y anteriores que son difíciles de ver en esta vista lineal, así que tomemos una vista logarítmica en su lugar:

FIGURA 3 – Vista logarítmica de las instalaciones de FortiOS desde abril de 2014 hasta junio de 2023

Wow, parece que hay un puñado de dispositivos que ejecutan FortiOS de 8 años en Internet. No los tocaría con un poste de 10 pies.

Versiones de huellas digitales

Podemos profundizar en nuestro análisis. Una vez más, al inspeccionar las imágenes de software lanzadas, podemos asignar fechas específicas a versiones principales específicas de las versiones de FortiOS. Veamos específicamente los firewalls FortiGate esta vez. El siguiente gráfico es similar al primero que vimos, pero cada barra apilada está coloreada para mostrar la distribución de las versiones principales en cada mes. Tenga en cuenta que este conjunto de datos se basa en una muestra más pequeña de dispositivos (limitados por nuestra capacidad de tomar huellas digitales de versiones principales específicas), pero esto parece ser representativo de las distribuciones de versiones a través de Internet.

FIGURA 4 – Instalaciones de FortiOS de las versiones 5,6 y 7 de diciembre de 2015 a junio de 2023

Hay mucha versión 7 (lanzada a principios de 2021) y una tonelada de versión 6 que está llegando gradualmente al final de su vida útil. Pero espera, ¿qué son esos pequeños trozos azules apenas visibles en el lado izquierdo del gráfico? La vista logarítmica puede ayudar de nuevo:

FIGURA 5 – Vista logarítmica de las instalaciones de FortiOS de las versiones 5,6 y 7 de diciembre de 2015 a junio de 2023

¿Es eso … ¿FortiOS versión 5? Esos dispositivos están tan al final de su vida útil que se cayeron de la tabla de lanzamiento vinculada anteriormente. Descansen en paz, pequeños.

fuente: bishopfox