Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В этой статье мы будем захватывать сервер на Windows: просканируем пользователей через службу Kerberos, проведем атаку Kerberoasting, снимем защиту с файла Excel, пропатчим AMSI при работе с PowerShell Web Access и повысим привилегии через управляемую учетную запись (MSA).
Наша цель — машина Search с площадки Hack The Box. Ее уровень сложности — hard.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Сканирование портов
Добавляем IP-адрес машины в /etc/hosts
:
10.10.11.129 search.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
).
Результат работы скрипта
У нас есть целая куча открытых портов:
На хосте работает много служб. Первым делом проверяем SMB и DNS, но они ничего не дают. Остается только веб. Так как на порте 443 используется протокол HTTPS, сразу обратим внимание на его сертификат. Поле commonName
содержит доменные имена, для которых действителен данный сертификат. Nmap показывает эти настройки в результатах сканирования, что позволяет нам быстро определить используемое имя. Добавляем его в файл /etc/hosts
:
10.10.11.129 search.htb research
Главная страница сайта
Изучая сайт, обращаем внимание на список сотрудников.
Персонал сервиса
Так как на хосте работает Kerberos, мы можем проверить, существует ли какая‑то учетная запись. В этом нам поможет атака ASRep Roasting. Смысл в том, что мы посылаем на сервер аутентификации анонимный запрос для предоставления определенному пользователю доступа к какой‑либо услуге. На что сервер отвечает одним из трех действий:
UAF Dont Require PreAuth
;
Но сперва составим список пользователей. С помощью следующего кода мы можем составить все возможные комбинации имени пользователя:
#!/usr/bin/python3names = ["Keely Lyons", "Dax Santiago", "Sierra Frye", "Kyla Stewart", "Kaiara Spencer", "Dave Simpson", "Ben Thompson", "Chris Stewart"]list = ["Administrator", "Guest"]for name in names: n1, n2 = name.split(' ') list.append(n1) list.append(n1+n2) list.append(n1+"."+n2) list.append(n1+n2[0]) list.append(n1+"."+n2[0]) list.append(n2[0]+n1) list.append(n2[0]+"."+n1) list.append(n2) list.append(n2+n1) list.append(n2+"."+n1) list.append(n2+n1[0]) list.append(n2+"."+n1[0]) list.append(n1[0]+n2) list.append(n1[0]+"."+n2)for n in list: print(n)
Сохраним список в файл и выполним проверку с помощью kerbrute. Для этого используем опцию userenum
и укажем адрес (--dc
), домен (-d
) и список с вероятными именами учетных записей.
kerbrute_linux_amd64 userenum --dc search.htb -d search.htb users.txt
Список пользователей
Все сканирование заняло примерно секунду, а мы получаем три существующих аккаунта. С помощью скрипта GetNPUsers.py из пакета impacket применяем к полученным именам ASRep Roasting в надежде получить зашифрованный пароль пользователя. Но безуспешно.
GetNPUsers.py search.htb/ -usersfile users.txt
Проверка ASRep Roasting
Потратив очень много времени на поиск дальнейшего пути, я нашел на сайте фотографию http://search.htb/images/slide_2.jpg
каких‑то записей.
Главная страница сайта
При увеличении картинки стало понятно, что это список дел, среди которых есть такая строчка: «Send password to Hope Sharp».
Заметки пользователя
Проверяем это имя и узнаем, что такой аккаунт в системе есть.
Проверка существования имени пользователя
Теперь мы можем проверить и указанный пароль с помощью CrackMapExec.
crackmapexec smb search.htb -u users.txt -p 'IsolationIsKey?'
Password Spraying с помощью CME
И получаем первую учетку!
Источник: xakep.ru