image

Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox.

В данной статье собираем информацию о машине, выполняем password spraying для получения пользователя, а также повышаем свои права от DnsAdmin до SYSTEM с помощью вредоносной DLL библиотеки.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

Организационная информация
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.

Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.

Recon


Данная машина имеет IP адрес 10.10.10.169, который я добавляю в /etc/hosts.

10.10.10.169    resolute.htb

Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.169  --rate=500

image

На хосте открыто много портов. Теперь просканируем их с помощью nmap, чтобы отфильтровать и выбрать нужные.

nmap resolute.htb -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49676,49677,49688,49915

image

Теперь для получения более подробной информации о сервисах, которые работают на портах, запустим сканирование с опцией -А.

nmap -A resolute.htb -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49676,49677,49688,49915

image

image

Из вывода nmap находим доменное имя megabank.local, которое добавляем в /etc/hosts. Первое делом в разведке для Windows — базовое перечисление. Лично я, тестируя с linux машины, использую enum4linux.

enum4linux -a megabank.local

image

image

image

image

image

И среди информации о домене, пользователях, группа, и парольной политике находим интересный комментарий к учетной записи пользователя mark. В комментарии содержится его пароль. Но после попытки авторизации с этими учетными данными, мы на всех сервисах терпим неудачу.

USER


Так как мы имеем уже засвеченный в системе пароль и список пользователей, мы можем использовать одну из техник Lateral Movement — это Password Spraying. Обо всем этом я подробно писал здесь. Суть в том, что мы пробуем известные пароли для всех известных пользователей.

Перебирать первым делом пробуем конечно же по SMB. Для этого можно использовать модуль smb_login для Metasploit Framework.

image

Указываем нужные параметры.

image

И успешно находим пользователя, к которому подходит данный пароль.

image

И проверяем учетные данные. Я предпочитаю smbmap, которому указываем пользователя, пароль, домен и хост.

image

И получаем список доступных ресурсов. Если вернуться к списку портов, то там есть работающая служба WinRM на 5985. Для удобной работы с данной службой из-под linux можно использовать Evil-WinRM.

image

USER2


Evil-WinRM работает отлично, но метерпретер все же удобнее. Благо данная программа позволяет при подключении указывать директорию с PowerShell или C# файлами, которые будут автоматически загружены в сессию. Сгенерируем PowerShell файл, который будет содержать Meterpreter нагрузку.

image

И создадим листенер для прослушивания соединения.

image

Теперь подключаемся c Evil-WinRM и указываем директорию со скриптом.

image

Но после запуска файла с нагрузкой, видим, что скрипт отработал без ошибок, но подключения нет.

image

Скорее всего скрипт был заблокирован. Так как это PowerShell, то скорее всего с помощью AMSI. Но Evil-WinRM имеет собственные полезные модули.

image

Как можно догадаться, нам нужен первый. Применим данный модуль и снова запустим наш файл с нагрузкой.

image

И наблюдаем успешное соединение.

image

После запуска скриптов для Recon’a, обхода машины, натыкаемся на интересную директорию.

image

Это директория, которая хранит текстовый файл с записанной сессий PowerShell, после команды “Start-Transcript”. Ищем файл.

image

Давайте посмотрим содержимое.

image

Так, это сессия пользователя Ryan. И чуть дальше находим команду, с которой передавался пароль.

image

Пробуем учетные данные для службы WinRM.

image

И в итоге логинимся как Ryan.

ROOT


И первым делом, проверяя информацию о текущем пользователе, находим интересную особенность. Он является членом группы DnsAdmins.

image

Это дает нам возможность повысить свои привилегии до SYSTEM. Мы можем попросить загрузить DLL при следующем запуске службы. Давайте сгенерируем DLL, содержащую нагрузку meterpreter.

image

И запустим листенер.

image

Теперь активируем smb-сервер. Указываем директорию, название и поддержку SMB 2-й версии.

image

Теперь с помощью dnscmd укажем, какую DLL загрузить.

image

image

Команда успешно выполнена, теперь перезагрузим службу DNS.

image

И после перезагрузки видим подключение по SMB.

image

А также открытую сессию.

image

И мы получаем права System.

Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.