Хабрахабр

HackTheBox. Прохождение Cascade. LDAP и удаленные объекты Active Directory


Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox.

В данной статье мы покопаемся в LDAP, декодируем VNC пароль, декомпилируем приложения dotNet, легко расшифровываем AES и восстанавливаем удаленные объекты Active Directory.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ.

Организационная информация

Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.

Recon

Данная машина имеет IP адрес 10.10.10.182, который я добавляю в /etc/hosts.

10.10.10.182 cascade.htb

Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.182 --rate=500

На хосте открыто много портов. Теперь просканируем их с помощью nmap, чтобы отфильтровать и выбрать нужные.

nmap cascade.htb -p49172,49157,49154,135,53,5985,636,389,139,49155,445,3269,3268,49158,88

Теперь для получения более подробной информации о сервисах, которые работают на портах, запустим сканирование с опцией -А.

nmap -A cascade.htb -p49172,49157,49154,135,53,5985,636,389,139,49155,445,3269,3268,49158,88

Как обычно, первым делом начинаем с перечисления SMB — enum4linux.

enum4linux -a cascade.htb

Сохраняем себе список пользователей и членство их в группах. Посмотрим, что нам может предложить LDAP.

Entry Point

Для работы с LDAP используем JXplorer. Подключимся и посмотрим все объекты.

И у пользователя Ryan Thompson находим атрибут cascadeLegacyPwd.

Декодируем base64 и получаем пароль.

USER

Раз мы нашли учетные данные, давайте посмотрим доступные нам SMB ресурсы c помощью CrackMapExec.

cme smb cascade.htb -u "r.thompson" -p "rY4n5eva" --shares

Подключимся к ресурсу Data.

smbclient -U r.thompson //10.10.10.182/Data

Давайте просмотрим все что есть рекурсивно.

А теперь скачаем и посмотрим эти файлы.
get "IT\Email Archives\Meeting_Notes_June_2018.html"
get "IT\Logs\Ark AD Recycle Bin\ArkAdRecycleBin.log"
get IT\Logs\DCs\dcdiag.log
get "IT\Temp\s.smith\VNC Install.reg"

В первом файле говорят о переносе сети и о том, что пароль TempAdmin совпадает с паролем обычного админа.

Из второго файла отметим для себя права пользователя ArkSvc.

В третьем файле ничего интересного. А вот в четвертом находим VNC пароль для пользователя s.smith.

Декодируем его с помощью vncpasswd. Указываем, что хотим декодировать пароль (-d) и передаем его в Hex виде.

vncpasswd.py -d -H 6bcf2a4b6e5aca0f

Если посмотреть вывод enum4linux, увидим, что данный пользователь является членом групп Remote Management Users. Попробуем зайти через службу winrm с данным паролем.

evil-winrm -i cascade.htb -u s.smith -p sT333ve2

USER 2

Посмотрим SMB ресурсы данного пользователя

cme smb cascade.htb -u s.smith -p sT333ve2 --shares

Доступен ресурс Audit$.

smbclient -U s.smith //10.10.10.182/Audit$

Давайте загрузим все, что есть.

Среди загруженных файлов имеется база данных, открыв ее можно нати учетные данные в таблице LDAP.

Но они никуда не подходят, видимо пароль зашифрован, а расшифровывается с помощью программы. При этом имется CascCrypto.dll. При этом и программа и библиотека написаны на C#.

Декомпилируем программу с помощью dnSpy. Находим место, где из базы считывается пароль и передается в функцию расшифровывания. Там же передается ключ.

Декомпилировав библиотеку, узнаем режим шифрования и вектор инициализации.

Таким образом, имеем следующие параметры:

Теперь нужно расшифровать. Сделаем это на сайте CyberChef.

И мы получаем пароль. Как следует из enum4linux, данный пользователь состоит в группах Remote Management Users и AD Recycle Bin. Как можно помнить, данный пользователь был нужен для переноса объектов. А у пользователя TempAdmin такой же пароль, как и у администратора. Но он был удален.
Давайте посмотрим удаленные объекты.

Get-ADObject -IncludeDeletedObjects -Filter {IsDeleted -eq $True}

И находим тот объект который искали. Давайте получим его атрибуты.

Get-ADObject -Filter {SamAccountName -eq 'TempAdmin'} -IncludeDeletedObjects -Properties *

И декодируем пароль.

Подключимся к WinRM и заберем флаг.

evil-winrm -i cascade.htb -u Administrator -p baCT3r1aN00dles

Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть