Приветствую!
Решил начать писать статьи с разборами CTF одной из самых известных площадок информационной безопасности - HackTheBox!Данные:
Задача: взять права Administrator'а на домене и получить два флага user.txt и root.txtОсновная машина: Kali Linux 2021.3
Первоначальная разведка:
Для начала нам нужно просканировать самые известные порты на удаленной машине, сделаем это с помощью команды:nmap -sC -sV 10.10.10.172
Вывод nmap'а очень полезен для нас, потому что в нём содержится название домена (который nmap нашёл с ldap) - MEGABANK.LOCAL
Теперь нам нужно добавить его в /etc/hosts:
echo "10.10.10.172 MEGABANK.LOCAL" >> /etc/hosts
Видим открытый порт SMB - 445, попробуем провести разведку с помощью утилиты enum4linux:
enum4linux -a 10.10.10.172
Enum4Linux - это отличный инструмент для сбора информации из систем Windows и Samba, который можно использовать практически всегда для пентестов windows!
Для нас открывается большое количество информации по данному хосту, но самой важной деталью здесь являются открытые smb диски (шары), а что ещё лучше список пользователей!
А вот и все наши пользователи, запишем их в файл и двигаемся дальше)
Для Linux был создан набор классов для работы с сетью под названием - Impacket
С ним мы можем перебрать наш список юзеров для входа без пароля, давайте сделаем это, будем использовать impacket-GetNPUsers:
impacket-GetNPUsers MEGABANK.LOCAL/ -usersfile users.txt
К сожалению модуль не справился и не нашёл пользователей без пароля
Ну ладно не унываем и идём дальше!
Теперь очередь одной из небезызвестных утилит для пентеста Windows это - CrackMapExec!
C её помощью мы попробуем подобрать пароль к одной из полученных нами учетных записей, приступим:
crackmapexec smb -u users.txt -p users.txt --shares 10.10.10.172
В качестве логина и пароля я подставляю файл с именами пользователей - users.txt!
Получаем отличный результат с найденными учетными данными пользователя SABatchJobs:
Так как мы нашли данные можем зайти в SMB с помощью той же утилиты Impacket, только уже с модулем impacket-smbclient, я предпочитаю использовать его вместо обычного smbclient:
impacket-smbclient SABatchJobs:SABatchJobs@10.10.10.172
Практически всегда для Impacket и его модулей используется один и тот же синтаксис, поэтому он очень хорошо подходит для быстрой разведки! (Никто же не хочет писать "колбасу")
Итак, первоначальные команды для этого модуля: shares - она покажет все доступные шары:
Перейдем теперь в папку users$ и посмотрим её содержимое, выберем её с помощью use:
Видим список из 4 пользователей, если мы полазим по их папкам командой cd и выводом их содержимого, мы можем наткуться на папку пользователя mhope, именно в ней мы сможем увидеть файлик azure.xml, загрузим его командой get:
Теперь посмотрим содержимое нашего файла:
И о чудо! Мы нашли чей-то пароль, но чей...? Опять воспользуемся CrackMapExec и подберем пароль к его юзеру:
crackmapexec smb -u users.txt -p '4n0therD4y@n0th3r$' --shares 10.10.10.172
Можно было и догадаться... Ну не суть, мы получили пользователя mhope с паролем 4n0therD4y@n0th3r$!
Теперь к ещё одной полезной утилите написанной на Ruby - Evil-WinRM - она позволяет создать shell через протокол WinRM:
./evil-winrm.rb -i 10.10.10.172 -u mhope -p '4n0therD4y@n0th3r$'
Ура! Мы в системе, но мы ещё не админы, поэтому продолжаем искать
В папке C:\Users\mhope\Desktop\ находим файл user.txt с флагом.
Повышение привелегий:
Для начала посмотрим и проведем анализ нашего доступа и пользователя в домене:whoami /all
Заметим интересную группу MEGABANK\Azure Admins в которой мы состоим, а это значит что мы можем управлять Azure, найдем интересные способы повысить привелегии...
После недолгих поисков скриптов, я наткнулся на Powershell скрипт Azure-ADConnect.ps1 - он подключается к базе данных Azure и выдаёт пароль Администратора
С помощью evil-winrm и его полезного upload - загружаем свой скрипт на тачку в папку C:\Windows\Temp и теперь нам остается загрузить его как модуль powershell, сделаем это командой:
Import-Module .\Azure-ADConnect.ps1
Теперь нам остается выполнить команду, как показано в примере самого скрипта:
Azure-ADConnect -server 10.10.10.172 -db ADSync
О да! Мы получили админские учетные данные Теперь зайдем под ними в Evil-WinRM:
Выводы:
Эта CTF дала нам самые базовые понятия пентеста AD (но не всё!), поэтому я очень сильно горю желанием продолжать делать статьи на тему CTF, а может найду ещё что получше... Поэтому надеюсь на вашу поддержку, скоро увидимся
Последнее редактирование модератором: