5. Hack The Box Level Easy: Проходження Forest. AS-REP Roasting

09.12.2024 2 хвилин Автор: Lady Liberty

У цій статті розглядаються ключові хакерські техніки, застосовувані під час проходження лабораторії Hack The Box “Forest”, включаючи атаки AS-REP Roasting, DCSync та Pass-The-Hash. Ці методи є важливими етапами в пентестах та можуть бути використані для атак на мережеві сервіси Windows.

Покрокове керівництво по проникненню в “Forest”

Продовження публікації рішень, відправлених на доробку машин із платформи HackTheBox, включаючи атаку Pass-The-Hash. Лабораторії виконуються через VPN-з’єднання. Рекомендується уникати підключення з робочих пристроїв або комп’ютерів, де зберігаються важливі дані, оскільки вхід здійснюється в приватну мережу, яка включає користувачів із глибокими знаннями в сфері інформаційної безпеки.

Recon

Ця машина має IP-адресу 10.10.10.161, яка додається до файлу /etc/hosts у форматі:

10.10.10.161 forest.htb

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

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.161 --rate=1000

На хості було виявлено велику кількість відкритих портів, тому результати, отримані за допомогою masscan, вирішено перевірити для точності. Для цього було виконано додаткове сканування портів за допомогою nmap, що дозволило уточнити стан портів.

nmap 10.10.10.161 -p135,636,3269,49676,49665,53,593,49671,9389,49667,5985,49666,389,88,49684,464,3268,49677,47001,139,445,49714

Але nmap все підтвердив. Далі потрібно зібрати більше інформації про відомі nmap’у портах.

nmap -A 10.10.10.161 -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001

Наступним кроком було отримання максимально можливого обсягу інформації із системи. Для цього використовувався інструмент enum4linux. Однак, результати виявилися обмеженими — інструмент надав мінімум даних, таких як групи, вимоги до паролів, відсутність підтримки SMBv1 та розшарованих ресурсів. Водночас вдалося отримати список користувачів, що може бути корисним для подальшого аналізу.
enum4linux -a 10.10.10.161

Так як на хості працює керберос, необхідно перевірити, чи є такий обліковий запис користувача, у якого в UAC встановлено прапор DONT_REQ_PREAUTH. Прапор DONT_REQ_PREAUTH означає, що для цього облікового запису не потрібна попередня автентифікація Kerberos.

Спочатку потрібно дізнатися, які з облікових записів користувачів активні. Це допоможе зробити скрипт samrdump, що входить до складу пакету impacket.

impacket-samrdump forest.htb

Скрипт виводить спочатку всіх користувачів, а потім детальну інформацію про кожного з них. Так можна спостерігати, що обліковий запис Administrator активний, а Guest — ні. Тепер ми можемо скласти список активних користувачів.

Тримавши список активних користувачів, можна перевірити наявність потрібного прапора. Для цього використовується скрипт GetNPUsers, який входить до складу пакету impacket. У процесі роботи задається домен htb.local, IP-адреса контролера домену 10.10.10.161, аутентифікація за допомогою Kerberos (опція -k), використовується опція для перевірки облікових записів без пароля, а також передається список користувачів. Це дозволяє отримати додаткову інформацію про вразливості облікових записів у домені.

GetNPUsers.py htb.local/ -dc-ip 10.10.10.161 -k -no-pass -usersfile ADUsers.txt

 

Повідомляється, що цей прапор відсутній у всіх користувачів, окрім svc-alfresco. У версії пакету impacket (21-dev), яка використовується, скрипт автоматично запитує хеш після виконання перевірки. Це значно спрощує процес отримання необхідних даних для подальшого аналізу вразливостей облікового запису svc-alfresco.

Entry Point – AS-REP Roasting

Отримано хеш AS-REP Roasting. Унизу представлена схема аутентифікації Kerberos.

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

Цей процес дозволяє прокрутити хеш для відновлення пароля, що є основою атаки AS-REP Roasting. Хеш зберігається у файл, після чого здійснюється пошук його прообразу.

john --wordlist=./rockyou.txt hashes2.txt

Знаходимо пароль користувача.

USER

Якщо повернутися до відкритих портів, можна виявити працюючу службу WinRM (або Windows Remote Management), призначену для віддаленого керування. Тому ми можемо спокійно підключитися до неї.

Таким чином ми беремо користувача.

ROOT

Розвідка з BloodHound

Для підвищення привілеїв у домені можна використовувати інструмент BloodHound, який дозволяє визначити шляхи для LPE (local privilege escalation).

Evil-winrm надає можливість як завантажувати файли на цільовий хост, так і завантажувати файли з нього. Для збору інформації на хост було завантажено модуль SharpHound, який є частиною інструментарію BloodHound.

Evil-winrm також дозволяє виконувати скрипти PowerShell. В процесі роботи можна вказати облікові дані користувача, пароль і визначити, яку саме інформацію потрібно отримати — наприклад, повну інформацію про доступні об’єкти, сервіси чи привілеї в системі.

Після виконання скрипта, у поточній директорії з’явиться zip-архів. Його ми завантажуємо з хоста.

Далі запустимо графову СУБД neo4j, з якою працює BloodHound.

neo4j console

Тепер запустимо BloodHound. Нас зустріне пустий екран.

Завантажений архів просто переноситься в програму. Після цього перехід здійснюється на вкладку Queries для подальшого аналізу отриманих даних.

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

Визначено, що для подальшого підвищення привілеїв необхідно стати членом групи Exchange Windows Permissions, оскільки обліковий запис належить до привілейованої групи Service Accounts. Після цього з’являється можливість виконувати дії для підвищення рівня доступу в системі.

net user svc-alfresco

На даний момент користувач не є членом групи Exchange Windows Permissions. Для продовження необхідно додати його до цієї групи. Після виконання цієї дії потрібно перевірити, чи було користувача успішно додано, переглянувши список його груп.

Add-ADGroupMember "Exchange Windows Permissions" svc-alfresco

Користувача успішно додано до групи Exchange Windows Permissions. Ця група має право WriteDACL (дозвіл на зміну списків керування доступом) на об’єкт Domain в Active Directory. Це дозволяє учасникам групи змінювати привілеї домену, включаючи надання дозволів для виконання операцій DCSync, що дозволяють отримати доступ до даних користувачів, таких як хеші паролів, у базі домену.

DCSync

Атака DCSync використовує механізм реплікації Active Directory, за допомогою якого зміни, внесені на одному контролері домену, синхронізуються з іншими. Отримавши необхідні дозволи, можна ініціювати запит реплікації, щоб витягти дані, що зберігаються в Active Directory, включно з хешами паролів користувачів.

Це дозволяє синхронізувати хеші паролів облікових записів Active Directory, після чого можливо авторизуватися під їхніми іменами у будь-якому сервісі, який використовує протоколи NTLM (протокол мережної аутентифікації, розроблений Microsoft) або Kerberos.

Для виконання атаки використовуються інструменти privexchange.py і ntlmrelayx.py, які входять до складу пакета impacket. Спочатку запускається ntlmrelayx.py у режимі ретрансляції LDAP-запитів на контролер домену, використовуючи обліковий запис svc-alfresco. Це дозволяє перенаправляти аутентифікаційні запити для досягнення цілей атаки.

ntlmrelayx.py -t ldap://htb.local --escalate-user svc-alfresco

Всі сервіси запущені та очікують на підключення. Тепер використовуємо privex.

python privexchange.py 10.10.10.161 -ah наш_ip -d htb.local -u svc-alfresco -p s3rvice

Під час виконання команди виникло багато помилок. Після нетривалого аналізу було вирішено не усувати їх вручну. Як альтернативу, можна скористатися браузером: перейти за вказаним посиланням і пройти HTTP-автентифікацію, використовуючи облікові дані svc-alfresco. У вікні ntlmrelayx буде відображено інформацію про підключення, що дозволить продовжити атаку чи отримати необхідні дані.

Тепер виконаємо Атаку DCSync за допомогою secretsdump.

secretsdump.py htb.local/svc-alfresco:[email protected] -just-dc

Чудово. Ми змогли виконати реплікацію всіх облікових записів.

Атака Pass-the-hash

Ця атака дозволяє зловмиснику отримати доступ до віддаленого сервера, де автентифікація виконується за допомогою протоколів NTLM або LM. У системах, що використовують NTLM, паролі не передаються у відкритому вигляді; натомість на етапі автентифікації застосовується схема питання-відповідь, де передаються хеші паролів.

У Windows програми отримують пароль у відкритому вигляді від користувача, а потім викликають API, наприклад, LsaLogonUser, для перетворення пароля в LM і NTLM хеші, які використовуються для автентифікації. Аналіз протоколу показує, що для авторизації достатньо лише хешу пароля, без необхідності знати його у відкритому вигляді.

Слабкість реалізації протоколу полягає в тому, що хеші передаються без солі, тому вони залишаються постійними між сесіями, доки користувач не змінить пароль. Для зловмисника це означає, що хеш є еквівалентом самого пароля.

Для виконання атаки буде використано інструмент psexec, що дозволяє здійснити доступ і виконати команди на віддаленому сервері, використовуючи отриманий хеш пароля.

psexec.py -hashes :32693b11e6aa90eb43d32c72a07ceea6 [email protected]

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

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