
The Outlook HTML Leak Test Project
Liste der URI-Schemata, die unter Windows funktionieren könnten. Diese Schemata/Protokolle können bei ähnlicher Forschung nützlich sein, um neue Schwachstellen zu finden oder aktuelle Schutzmaßnahmen zu umgehen. Andere Produkte könnten ähnlich betroffen sein, wurden hier jedoch nicht untersucht.
Interessant ist, dass das Öffnen dieser Datei mit MS Office länger dauert als gewöhnlich, was darauf hindeuten könnte, dass Excel bei einigen davon etwas tut. Das ist ein großartiges Zeichen, um Bugs/Features zu finden!
Liste von HTML-Tags, die möglicherweise automatisch oder durch Benutzerinteraktion Anfragen an andere Ressourcen senden. Diese Datei wurde auf der Grundlage der folgenden Quellen erstellt:
Während ich an einer Bewertung arbeitete, erhielt ich in Outlook 2010 eine HTML-E-Mail, die ein Bild-Tag ähnlich wie dieses enthielt:
<img src="https://raw.githubusercontent.com/nccgroup/outlookleaktest/HEAD/example.com/test/image.jpg" >
Ich konnte sehen, dass Outlook nach dem Öffnen dieser E-Mail nach etwas suchte und es länger als gewöhnlich dauerte, sie vollständig zu öffnen. Mir wurde schnell klar, dass Outlook die URL tatsächlich als \\example.com\test\image.jpg verwendete und eine SMB-Anfrage an example.com sendete.
Obwohl es das Bild nicht lud, selbst wenn der angegebene SMB-Pfad gültig war, konnte es meinen SMB-Hash an einen beliebigen Ort senden. Dieser Angriff funktionierte nicht mit Outlook 2016, veranlasste mich jedoch dazu, ein kleines Forschungsprojekt zu starten, in dem ich verschiedene HTML-Tags testete, die URIs mit unterschiedlichen URI-Schemata und speziellen Payloads akzeptieren.
Ich konnte eine Liste bekannter URI-Schemata mit verschiedenen Zielen testen, indem ich eine schnelle (und unsaubere) ASP.NET-Anwendung entwarf, die ASPOSE.Email (https://downloads.aspose.com/email/net) und Microsoft Office Interop-Bibliotheken verwendete. Diese Anwendung erzeugt schreibgeschützte MSG-Dateien, die den in Outlook empfangenen oder gesendeten E-Mails ähneln. Das cure53 HTTPLeaks-Projekt (https://github.com/cure53/HTTPLeaks) wurde mit geringfügigen Änderungen als HTML-Vorlage zur Erzeugung der E-Mails verwendet. Der unsaubere C#-Code, die URI-Schemata, Formeln und die HTML-Vorlage, die in dieser Forschung verwendet wurden, sind in diesem Repository zu finden.
Um Komplikationen zu reduzieren, wurden Wireshark und Process Monitor der Sysinternals Suite verwendet, um entfernte und lokale Dateisystemaufrufe zu erkennen.
Outlook sendete beim Öffnen einer präparierten HTML-E-Mail externe SMB/WebDAV-Anfragen. Dies könnte missbraucht werden, um den SMB-Hash eines Opfers zu stehlen oder festzustellen, ob der Empfänger eine Nachricht gesehen hatte. Dieses Problem wurde unter Verwendung der Outlook-Standardeinstellungen ausgenutzt, die das Laden externer Ressourcen wie Bilddateien blockierten. Diese Anfragen wurden unmittelbar nach dem Öffnen einer E-Mail gesendet. Wenn der SMB-Port blockiert war, wurde eine WebDAV-Anfrage auf Port 80 gesendet. Weitere Details und den Fix finden Sie unter https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2018/may/smb-hash-hijacking-and-user-tracking-in-ms-outlook/
Obwohl das \\-Muster von Outlook blockiert wurde, wurden eine Reihe anderer Muster und URI-Schemata gefunden, die Outlook zwangen, Anfragen an entfernte Server zu senden.
Die folgende Tabelle zeigt die identifizierten Vektoren:

Die folgenden URI-Schemata könnten auch verwendet werden, um das lokale Dateisystem anzusteuern, was nützlich sein könnte:

Das OutlookLeakTest-Projekt ist Copyright 2018, NCC Group, und unter der Apache-Lizenz lizenziert (siehe LICENSE).