
Il Console Monitor Driver è un driver di filtro in modalità kernel KMDF che intercetta determinate operazioni Fast I/O (input e output) inviate da o verso ConDrv. ConDrv è un dispositivo creato da condrv.sys, che gestisce il traffico tra l'applicazione console (cmd/powershell/ecc.) e la console effettiva (conhost.exe).
Questo progetto si basa sulla ricerca effettuata per la tecnica di rilevamento di mimikatz fase 2. La soluzione contiene più progetti:
Il driver Console Monitor è un driver filtro in modalità kernel KMDF che cattura determinate operazioni Fast I/O (input e output) inviate a o da ConDrv. ConDrv è un dispositivo creato da condrv.sys, che gestisce il traffico tra l'applicazione console (cmd/powershell/ecc.) e la console vera e propria (conhost.exe). Console Monitor è un'applicazione GUI in C# che mostra all'utente finale ogni tasto premuto o riga inviata a o dalla console. L'uso di questa applicazione è trascurabile, ma è ottimo per presentazioni e debug.
L'applicazione GUI Console Monitor crea una named pipe e resta in ascolto di connessioni in entrata. Tutti i dati inviati alla named pipe vengono mostrati nella GUI. Il driver verifica che la named pipe sia presente; in caso contrario, restituirà un errore e non si installerà. Se la named pipe è presente (la GUI è in esecuzione), il driver si installa e invia tutto ciò che intercetta alla pipe.
Per farlo funzionare, seguire i seguenti passaggi:
La tecnica sottostante è la stessa di prima con ConsoleMonitorDriver, ma qui, invece di intercettare tutti i dati, il driver filtro KMDF tenta di confrontare diverse stringhe con i dati che passano attraverso il driver. In questo caso particolare, il titolo dell'applicazione console viene confrontato con una stringa statica; anche il contenuto dell'output della console viene confrontato con più stringhe statiche. Se si verifica una qualsiasi corrispondenza, un evento viene inviato al registro eventi tramite Event Tracing for Windows (ETW). Al momento, nel driver sono definiti 4 eventi diversi:
Per preparare il sistema a leggere correttamente questi messaggi, il file event.xml deve essere installato con (wevtutil.exe), ma questo è coperto dallo script install.ps1.
Passaggi per far funzionare il driver:
Ovviamente, le stringhe confrontate con il titolo e con l'output possono essere modificate, così altri malware/strumenti possono essere rilevati con lo strumento se le stringhe vengono cambiate.
È sufficiente usare la funzione Uninstall-Driver di install.ps1.
I reindirizzamenti verso file non verranno rilevati, poiché l'output non verrà inviato al dispositivo ConDrv.