Rimuovi la capacità di CVE-2017-0199 di eseguire codice modificando il gestore predefinito per i file .hta. Il gestore predefinito per i file richiamati tramite OLE2 (oggetti COM) è archiviato separatamente dall'applicazione predefinita del sistema locale e può essere modificato solo tramite il registro di sistema.
Logica di base dell'exploit
Questo è un esempio pratico di questo exploit ed è spiegato come lo intendo io. Non tutti i casi potrebbero seguire questo schema e la mia valutazione potrebbe essere errata. Tuttavia, la correzione presentata nella sezione successiva funziona nelle situazioni in cui l'ho testata.
Un documento RTF ospitato su un server web ha un payload di applicazione ipertestuale (HTA) dannoso aggiunto in coda con 'cat'.
Il server che ospita il file risponde alle richieste GET per il file con un header che dichiara che il contenuto è un file HTA.
Microsoft Word esegue un oggetto OLE2 per recuperare il documento RTF dal server web.
Microsoft Word è costretto a validare il tipo di file poiché l'estensione .rtf non corrisponde al tipo di contenuto HTA.
Microsoft Word controlla dalla fine del file la presenza di strutture dati riconoscibili e abbina le strutture dati HTA al tipo di contenuto HTA.
Microsoft Word corregge automaticamente il tipo di file e lo passa al gestore COM per i file HTA (mshta.exe).
Mshta.exe esegue il codice dell'applicazione ipertestuale dannosa dalla fine del file.
I gestori COM sono archiviati separatamente dai gestori di sistema nel registro per prevenire errori nel processo di validazione del tipo di file.
Correzione di base
In RegEdit.exe passa a HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon
Apri le autorizzazioni avanzate per DefaultIcon
Cambia il proprietario in Administrators (gruppo)
Aggiungi il tuo account utente corrente all'elenco delle entità di sicurezza e assegnagli "Controllo completo"
Modifica la chiave (Default) in C:\Windows\System32\notepad.exe,1
Nelle autorizzazioni avanzate per DefaultIcon rimuovi il tuo utente e riassegna SYSTEM come proprietario
Ripeti i passaggi da 1 a 6 per HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32, modificando il valore della chiave (Default) in C:\Windows\System32\notepad.exe
Questo rimuove la capacità di CVE-2017-0199 di eseguire codice modificando il gestore predefinito per gli oggetti .hta richiamati tramite OLE2 in notepad. Questo si applica a tutte le istanze di OLE2 che richiamano file .hta. Farà aprire notepad e genererà errori, ma il codice non verrà eseguito.
Non modificare HKCR direttamente. Modifica le chiavi associate in HKCU o HKLM.
Puoi restituire la proprietà di una chiave di registro a SYSTEM o ad altri dopo averla presa.
Non armeggiare con il registro. Lascialo come lo hai trovato dopo aver apportato le modifiche.
Process Monitor ha un potente filtro con il tasto destro per ridurre il rumore di fondo.
La funzione di ricerca di Process Monitor cerca una stringa in tutti i campi.
pscp.exe (Putty) è uno strumento di trasferimento file SSH da riga di comando.
Linux è ancora una gran rottura.
Osservazione conclusiva
Non mi assumo alcuna responsabilità per danni o problemi causati da questa mitigazione o dalla confusione dell'utente derivante da notepad e da una serie di errori. Questa è una correzione sporca e non so se possa causare problemi più ampi in un ambiente di produzione. Come sempre, valuta le mitigazioni tenendo conto del tuo ambiente e delle tue esigenze specifiche.
Aggiungerò screenshot più avanti per mostrare gli effetti prima e dopo di questa mitigazione. Inoltre, questo può essere fatto tramite script, ma ho difficoltà a modificare le autorizzazioni della chiave di registro, quindi lo gestirò più avanti.