Zyxel ha lanzado parches para una vulnerabilidad de inyección de comandos del sistema operativo encontrada por Rapid 7 e insta a los usuarios a instalarlos para una protección óptima. Esto podría haber permitido a los actores de amenazas obtener acceso total a los dispositivos y las redes corporativas internas que están diseñadas para proteger.
Impacto de la vulnerabilidad
Las consecuencias típicas de un ataque de este tipo serían la modificación de archivos y la ejecución de comandos del sistema operativo, lo que permitiría a los actores de amenazas obtener acceso inicial a una red y propagarse lateralmente a través de la misma. Los investigadores de seguridad de Rapid7 encontraron la falla, a la cual se le asigna el identificador CVE-2022-30525 (puntaje CVSS v3: 9.8 – crítico), y se la revelaron a Zyxel el 13 de abril de 2022. Los investigadores informan que, en el momento del descubrimiento, había al menos 16.213 sistemas vulnerables expuestos a Internet, lo que hace que esta vulnerabilidad sea un objetivo atractivo para los actores de amenazas.
Versiones vulnerables y parches
CVE-2022-30525 afecta a los siguientes modelos que a su vez ya se han lanzado parches para abordar la vulnerabilidad, como se muestra en la tabla a continuación.
Affected model | Affected firmware version | Patch availability |
USG FLEX 100(W), 200, 500, 700 | ZLD V5.00 through ZLD V5.21 Patch 1 | ZLD V5.30 |
USG FLEX 50(W) / USG20(W)-VPN | ZLD V5.10 through ZLD V5.21 Patch 1 | ZLD V5.30 |
ATP series | ZLD V5.10 through ZLD V5.21 Patch 1 | ZLD V5.30 |
VPN series | ZLD V4.60 through ZLD V5.21 Patch 1 | ZLD V5.30 |
Indicadores de compromiso (IOCs)
Los modelos afectados son vulnerables a la inyección de comandos remotos (RCE) y no autenticados a través de la interfaz HTTP administrativa. Los comandos se ejecutan como el usuario none, esta vulnerabilidad se explota a través del URI /ztp/cgi-bin/handler y es el resultado de pasar la entrada del atacante no desinfectada al método os.system en lib_wan_settings.py. La funcionalidad vulnerable es llamada en asociación con el comando setWanPortSt. Un atacante puede inyectar comandos arbitrarios en el mtu o el parámetro de datos.
A continuación se muestra un curl de ejemplo que hará que el firewall ejecute ping 192.168.1.220:
En el firewall, la salida de ps tiene el siguiente aspecto:
Se puede establecer un reverse shell usando el bash GTFOBin normal. Por ejemplo:
El reverse shell resultante se puede usar así:
Recomendaciones:
Como se han publicado los detalles técnicos de la vulnerabilidad y ahora es compatible con Metasploit, todos los administradores deben actualizar sus dispositivos inmediatamente antes de que los actores de amenazas comiencen a explotar activamente la falla. Si no es posible actualizar a la última versión disponible, se recomienda al menos deshabilitar el acceso WAN a la interfaz web administrativa de los productos afectados.
Links de interés
- https://www.bleepingcomputer.com/news/security/zyxel-fixes-firewall-flaws-that-could-lead-to-hacked-networks/
- https://www.rapid7.com/blog/post/2022/05/12/cve-2022-30525-fixed-zyxel-firewall-unauthenticated-remote-command-injection/
- https://www.zyxel.com/support/Zyxel-security-advisory-for-OS-command-injection-vulnerability-of-firewalls.shtml
- https://www.helpnetsecurity.com/2022/05/13/cve-2022-30525/