
Una demo POC su CVE-2023-38831
Una demo POC su CVE-2023-38831
Breve descrizione della vulnerabilità
Come funziona la vulnerabilità?

Prima parte dello sfruttamento
La prima parte si svolgerà sulla macchina dell'attaccante per dare inizio allo sfruttamento.

1) Per prima cosa, dobbiamo creare la cartella di sfruttamento contenente l'allegato malevolo, il “pdf”, il codice Python dell'exploit e lo script bat tramite il seguente comando: “git clone https://github.com/HDCE-inc/CVE-2023-38831”

2) Ecco cosa contiene la cartella prima che abbia luogo lo sfruttamento:

3) Individuare l'indirizzo IP della macchina Kali tramite ifconfig:

4) Modificheremo quindi lo script esistente in script.bat con la seguente riga di comando (immagine sopra)
“start” serve per avviare il processo della riga di comando, “/min” per ridurre a icona il prompt dei comandi in background, ncat per iniziare la connessione all'indirizzo IP dell'attaccante sulla porta 4444 e infine -e cmd.exe per eseguire la riga di comando nel prompt dei comandi.

5) Di seguito viene spiegato il codice di exploit.py:
1 si riferisce all'input dell'utente per il nome del file esca, che è document.pdf, il nome del file script, che è bat.script, e l'output di come la vittima vedrà il file RAR; in questo caso lo salveremo come getrich.rar.
2 si riferisce ai controlli eseguiti per verificare se i file esistenti nella cartella CVE-2023-38831 sulla macchina Kali Linux hanno la convenzione di denominazione corretta; se il nome è sbagliato o il file è duplicato, viene stampato un messaggio di errore e il programma si arresta ed esce.
3 si riferisce alla creazione di una destinazione temporanea tramite os.mkdir() per archiviare il file appena creato prima della compressione nell'archivio e per usarla come area di lavoro.
4 si riferisce a una riga di copia, shutil.copyfile, per copiare sia il file esca che il file script nelle rispettive directory all'interno di “tmp”, assicurando che tutti i file necessari siano corretti e al loro posto prima di procedere al passaggio successivo. Il passaggio successivo, shutil.make_archieve, crea un archivio da “tmp” chiamato “tmp.zip” che contiene tutto ciò che è nella cartella “tmp”.
5 si riferisce al successo dell'esecuzione del codice sopra descritto e alla corretta creazione di un file RAR come exploit tramite l'input dell'utente del file esca, del file script e del nome del file di output.

6) Dopo aver ottenuto il nostro indirizzo IP e modificato lo script bat, possiamo ora procedere a creare il “.rar” malevolo eseguendo il comando “python exploit.py”.
exploit.py richiederà all'utente l'input su 3 campi: il nome del file esca esistente, cioè document.pdf, il nome del file script che abbiamo modificato in precedenza, cioè script.bat, e un nome per il file RAR di output per indurre la vittima a scaricare e cliccare sul file, che richiede un nome adatto; in questo caso abbiamo usato “steps-to-generate-income.rar”. CVE-2023-38831 è quindi pronto a sfruttare la macchina vittima.
Seconda parte dello sfruttamento
La seconda parte si svolgerà sia sulla macchina Kali che sulla macchina vittima, che è una VM Windows 11.

1) Per prima cosa creeremo un sito web malevolo o invieremo l'allegato alla vittima.
Sul lato sinistro, eseguiremo “python -m http.server 8080”. Questo comando è un processo per catturare quale indirizzo IP accede a questo URL malevolo, così possiamo conoscere l'indirizzo IP della vittima, e ascolta diverse richieste HTTP come “200” da uno specifico indirizzo IP. Sul lato destro, la vittima viene attratta su questo indirizzo IP e indotta a scaricare il file “steps-to-generate-income.rar”.

2) Una volta che la vittima è stata indotta a scaricare il file malevolo “steps-to-generate-income.rar”, verrà mostrato quale indirizzo IP ha scaricato il file insieme all'intervallo di tempo. Da queste informazioni possiamo ottenere l'indirizzo IP della vittima.

3) Configureremo quindi un ncat sulla porta 4444 sulla macchina Kali, poiché la porta 4444 deve sincronizzarsi con la stessa porta scritta in script.bat da eseguire sulla macchina vittima.
Quando la vittima clicca su document.pdf, bat.script eseguirà la riga di comando e si ridurrà al minimo in background in un'istanza, consentendo una connessione backdoor per l'attaccante.

4) Potremo quindi eseguire diversi comandi sulla macchina vittima, come “C:\Windows” e poi “dir” per elencare tutti i diversi eseguibili memorizzati.
Ecco tre comandi che sono stati eseguiti sulla macchina vittima:
Il primo comando, evidenziato come “1”, è “net user” per vedere quanti account esistono; da questo possiamo concludere che c'è un solo account, W11.
Il secondo comando, evidenziato come “2”, è “systeminfo” per capire meglio la macchina vittima e quali privilegi ha l'utente; in questo caso si tratta di privilegi di amministratore.
Il terzo comando, evidenziato come “3”, consiste nel navigare tra cartelle casuali; in questo caso eseguiremo comandi come “C:\Users\W11” e poi “dir” per sapere che tipo di file e cartelle ci sono, quindi “C:\Users\W11\Documents” e poi “dir” per conoscere il contenuto della directory Documents; siamo stati fortunati perché questo utente ha salvato la propria password in un notepad.txt. Stampiamo quindi i dettagli di questo blocco note nella riga di comando per rivelarne il contenuto, “type secret.txt”. Il risultato mostra che da questa riga di comando siamo in grado di leggere, scrivere e modificare file sulla macchina vittima, dove possono essere eseguite ulteriori azioni come l'installazione di un keylogger per rendere la macchina vittima più vulnerabile ed esposta a informazioni più sensibili.

5) Infine, possiamo creare un file di blocco note sul desktop dell'utente eseguendo questo comando
“echo "You've been hacked, please go to testingwebsite" > C:\Users\W11\D\hacked.txt” e hacked.txt verrà creato sul desktop dell'utente per mostrare alla vittima che la sua macchina è stata sfruttata.
Deland-Han. (2014, February 19). Dynamic link library (DLL) - Windows Client. Microsoft Learn. https://learn.microsoft.com/en-us/troubleshoot/windows-client/setup-upgrade-and-drivers/dynamic-link-library
Gillis, A. S. (2023, September 26). principle of least privilege (POLP). Security. https://www.techtarget.com/searchsecurity/definition/principle-of-least-privilege-POLP
GmbH, W. (n.d.). WinRAR 7.00 Final released. WinRAR Latest News. https://www.win-rar.com/singlenewsview.html?&L=0&cHash=c5bf79590657e32554c6683296a8e8aa&tx_ttnews%5Btt_news%5D=232
Lab, S. (2023, September 26). Analysis of CVE-2023-38831 Zero-Day vulnerability in WinRAR. Penetration Testing and CyberSecurity Solution - SecureLayer7. https://blog.securelayer7.net/analysis-of-cve-2023-38831-zero-day-vulnerability-in-winrar/
Patch management: benefits and best practices | Balbix. (2022, October 22). Balbix. https://www.balbix.com/insights/patch-management-benefits-and-best-practices/
Research, U. T. (2023, November 17). WinRAR CVE-2023-38831 Vulnerability: Malware Exploits & APT Attacks. https://www.uptycs.com/blog/cve-2023-38831-winrar-zero-day
Slavin, B. (2024, March 18). Common DMARC problems faced by users | DMARC Report. DMARC Report. https://dmarcreport.com/blog/common-dmarc-problems-faced-by-users/
ThreatLocker. (2023, September 11). WinRAR Remote Code Execution. ThreatLocker. https://www.threatlocker.com/blog/winrar-remote-code-execution
Traders’ Dollars in Danger: CVE-2023-38831 zero-Day vulnerability in WinRAR exploited by cybercriminals to target traders. (2023, August 23). Group-IB. https://www.group-ib.com/blog/cve-2023-38831-winrar-zero-day/
Vulnera. (2023, November 16). DarkCasino: a new APT threat leveraging WinRAR vulnerability - VULNERA. VULNERA - Vulnerability Management. Simplified. https://vulnera.com/newswire/darkcasino-a-new-apt-threat-leveraging-winrar-vulnerability/