
PoC per CVE-2024-23997
Una prova di concetto per la vulnerabilità CVE-2024-23997.
cfr.) Un proxy, in particolare un proxy web, funge da intermediario nella comunicazione web, ricevendo e inoltrando richieste e risposte per conto di altri. Quindi, indipendentemente dalla porta utilizzata da YANA, un proxy può intercettare la comunicazione. Mentre i proxy vengono utilizzati per la sicurezza o per aumentare la velocità di ricerca attraverso la cache, molti programmi dannosi li sfruttano per intercettare le comunicazioni web inviate dagli utenti.
Vediamo un esempio utilizzando YANA. Ho installato Burp Suite, uno strumento proxy che agisce come malware, sul mio Windows 10 per predisporre un ambiente di prova. Burp Suite è uno strumento diagnostico per la sicurezza di rete di PortSwigger, e la sua versione community è disponibile gratuitamente. Se desideri seguire questo esempio, tieni presente che per la prova sono necessarie modifiche alle impostazioni di rete, pertanto è richiesto il ripristino.
Step 1) Il malware reale non modifica le impostazioni Internet, ma intercetta i pacchetti utilizzando API Windows, API Linux, ecc. Tuttavia, a causa della sua complessità, le opzioni vengono attivate manualmente. Premi il tasto Windows e cerca “Opzioni Internet”.
Step 2) Vai alla scheda Connessioni e fai clic sul pulsante Impostazioni LAN.
Step 3) Seleziona “Usa un server proxy per la LAN” e fai clic sul pulsante Avanzate. Per ripristinare le impostazioni, è sufficiente deselezionare.
Step 4) Modifica il contenuto di HTTP in Server con “127.0.0.1”, “8080”, e le Eccezioni con “<-loopback>” e fai clic sui pulsanti OK per salvare le opzioni.
Step 5) Apri Burp Suite.
Step 6) Poiché faremo solo una verifica, seleziona “Progetto temporaneo in memoria” e fai clic sul pulsante Avanti.
Step 7) Seleziona “Usa le impostazioni predefinite di Burp” e fai clic sul pulsante Start Burp.
Step 8) Vai alla scheda Proxy, quindi fai clic su Proxy settings per verificare che il proxy sia impostato su 127.0.0.1:8080 in Proxy listeners e che sia spuntata l'opzione Running. Inoltre, vai su Response interception rules sotto Proxy listeners e spunta Intercept response based on the following rules. Quando chiudi la finestra delle impostazioni, le opzioni vengono applicate automaticamente.
Step 9) Vai alla scheda Intercept nel Proxy e verifica che “Intercept is on”, quindi apri Yana. Quando Intercept è abilitato, tutte le comunicazioni HTTP/HTTPS vengono trattenute e non vengono inviate all'altra parte finché Intercept non viene disabilitato o non viene premuto Forward.
Step 10) Mentre premi il pulsante Forward, cerca risposte HTML tra le risposte ricevute dal server in background di Yana. È facile distinguerle perché il tag title del documento HTML è scritto come Yana.
Step 11) Inserisci il codice JS(“<script>require('child_process').exec('C:/Windows/System32/calc.exe')</script>”) usando un tag script sotto il tag body dell'HTML.
Step 12) Quindi, disabilita “Intercept is on” e il programma Yana Electron riceverà i pacchetti ed eseguirà lo script, avviando il programma calcolatrice.
Step 13) Una volta completata la prova, vai alle opzioni Internet e disabilita l'uso del server proxy.
Ciò accade perché l'opzione nodeIntegration è abilitata in Yana. Anche se questa opzione viene disabilitata, l'esecuzione di codice Node.js dall'HTML diventa possibile utilizzando vari altri metodi. Se viene eseguito con i permessi di Yana, e se Yana è in esecuzione con permessi di amministratore o root, il codice dannoso iniettato può essere eseguito con tali permessi. Pertanto, come menzionato in precedenza, è più sicuro recuperare e visualizzare pagine HTML utilizzando protocolli come il protocollo File, che sono più difficili da intercettare nella comunicazione tra programmi, piuttosto che utilizzare il protocollo HTTP.