Más de 40.000 dispositivos Cisco que ejecutan el sistema operativo IOS XE a nivel mundial se han visto comprometidos después de que piratas informáticos explotaran una vulnerabilidad de máxima gravedad recientemente revelada. La vulnerabilidad crítica se rastrea como CVE-2023-20198 y se ha descrito como un problema de escalada de privilegios que afecta a la interfaz de usuario web de IOS XE, que viene con la imagen por defecto. Un atacante remoto no autenticado puede aprovechar la vulnerabilidad para crear una cuenta con los máximos privilegios -acceso de nivel 15- y utilizarla para tomar el control del dispositivo.
La interfaz de usuario web (UI) es una aplicación de administración del sistema basada en una interfaz gráfica de usuario (GUI) que simplifica la gestión del sistema sin necesidad de instalaciones ni licencias adicionales. Sin embargo, se desaconseja fuertemente exponer la interfaz de usuario web a Internet o a redes no fiables debido a posibles riesgos de seguridad.
«Con este nivel de acceso, un atacante puede modificar las reglas de enrutamiento de la red, así como abrir puertos para acceder a servidores controlados por el atacante para la exfiltración de datos», advirtió Scott Caveza, ingeniero de investigación de Tenable. «Cuando el atacante tiene este nivel de control y crea una cuenta administrativa con un nombre inocuo, es posible que su actividad pase desapercibida durante bastante tiempo».
La vulnerabilidad puede ser explotada desde la red o directamente desde Internet si el dispositivo objetivo está expuesto a la web. No hay parche ni solución disponible, y la única recomendación para proteger los dispositivos es desactivar la función de servidor HTTP en todos los sistemas conectados a Internet. Los equipos de red que ejecutan Cisco IOS XE incluyen conmutadores empresariales, routers industriales, puntos de acceso, controladores inalámbricos y routers de agregación y sucursales.
Decenas de miles de dispositivos Cisco expuestos
Las estimaciones iniciales de dispositivos Cisco IOS XE vulnerados rondaban los 10.000 y el número empezó a crecer a medida que los investigadores de seguridad rastreaban Internet en busca de una cifra más precisa.
A mediados de octubre, el motor LeakIX de indexación de servicios y aplicaciones expuestos en la web pública, afirmó haber encontrado unos 30.000 dispositivos infectados, sin contar los sistemas reiniciados. La búsqueda se basó en los indicadores de compromiso (IoC) que Cisco proporcionó para determinar el éxito de la explotación de CVE-2023-20198 en un dispositivo expuesto y reveló miles de hosts infectados en Estados Unidos, Filipinas y Chile.
Utilizando el mismo método de verificación de Cisco, el CERT privado de Orange anunció que había más de 34.500 direcciones IP de Cisco IOS XE con un implante malicioso como resultado de la explotación de CVE-2023-20198.
CERT Orange también publicó un script Python para escanear la presencia de un implante malicioso en un dispositivo de red que ejecuta Cisco IOS XE. En una actualización del 18 de octubre, la plataforma de búsqueda de Censys para evaluar la superficie de ataque de los dispositivos conectados a Internet afirmó que el número de dispositivos comprometidos que había encontrado había aumentado a 41.983.
Es difícil obtener un número exacto de dispositivos Cisco IOS XE accesibles a través de la Internet pública, pero Shodan muestra algo más de 145.000 hosts, la mayoría de ellos en EE.UU. A continuación, se muestra una captura de pantalla con los resultados de Shodan para los dispositivos de Cisco que tienen su interfaz de usuario web accesible a través de Internet:
Análisis del implante
En su reporte, Cisco menciona que identifica indicios de actividad sospechosa potencialmente maliciosa el 28 de septiembre de 2023, cuando se abrió un caso en el Centro de Asistencia Técnica (TAC) de Cisco en el que se identificaba un comportamiento inusual en el dispositivo de un cliente. La actividad incluía la creación por parte de un usuario autorizado de una cuenta de usuario local con el nombre de usuario «cisco_tac_admin» desde una dirección IP sospechosa (5.149.249[.]74). Las instancias de esta actividad terminaron el 1 de octubre, y no se observa ningún otro comportamiento asociado en ese momento aparte de la creación de la cuenta sospechosa.
El 12 de octubre, Cisco Talos Incident Response (Talos IR) y TAC detectaron lo que más tarde determina que era un grupo adicional de actividad relacionada que comenzó ese mismo día. En este grupo, se observó a un usuario no autorizado creando una cuenta de usuario local con el nombre «cisco_support» desde una segunda dirección IP sospechosa (154.53.56[.]231). A diferencia del caso de septiembre, esta actividad de octubre incluyó varias acciones posteriores, entre ellas el despliegue de un implante consistente en un archivo de configuración («cisco_service.conf»). El archivo de configuración define el nuevo punto final del servidor web (ruta URI) utilizado para interactuar con el implante.
El implante se guarda en la ruta de archivo «/usr/binos/conf/nginx-conf/cisco_service.conf», que contiene dos cadenas variables formadas por caracteres hexadecimales. El implante no es persistente, es decir, un reinicio del dispositivo lo eliminará, pero las cuentas de usuario locales recién creadas permanecen activas incluso después de reiniciar el sistema.
- La primera función viene dictada por el parámetro «menu», que debe existir y no estar vacío. Devuelve una cadena de números rodeados de barras inclinadas hacia delante, que sospechamos que pueden representar la versión del implante o su fecha de instalación.
- La segunda función viene dictada por el parámetro «logon_hash», que debe tener el valor «1». Esto devuelve una cadena hexadecimal de 18 caracteres que está codificada en el implante.
- La tercera función también está dictada por el parámetro «logon_hash», que comprueba si el parámetro coincide con una cadena hexadecimal de 40 caracteres que está codificada en el implante. Un segundo parámetro utilizado aquí es «common_type», que no debe estar vacío, y cuyo valor determina si el código se ejecuta a nivel de sistema o a nivel de IOS. Si el código se ejecuta a nivel de sistema, este parámetro debe ser «subsystem», y si se ejecuta a nivel de IOS, el parámetro debe ser «iox». Los comandos IOX se ejecutan en el nivel de privilegio 15.
Orientación y mitigación
Cisco recomienda a las organizaciones que puedan verse afectadas por esta actividad que apliquen inmediatamente las directrices descritas en el aviso del Equipo de respuesta a incidentes de seguridad de productos (PSIRT) de Cisco.
Las organizaciones deben buscar usuarios inexplicables o recién creados en los dispositivos como evidencia de actividad potencialmente maliciosa relacionada con esta amenaza. Un método para identificar si el implante está presente es ejecutar el siguiente comando contra el dispositivo, donde la parte «DEVICEIP» es un marcador de posición para la dirección IP del dispositivo a comprobar:
curl -k -X POST «https[:]//DEVICEIP/webui/logoutconfirm.html?logon_hash=1»
Esto ejecutará una petición a la interfaz web del dispositivo para ver si el implante está presente. Si la solicitud devuelve una cadena hexadecimal, similar a la descrita en la tercera función anterior, el implante está presente. Observamos que esto sólo funcionará como una indicación de compromiso si el actor reinició el servidor web después de que se instalara el implante.
Finalmente, la recomendación que Cisco ha proporcionado en su aviso de seguridad para desactivar la función de servidor HTTP/S en los sistemas orientados a Internet es coherente con las mejores prácticas que se ha proporcionado en el pasado para mitigar el riesgo de las interfaces de gestión expuestas a Internet. Esto también está en consonancia con el trabajo en curso de Cisco con socios de la industria como parte de la Coalición de Resiliencia de la Red.
Los centros de asistencia de Cisco colaboraron con el equipo de seguridad después de utilizar métodos y procedimientos para correlacionar indicadores similares en un número muy reducido de casos de entre nuestro importante volumen diario normal de casos.
Indicadores de Compromiso (IoC)
Direcciones IP:
5.149.249[.]74
154.53.56[.]231
154.53.63[.]93
Nombres de usuario:
cisco_tac_admin
cisco_support
cisco_sys_manage
Referencia:
https://cybersecuritynews.com/cisco-ios-xe-zero-day-vulnerability/