Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Сегодня я покажу процесс эксплуатации цепочки уязвимостей в Active Directory. Небезопасные списки доступа дадут нам сессию на хосте, а учетную запись администратора мы сможем заполучить, обнаружив сохраненные учетные данные и группу с делегированием.
Наша цель — получение прав суперпользователя на машине Vintage с учебной площадки Hack The Box. Уровень задания — сложный.
warning
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Добавляем IP-адрес машины в /etc/hosts
:
10.10.11.45 vintage.htb
Помимо IP-адреса, нам на этот раз дают учетные данные с правами пользователя домена.
Информация о машине
Запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).
Результат работы скрипта
Сканер нашел 12 открытых портов:
Проверим выданные учетные данные с помощью NetExec.
nxc ldap 10.10.11.45 -u P.Rosa -p Rosaisbest123!
Проверка учетных данных
Ответ STATUS_NOT_SUPPORTED
говорит о том, что протокол аутентификации NTLM не поддерживается. Попробуем использовать аутентификацию Kerberos, но сперва обновим запись в файле /etc/hosts
.
10.10.11.45 vintage.htb dc01.vintage.htb
Затем необходимо синхронизировать время с сервером.
sudo timedatectl set-ntp falsesudo ntpdate -s 10.10.11.45
Когда все готово, запросим TGT-билет Kerberos для юзера P.Rosa
.
getTGT.py vintage.htb/P.Rosa:Rosaisbest123
Получение тикета
Билет получен, теперь используем его для подключения к службе LDAP с помощью NetExec.
KRB5CCNAME=P.Rosa.ccache nxc ldap dc01.vintage.htb -u P.Rosa -p 'Rosaisbest123!' -k --use-kcache
Проверка билета
Все работает, доступ есть, а значит, получим список пользователей с полем description
, ведь иногда там можно найти разную интересную информацию.
KRB5CCNAME=P.Rosa.ccache nxc ldap dc01.vintage.htb -u P.Rosa -p 'Rosaisbest123!' -k --use-kcache --users
Список пользователей домена
Ничего нового не нашли, поэтому соберем базу BloodHound.
Справка: BloodHound
Утилита BloodHound использует теорию графов для выявления скрытых и зачастую непреднамеренных взаимосвязей в среде Active Directory. Ее можно использовать, чтобы легко идентифицировать очень сложные пути атаки. Помимо самой утилиты, которая позволяет просматривать граф, существует часть, загружаемая на удаленный хост для сбора информации. Она бывает в версиях для Windows — на PowerShell или C# — и для Linux — на Python.
Собрать базу можно с помощью BloodHound.py, однако для этого требуется DNS-сервер. DNS из лаборатории нам недоступен, так что поднимаем свой — со всеми необходимыми записями.
[A] *.vintage.htb=10.10.11.45 [SRV] _ldap._tcp.pdc._msdcs.vintage.htb=0 5 389 vintage.htb _ldap._tcp.gc._msdcs.vintage.htb=0 5 389 vintage.htb _kerberos._tcp.dc._msdcs.vintage.htb=0 5 88 vintage.htb
Источник: xakep.ru