
The Outlook HTML Leak Test Project
Список URI-схем, которые могут работать в Windows. Эти схемы/протоколы могут быть полезны в аналогичных исследованиях для поиска новых уязвимостей или обхода текущих защит. Другие продукты могут быть подвержены аналогичным проблемам, но здесь это не исследовалось.
Любопытно, что открытие этого файла в MS Office занимает больше времени, чем обычно, что может указывать на то, что Excel выполняет какие-то действия с некоторыми из них. Это отличный признак для поиска ошибок/функций!
Список HTML-тегов, которые могут отправлять запросы к другим ресурсам автоматически или по действию пользователя. Этот файл был создан на основе следующих источников:
Работая над одним заданием, я получил HTML-письмо в Outlook 2010, содержащее тег изображения, похожий на:
<img src="https://raw.githubusercontent.com/nccgroup/outlookleaktest/HEAD/example.com/test/image.jpg" >
Я видел, что Outlook что-то искал после открытия этого письма, и для полного открытия потребовалось больше времени, чем обычно. Я быстро понял, что Outlook фактически использовал URL как \\example.com\test\image.jpg и отправил example.com SMB-запрос.
Хотя изображение не загружалось, даже когда указанный SMB-путь был валидным, это позволяло отправить мой SMB-хэш в произвольное место. Эта атака не сработала в Outlook 2016, однако подтолкнула меня к небольшому исследовательскому проекту по проверке различных HTML-тегов, которые принимают URI с разными URI-схемами и специальными полезными нагрузками.
Мне удалось проверить список известных URI-схем с разными целями, разработав быстрое (и грязное) ASP.NET-приложение, использующее ASPOSE.Email (https://downloads.aspose.com/email/net) и библиотеки Microsoft Office Interop. Это приложение генерирует файлы MSG только для чтения, похожие на полученные или отправленные письма в Outlook. Проект cure53 HTTPLeaks (https://github.com/cure53/HTTPLeaks) с небольшими изменениями использовался как HTML-шаблон для генерации писем. Грязный код на C#, URI-схемы, формулы и HTML-шаблон, использованные в этом исследовании, можно найти в этом репозитории.
Чтобы снизить сложность, для обнаружения удалённых и локальных вызовов файловой системы использовались Wireshark и Process Monitor из набора Sysinternals Suite.
Outlook отправлял внешние SMB/WebDAV-запросы при открытии специально сформированного HTML-письма. Это можно было использовать для перехвата SMB-хэша жертвы или для определения того, просмотрел ли получатель сообщение. Эта проблема эксплуатировалась с использованием настроек Outlook по умолчанию, которые блокировали загрузку внешних ресурсов, таких как файлы изображений. Эти запросы отправлялись сразу после открытия письма. Когда SMB-порт был заблокирован, отправлялся WebDAV-запрос на порт 80. Для получения более подробной информации и исправления, пожалуйста, обратитесь к https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2018/may/smb-hash-hijacking-and-user-tracking-in-ms-outlook/
Хотя шаблон \\ был заблокирован Outlook, был найден ряд других шаблонов и URI-схем, которые заставляли Outlook отправлять запросы на удалённые серверы.
В следующей таблице показаны выявленные векторы:

Следующие URI-схемы также можно было использовать для обращения к локальной файловой системе, что может быть полезно:

Проект OutlookLeakTest защищён авторскими правами © 2018, NCC Group, и распространяется под лицензией Apache (см. LICENSE).