![](/uploads/posts/2022-08/03.png)
Наша цель — машина Search с площадки Hack The Box. Ее уровень сложности — hard.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.129 search.htb
И запускаем сканирование портов.
![Результат работы скрипта Результат работы скрипта](/uploads/posts/2022-08/02.png)
У нас есть целая куча открытых портов:
- 53 — служба DNS;
- 80 (HTTP) — веб‑сервер Microsoft IIS/10.0;
- 88 — служба Kerberos;
- 135 — служба удаленного вызова процедур (Microsoft RPC). Используется для операций взаимодействия контроллер — контроллер и контроллер — клиент;
- 139 — служба сеансов NetBIOS, NetLogon;
- 389 — служба LDAP;
- 443 (HTTPS) — веб‑сервер Microsoft IIS/10.0;
- 445, 8172 — служба SMB;
- 464 — служба смены пароля Kerberos;
- 593 (HTTP-RPC-EPMAP) — используется в службах DCOM и MS Exchange;
- 636 — LDAP с шифрованием SSL или TLS;
- 3268 (LDAP) — для доступа к Global Catalog от клиента к контроллеру;
- порт 3269 (LDAPS) — для доступа к Global Catalog от клиента к контроллеру через защищенное соединение;
- порт 9389 — веб‑службы AD DS.
На хосте работает много служб. Первым делом проверяем SMB и DNS, но они ничего не дают. Остается только веб. Так как на порте 443 используется протокол HTTPS, сразу обратим внимание на его сертификат. Поле commonName
содержит доменные имена, для которых действителен данный сертификат. Nmap показывает эти настройки в результатах сканирования, что позволяет нам быстро определить используемое имя. Добавляем его в файл /
:
10.10.11.129 search.htb research
![Главная страница сайта Главная страница сайта](/uploads/posts/2022-08/03.png)
Изучая сайт, обращаем внимание на список сотрудников.
![Персонал сервиса Персонал сервиса](/uploads/posts/2022-08/04.png)
Так как на хосте работает Kerberos, мы можем проверить, существует ли какая‑то учетная запись. В этом нам поможет атака ASRep Roasting. Смысл в том, что мы посылаем на сервер аутентификации анонимный запрос для предоставления определенному пользователю доступа к какой‑либо услуге. На что сервер отвечает одним из трех действий:
- предоставляет хеш;
- отвечает, что у этого пользователя не выставлен флаг
UAF
;Dont Require PreAuth - говорит, что такого пользователя нет в базе Kerberos.
Но сперва составим список пользователей. С помощью следующего кода мы можем составить все возможные комбинации имени пользователя:
#!/usr/bin/python3
names = ["Keely Lyons", "Dax Santiago", "Sierra Frye", "Kyla Stewart", "Kaiara Spencer", "Dave Simpson", "Ben Thomp
son", "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 --dcsearch.htb -dsearch.htb users.txt
![Список пользователей Список пользователей](/uploads/posts/2022-08/05.png)
Все сканирование заняло примерно секунду, а мы получаем три существующих аккаунта. С помощью скрипта GetNPUsers.py из пакета impacket применяем к полученным именам ASRep Roasting в надежде получить зашифрованный пароль пользователя. Но безуспешно.
GetNPUsers.py search.htb/-usersfileusers.txt
![Проверка ASRep Roasting Проверка ASRep Roasting](/uploads/posts/2022-08/06.png)
Потратив очень много времени на поиск дальнейшего пути, я нашел на сайте фотографию http://
каких‑то записей.
![Главная страница сайта Главная страница сайта](/uploads/posts/2022-08/07.png)
При увеличении картинки стало понятно, что это список дел, среди которых есть такая строчка: «Send password to Hope Sharp».
![Заметки пользователя Заметки пользователя](/uploads/posts/2022-08/08.png)
Проверяем это имя и узнаем, что такой аккаунт в системе есть.
![Проверка существования имени пользователя Проверка существования имени пользователя](/uploads/posts/2022-08/09.png)
Теперь мы можем проверить и указанный пароль с помощью CrackMapExec.
crackmapexec smb search.htb -uusers.txt -p IsolationIsKey?
![Password Spraying с помощью CME Password Spraying с помощью CME](/uploads/posts/2022-08/10.png)
И получаем первую учетку!
Скачать:
Скриншоты:
Важно:
Все статьи и материал на сайте размещаются из свободных источников. Приносим свои глубочайшие извинения, если Ваша статья или материал была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.