## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-POLARISXSEC-CVE-2024-21413
# Эксплуатация CVE-2024-21413 (Outlook)
Статус проекта: Приостановлен (незавершенная практика; не удалось захватить NTLM-хеши)
## Цели
Попытка эксплуатации уязвимости CVE-2024-21413, которая позволяет утечку NTLM-хешей в Outlook при взаимодействии с вредоносными ссылками.
Целью практики было не создание с нуля всех инструментов, используемых в атаке, а глубокое понимание их центрального механизма и экспериментирование с реальными ошибками при создании собственной инфраструктуры.
Я использовал коды эксплойтов и SMTP/POP3-серверов, разработанные сторонними лицами и опубликованные сообществом, за что я глубоко благодарен.
## Содержание
* Требования
* Виртуальные машины
* Установка
* Поток эксплуатации
* Тесты и результаты
* Извлеченные уроки
## Требования
* Python 3.10+
* Outlook 2016
* Kali Linux
* Собственные SMTP/POP3-серверы
* Эксплойт
* Виртуальные машины
## Виртуальные машины
### Машина-жертва (Windows)
* **ОС** : Windows 10 Home (x32)
* **Outlook** : Microsoft Outlook 2016 (версия 16.0.4266.1001)
* **Сеть** : Адаптер 1: NAT, Адаптер 2: Внутренняя сеть
### Машина-атакующий (Kali)
* **ОС** : Kali Linux 2025.1
* **Установленные инструменты и библиотеки** :
* Python 3.10+
* smtplib
* email
* socket
* threading
* os
* aiosmtpd
* servidor-smtp.py
* servidor-pop3.py
* exploit.py
* **Сеть** : Адаптер 1: NAT, Адаптер 2: Внутренняя сеть
### Инфраструктура
* SMTP- и POP3-серверы были развернуты на машине-атакующем (Kali) вручную с помощью скриптов на Python.
Машины запускались в VirtualBox.
## Установка
### Установка (Kali)
#### Установка SMTP-сервера
* **Venv** : Виртуальное окружение с Python 3
* **Шаг 1** : Создать каталог для сервера и виртуального окружения (mkdir smtp-lab) и перейти в него (cd smtp-lab)
* **Шаг 2** : Создать виртуальное окружение внутри каталога (python3 -m venv venv)
* **Шаг 3** : Активировать виртуальное окружение (source venv/bin/activate)
* **Шаг 4** : Установить aiosmtpd внутри виртуального окружения (pip install aiosmtpd)
* **Шаг 5** : Создать код сервера (nano servidor-smtp.py)
* **Шаг 6** : Запустить сервер (python3 servidor-smtp.py)
##### Код SMTP-сервера
Код SMTP-сервера находится в файле `src/servidor-smtp.py`.
#### Установка POP3-сервера:
* **Шаг 1** : Создать каталог для сервера (mkdir pop3-server) и перейти в него (cd pop3-server)
* **Шаг 2** : Создать код сервера (nano server-pop3.py)
* **Шаг 3** : Запустить сервер (python3 server-pop3.py)
##### Код POP3-сервера
Код POP3-сервера находится в файле `src/servidor-pop3.py`.
#### Установка эксплойта
* **Шаг 1** : Создать код; этот код я взял у CMNatic, но адаптировал под свою инфраструктуру (nano exploit.py)
##### Код эксплойта
Код эксплойта находится в файле `src/exploit.py`.
### Установка (Windows 10)
* **Шаг 1** : Установить ISO Microsoft Office 2016; я использовал сайт archive.org и установил версию Microsoft Office 2016 Professional Plus x86
* **Шаг 2** : После установки ISO скачать Microsoft Office и войти в Outlook 2016
* **Шаг 3** : Правильно настроить Outlook
#### Настройка Outlook 2016
Здесь показано, как настроить Outlook для работы с тестовыми SMTP и POP3-серверами.
* Как в поле "Incoming mail server", так и в "Outgoing mail server(SMTP)" необходимо указать IP-адрес внутреннего сетевого интерфейса атакующей машины (Kali).
* Пароль не имеет значения для атаки, можно выбрать любой.

## Поток эксплуатации
Цель эксплойта для CVE-2024-21413 — заставить Outlook выполнить автоматический SMB-запрос к ресурсу, контролируемому атакующим, что приводит к отправке NTLM-хеша жертвы, который можно перехватить офлайн для взлома.
### Подготовка окружения
1. Атакующая машина (Kali) запускает собственный SMTP и POP3-сервер.
2. Outlook на машине-жертве (Windows 10) настроен на получение писем с этого сервера.
3. Атакующая машина (Kali) поднимает поддельный SMB-сервер (в моем случае я использовал Responder).
### Отправка вредоносного письма
* Письмо отправляется жертве с SMTP атакующего.
* Тело сообщения содержит вредоносную UNC-ссылку.
* Путь спроектирован так, чтобы активировать автоматическое SMB-подключение, если пользователь взаимодействует со ссылкой.
### Взаимодействие пользователя
* Жертва открывает Outlook и видит сообщение.
* Ожидается, что она нажмет на ссылку.
* Если Outlook попытается разрешить UNC-путь, генерируется SMB-запрос к серверу атакующего.
* Ниже показано, как выглядит вредоносное письмо в Outlook с точки зрения жертвы:

### Перехват хеша
* SMB-сервер атакующего принимает соединение.
* Outlook при попытке аутентификации автоматически отправляет NTLM-хеш пользователя.
* Атакующий может сохранить этот хеш для атаки типа hashcat.
### Примечания
* В моем случае письмо успешно доставлялось в Outlook.
* Однако при нажатии на UNC-ссылку ожидаемое SMB-соединение не устанавливалось.
* Я до сих пор не знаю причину сбоя, хотя подозреваю, что это может быть связано с настройками сети, версией Outlook или проблемами доступности/ответа SMB-сервера.
## Тесты и результаты
### Функции, которые работали
* SMTP и POP3 настроены правильно, Outlook синхронизировался с ними без ошибок.
* Вредоносное письмо было получено Outlook.
* Сообщение отображало UNC-ссылку без блокировки.
* SMB-окружение атакующего было поднято и находилось в режиме прослушивания.
### Что не сработало
* При нажатии на UNC-ссылку в Outlook не было видимого SMB-трафика в Wireshark.
* Не было сгенерировано ни одной попытки NTLM-аутентификации с машины-жертвы.
* На SMB-сервере не было зарегистрировано подключений.
### Анализ с помощью Wireshark
* Снимки сделаны на интерфейсе Kali (eth1).
* Наблюдался SMTP и POP3 трафик, но ни одного пакета TCP 445 или UDP 137/138 при нажатии на ссылку.
* Также была попытка запустить Outlook от имени администратора: без изменений.
## Извлеченные уроки
### Полученные знания
* Как работают SMTP и POP3 на низком уровне.
* Что именно ожидает Outlook при синхронизации учетных записей.
* Как Outlook интерпретирует UNC-ссылки и какие условия должны быть выполнены для их автоматического открытия.
* Ценность Wireshark и логов как инструментов отладки в сложных лабораторных условиях.
### Почему я решил остановиться здесь
* После многочисленных попыток эксплойт не дошел до этапа захвата хеша, что было конечной целью.
* Я задокументировал всю инфраструктуру, тесты и результаты, что остается ценным как учебная лаборатория.
* Хотя конечная цель не была достигнута, процесс позволил мне глубоко изучить каждый задействованный технический компонент. Это можно будет возобновить в будущем.
## Благодарности
Код этого эксплойта основан на работе CMNatic из https://github.com/CMNatic/CVE-2024-21413. Я внес изменения для адаптации к своему окружению.