15. HackTheBox. Level Medium: Проходження Cascade. LDAP та віддалені об’єкти Active Directory

17 грудня 2024 2 хвилин Автор: Lady Liberty

У статті покроково описаний процес сканування портів, взаємодії з LDAP, декодування паролів та відновлення видалених об’єктів. Матеріал корисний для фахівців з інформаційної безпеки, які хочуть вдосконалити навички пентестингу та дослідження вразливостей корпоративних мереж.

Проходження Cascade

У цій статті розглядається експлуатація XSS to LFI через PDF, підвищення привілеїв за допомогою logrotten, а також аналіз уразливості реєстрації, пов’язаної з усіченням полів.

Підключення до лабораторії здійснюється через VPN. Не рекомендується використовувати робочий комп’ютер або хост із важливими даними, оскільки підключення відбувається до приватної мережі, де присутні користувачі з високими навичками в галузі інформаційної безпеки.

Recon

Ця машина має IP адресу 10.10.10.182, яку додаємо в /etc/hosts.

10.10.10.176	book.htb

Спочатку виконується сканування відкритих портів. Оскільки сканування всіх портів за допомогою nmap займає багато часу, для початкового етапу використовується masscan. Сканування охоплює всі TCP та UDP порти через інтерфейс tun0 зі швидкістю 500 пакетів на секунду.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.176     --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 ресурси за допомогою 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 був такий самий пароль, як і в адміністратора, але його обліковий запис було видалено.

Тепер перевіримо віддалені об’єкти в Active Directory Recycle Bin для можливості відновлення облікового запису або отримання подальших даних.

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

Знаходимо потрібний об’єкт у Active Directory Recycle Bin. Тепер отримуємо його атрибути для подальшого аналізу та можливого відновлення облікового запису.

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

Декодуємо пароль.

Підключимося до WinRM та заберемо прапор.

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

Висновок

У статті розглянуто процес отримання доступу до системи через вразливості та подальше підвищення привілеїв. Показано, як експлуатувати XSS to LFI через PDF, використовувати logrotten для ескалації прав і досліджувати проблеми реєстрації з усіченням полів. Особливу увагу приділено розшифруванню паролів за допомогою CascCrypto.dll та інструментів, таких як CyberChef. Завершальним етапом стало вивчення віддалених об’єктів у Active Directory Recycle Bin для відновлення доступу.

Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.