CVE-2024-7479 TeamViewer Verifica impropria della firma dell'installazione del driver
Autore: Marcos Accossatto
Solo a scopo dimostrativo. L'exploit completo funziona sulla versione vulnerabile di Team Viewer per Windows.
Introduzione
Questo exploit PoC è un'implementazione python del PoC di Pedro Gabaldon per CVE-2024-7479.
Questo script contiene tutte le classi per gestire il protocollo IPC per lo sfruttamento.
Per lo sfruttamento finale, il driver dbutil_2_3.sys e l'eseguibile compilato dal progetto BYOVDKit devono essere presenti nella stessa directory locale di questo script.
Questo script è stato testato con TeamViewer 15.57.5.
Passaggi di sfruttamento dello script
Questo script eseguirà i seguenti passaggi per sfruttare la vulnerabilità:
- Aprire un socket verso 127.0.0.1 e la porta 5939.
- Eseguire BYOVDKit.exe con la seguente riga di comando per verificare se il driver è già installato:
BYOVDKit.exe 1 token 4
- Assemblare la prima richiesta IPC tramite la funzione getClientAuth e inviarla al server.
- Prendere la response_challenge dalla risposta del server tramite la funzione getServerChallengeFromResponse
- Concatenare response_challenge e un valore "segreto", calcolarne l'hash MD5 e quindi usarlo per assemblare la seconda richiesta IPC tramite la funzione getClientAuth.
- Inviare la seconda richiesta per completare l'autenticazione.
- Ottenere il PID del processo python, individuare ed estrarre la versione del file eseguibile TeamViewer.exe, assemblare la terza richiesta IPC tramite la funzione getControlRequest e inviarla al server.
- Leggere i pacchetti IPC dal server fino a quando la configurazione di sincronizzazione non è completa (21 pacchetti è normale)
- Copiare il file TeamViewerVPN.cat dalla directory x64 di TeamViewer nella directory dello script.
- Copiare il file TeamViewerVPN.inf dalla directory x64 di TeamViewer nella directory dello script e rinominarlo come un file .inf casuale.
- Rinominare il file dbutil_2_3.sys presente nella directory dello script come TeamViewerVPN.sys.
- Assemblare la terza richiesta IPC tramite la funzione getInstallDriverRequest e inviarla al server.
- Attendere che l'utente faccia clic sul pulsante Installa comunque il software del driver per completare l'installazione del driver e premere INVIO
- Eliminare tutti i file copiati/creati/rinominati (TeamViewerVPN.cat, TeamViewerVPN.sys e il file .inf casuale)
- Eseguire BYOVDKit.exe con la seguente riga di comando per avviare un cmd come sistema:
BYOVDKit.exe 1 token 4
Utilizzo
- Eseguire cmd.exe come utente normale.
- Usare whoami per verificare il nome utente.
- Eseguire lo script con python CVE-2024-7479_PoC.py.
- Quando appare l'avviso di installazione del driver, fare clic sul messaggio Installa comunque il software del driver per installare il driver.
- Tornare alla finestra di cmd e premere INVIO per continuare l'esecuzione dello script.
- Usare whoami per verificare che il nome utente sia nt authority\system.

Riferimenti
Speriamo che lo trovi utile. Per qualsiasi dubbio, puoi contattarci all'indirizzo [email protected]
Divertiti!