Найти тему

HTB Search. Прохождение машины на Hack The Box

Оглавление
Прохождение машины Search на Hack The Box (HTB)
Прохождение машины Search на Hack The Box (HTB)

Всем привет. Сегодня разберём прохождение Hard машины Search на Hack The Box.

Из этого прохождения вы узнаете классические способы атак на Active Directory Windows, включая Kerberoasting, использование Bloodhound и GMSA для получения доступа к учетной записи администратора домена.

Разведка

Nmap

Запустим сканирование машины и посмотрим открытые порты и сервисы на них. Сканировать будем все TCP порты с параметрами -sCV (для использования стандартных скриптов и обнаружения версий сервисов):

nmap -sCV -p- 10.10.11.129

Nmap нашел 21 открытый TCP порт.

-2

Перед нами классический Windows-хост. Набор портов указывает, что это может быть контроллер Active Directory, который запущен на Windows 10 или Windows Server 2016/2019.

Запустим nmap со скриптами на ldap:

nmap -sV –scritpt “ldap* and not brute” -p389 10.10.11.129

-3

В результате получаем, что имя домена – SEARCH.HTB, имя хоста DNS – research.search.htb.

Добавляем обе записи в /etc/hosts:

10.10.11.129 search.htb research.search.htb

search.htb TCP 80/443

Заходим на сайт. Сайт посвящен бизнес компании:

-4

На сайте обнаруживаем команду (предположительно пользователи домена):

-5

Также находим интересные данные в одном изображении:

-6

Send password to Hope Sharp IsolationIsKey?

-7

Это похоже на учетные данные пользователя. Попробуем их позднее.

Программное обеспечение

Используя расширение для браузера Wappalyzer узнаем, что сайт построен на ASP.NET и управляется ОС Windows Server.

-8

Перебор директорий

Для перебора директорий сайта будем использовать gobuster:

gobuster dir -u http://search.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

-9

Интересной директорией является /staff – доступ туда закрыт для нас (403). На других страницах ничего интересного.

SMB

Hope.Sharp

Поскольку мы ранее нашли учётные данные пользователя, попробуем их для получения доступа к SMB. Точно пользователя мы не знаем, поэтому создадим файл hope.txt со всеми комбинациями логинов для Active Directory:

hopesharp
hope.sharp
h.sharp
hope.s

Выполним поиск логина с помощью crackmapexec:

crackmapexec smb 10.10.11.129 -u hope.txt -p IsolationIsKey? --continue-on-success

-10

RedirectedFolders

Подключимся по SMB и обнаружим несколько папок:

-11

Папка CertEnroll содержит несколько файлов сертификатов и .crl.

Папка RedirectedFolders$ содержит несколько папок пользователей:

-12

Из всех папок пользователей мы можем зайти только в папку hope.sharp, но в папках внутри ничего полезного не находим.

-13

LDAP

Зная логин и пароль, выполним поиск полезной информации с помощью ldapsearch:

ldapsearch -x -h 10.10.11.129 -D ‘SEARCH\Hope.Sharp’ -w ‘IsolationIsKey?’ -b ‘DC=search,DC=htb’

-14

Bloodhound

С учетными данными пользователя можно запустить утилиту bloodhound.py для использования в программе bloodhound.

BloodHound использует теорию графов для выявления скрытых и часто непреднамеренных взаимосвязей в среде Active Directory.

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

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

bloodhound.py – это ingestor написанный на python и используется для получения информации о домене.

bloodhound-python -u Hope.Sharp -p IsolationIsKey? -ns 10.10.11.129 -d SEARCH.HTB -c all

-15

Импортируем данные в Bloodhound. Путь до администратора следующий:

-16

Таким образом надо получить доступ до Tristan.Davies, а до этого до одного из пользователей:

Rene.Larson
Abby.Gonzalez
Camren.Luna
Sierra.Frye
Keely.Lyons

Список Kerberoastable аккаунтов выведет двух пользователей:

-17

Получение доступа за Edgar.Jacobs

Восстановление пароля web_svc

Так как пользователь web_svc kerberoastable, то мы можем с помощью атаки Kerberoasting получить его hash.

Целью Kerberoasting является сбор билетов TGS для служб, которые запускаются от имени учетных записей пользователей в AD, а не от учетных записей компьютеров. Таким образом, часть этих билетов TGS зашифрована ключами, полученными из паролей пользователей. Как следствие, их учетные данные могут быть взломаны в автономном режиме.

С помощью скрипта GetUserSPNs.py из состава Impacket получим hash пароля пользователя web_svc:

-18

С помощью hashcat в режиме 13100 (Kerberos 5) подберем пароль:

-19

Пароль @3ONEmillionbaby.

Password Spraying

Аутентификация пользователя web_svc не работает с его паролем по SMB – у пользователя нет доступа.

Возможно, что пароль пользователя был использован другим пользователем, который его создал. Для проверки данного факта получим список всех пользователей домена. Можно использовать результаты работы bloodhound.py или список пользователей из RedirectedFolders$.

Составленный список будем проверять с помощью команды crackmapexec:

crackmapexec smb 10.10.11.129 -u users -p @3ONEmillionbaby --continue-on-success

-20

В результате обнаружим пользователя Edgar.Jacobs с паролем @3ONEmillionbaby.

Получение доступа за Sierra.Frye

SMB

Зайдем по SMB как пользователь Edgar.Jacobs. Войдем в папку Desktop и обнаружим интересный документ Phishing_Attempt.xlsx.

-21

Решение Phishing_Attempt.xlsx

Откроем документ Phishing_Attempt.xlsx. Он содержит 2 листа с данными.

На первом листе можно найти даты и количество полученных паролей с графиком

-22

На втором листе можно обнаружить список пользователей:

-23

Здесь можно увидеть, что столбец C скрыт. Лист защищен от изменений и нельзя изменить размер столбца или отобразить его.

Существует несколько способов посмотреть данные:

  • Открыть xlsx как zip архив и найти там скрытые строки;
  • Воспользоваться одним из онлайн сервисов для получения скрытых строк;
  • Скопировать данные из всех столбцов в другую таблицу;
  • Снять защиту.

Воспользуемся третьим способом и скопируем данные в первый лист. Получим пароли для пользователей:

-24

user.txt

Выполним перебор пользователей и паролей с помощью crackmapexec. Для этого создадим файл со всеми паролями и используем файл с пользователями.

-25

Обнаружим, что пароль $$49=wide=STRAIGHT=jordan=28$$18 подходит для пользователя Sierra.Frye.

Аутентифицируемся по SMB за Sierra.Frye и получим user.txt

-26

PowerShell Web Access

Взлом PFX

В ходе поиска интересных данных у пользователя Sierra.Frye обнаружим папку Downloads\Backups. В ней найдем p12 и pfx файлы:

-27

Скачаем данные файлы и попробуем их посмотреть:

-28

Для доступа к содержимому необходим пароль.

Выполним поиск утилит для взлома пароля:

-29

С помощью инструмента crackpkcs12 взломаем пароль от pfx файла со словарем rockyou:

-30

Доступ к staff

Для получения доступа к закрытому разделу staff импортируем сертификат в браузер:

-31

Перейдем по пути https://search.htb/staff и выберем сертификат

-32

После идентификации пользователя получим доступ до формы аутентификации PowerShell Web Access:

-33

PowerShell

Для получения доступа необходимо знать логин, пароль и имя компьютера:

-34

После указания имени компьютера как research.search.htb входим в web терминал powershell за пользователя Sierra.Frye:

-35

Shell за Tristan.Davies

Bloodhound

Вернемся в Bloodhound. Установим, что мы получили доступ Sierra.Frye и перестроим граф:

-36

Теперь у нас есть shell от Sierra.Frye, который в свою очередь состоит в группе BIRMINGHAM-ITSEC, который состоит в группе ITSEC.

Члены группы ITSEC могут читать GMSA пароль пользователя BIR-ADFS-GMSA.

-37

Эксплуатация GMSA

Попробуем получить пароль BIR-ADFS-GMSA. Для этого введем последовательность powershell команд:

$gmsa = Get-ADServiceAccount -Identity ‘BIR-ADFS-GMSA’ -Properties ‘msDS-ManagedPassword’
$mp = $gmsa.‘msDS-ManagedPassword’
$pass = ConvertFrom-ADManagedPasswordBlob $mp

-38

CurrentPassword содержит мусор, но его можно использовать для выполнения команд. Для этого сохраним SecureCurrentPassword с помощью команды

$cred = New-Object System.Management.Automation.PSCredential ‘BIR-ADFS-GMSA’, $pass.SecureCurrentPassword

-39

Для выполнения команды используем строку

Invoke-Command -ComputerName localhost -Credential $cred -ScriptBlock { whoami }

root.txt

Так как пользователь BIR-ADFS-GMSA имеет все привилегии пользователя Tristan.Davies, то мы можем выполнять команды как Tristan.Davies.

-40

Выполним команду смены пароля пользователя Tristan.Davies с помощью команды:

Invoke-Command -ComputerName localhost -Credential $cred -ScriptBlock { net user Tristan.Davies 12345678 /domain }

-41

Войдем по SMB за Tristan.Davies:

-42

Пользователь Tristan.Davies администратор и значит имеет права на чтение содержимого папки Administrator\Desktop

-43

Подписывайтесь на наш паблик ВКонтактеTelegramЯндекс.Дзен, канал на YouTube и RuTube чтобы не пропустить новые Прохождения машин на Hack The Box!

#hack the box #hackthebox #htb #хакер #хакеры #хакинг #хакерство #hacker #hacking #secware