
The Outlook HTML Leak Test Project
Elenco di schemi URI che potrebbero funzionare in Windows. Questi schemi/protocolli possono essere utili in ricerche simili per trovare nuove vulnerabilità o per bypassare le protezioni attuali. Altri prodotti potrebbero essere colpiti in modo simile, ma non è stato oggetto di ricerca qui.
È interessante notare che l'apertura di questo file con MS Office richiede più tempo del solito, il che potrebbe suggerire che Excel stia facendo qualcosa su alcuni di essi. Questo è un ottimo segno per trovare bug/funzionalità!
Elenco di tag HTML che potrebbero inviare richieste ad altre risorse automaticamente o tramite interazione dell'utente. Questo file è stato generato sulla base delle seguenti fonti:
Mentre lavoravo a una valutazione, ho ricevuto un'email HTML in Outlook 2010 che conteneva un tag immagine simile a:
<img src="https://raw.githubusercontent.com/nccgroup/outlookleaktest/HEAD/example.com/test/image.jpg" >
Ho notato che Outlook stava cercando qualcosa dopo l'apertura di quella email e impiegava più tempo del solito per aprirla completamente. Ho capito subito che Outlook in realtà utilizzava l'URL come \\example.com\test\image.jpg e inviava a example.com una richiesta SMB.
Anche se non caricava l'immagine nemmeno quando il percorso SMB fornito era valido, poteva inviare il mio hash SMB a una posizione arbitraria. Questo attacco non funzionava su Outlook 2016, tuttavia mi ha spinto a iniziare un piccolo progetto di ricerca provando diversi tag HTML che accettano URI con diversi schemi URI e payload speciali.
Sono riuscito a testare un elenco di schemi URI noti con diversi target progettando una applicazione ASP.NET rapida (e sporca) che utilizzava ASPOSE.Email (https://downloads.aspose.com/email/net) e le librerie Microsoft Office Interop. Questa applicazione genera file MSG di sola lettura simili alle email ricevute o inviate in Outlook. Il progetto cure53 HTTPLeaks (https://github.com/cure53/HTTPLeaks) con modifiche minori è stato usato come modello HTML per generare le email. Il codice C# sporco, gli schemi URI, le formule e il modello HTML usati in questa ricerca si trovano in questo repository.
Per ridurre le complicazioni, sono stati usati Wireshark e Process Monitor di Sysinternals Suite per rilevare chiamate remote e al filesystem locale.
Outlook inviava richieste SMB/WebDAV esterne all'apertura di un'email HTML creata ad hoc. Questo poteva essere sfruttato per dirottare l'hash SMB di una vittima o per determinare se il destinatario avesse visualizzato un messaggio. Questo problema è stato sfruttato usando le impostazioni predefinite di Outlook che bloccavano il caricamento di risorse esterne come i file immagine. Queste richieste venivano inviate immediatamente dopo l'apertura di un'email. Quando la porta SMB era bloccata, veniva inviata una richiesta WebDAV sulla porta 80. Per maggiori dettagli e la correzione, fare riferimento a https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2018/may/smb-hash-hijacking-and-user-tracking-in-ms-outlook/
Sebbene il pattern \\ fosse bloccato da Outlook, sono stati trovati numerosi altri pattern e schemi URI che costringevano Outlook a inviare richieste a server remoti.
La tabella seguente mostra i vettori identificati:

Anche i seguenti schemi URI potevano essere usati per colpire il filesystem locale, il che potrebbe essere utile:

Il progetto OutlookLeakTest è protetto da copyright 2018, NCC Group, e rilasciato sotto licenza Apache (vedi LICENSE).