Як людина, яка захоплюється проникненням в безпеку та прагне отримати сертифікацію Practical Network Penetration Tester (PNPT), я шукав практичний досвід із реальними сценаріями. Hack The Box став моєю платформою для практики, де я зосередився на коробках Active Directory, щоб застосувати знання, отримані з курсів TCM Security. У цій статті я надам покрокову інструкцію для компрометації коробки HTB ‘Active’.
Інформація про машину
- ОС — Windows
- Складність — Легка
- Випущено — 28 липня 2018
- Створено — eks & mrb3n
- Опис машини:
Active — це машина середньої складності, яка включає дві дуже поширені техніки для отримання привілеїв в середовищі Active Directory.
Перший крок у будь-якому тестуванні на проникнення — сканування цілі на наявність відкритих портів і працюючих сервісів. Це допомагає отримати цінну інформацію про коробку та зрозуміти потенційну поверхню атаки.
Щоб отримати комплексне уявлення про ціль, я виконав наступну команду Nmap:
nmap -T4 -p- -A 10.10.10.100
Ось що означають параметри:
-T4
: Встановлює шаблон часу на “Агресивний”, що пришвидшує сканування, зберігаючи при цьому надійність.-p-
: Сканує всі 65,535 портів замість обмеження до перших 1,000 стандартних портів.-A
: Увімкнене розширене виявлення, включаючи виявлення ОС, версій, сканування скриптів та трасування.
Ця команда гарантує, що жоден відкритий порт не залишиться непоміченим, одночасно надаючи детальну інформацію про сервіси, які працюють на цілі.
Наявність DNS на порту 53, Kerberos на порту 88 та LDAP на порту 389 свідчить про те, що на цій коробці працює Active Directory. Крім того, виведення Nmap по рядку LDAP показує доменне ім'я ‘active.htb.’
Перш ніж рухатися далі, я люблю переглянути сканування та відзначити важливу інформацію. По-перше, я помітив, що операційна система на машині — Microsoft Server 2008 R2 SP1, що може надати додаткову поверхню атаки через застарілу версію. По-друге, на машині працює LDAP, і ми можемо спробувати його енумерувати для збору корисної інформації. Нарешті, на порту 445 працює SMB, який має історію вразливостей.
Найобіцяючішою ціллю для енумерації здавалася SMB, тому я почав з енумерації SMB shares, щоб перевірити, чи можу я отримати доступ до будь-яких файлів, які можуть дати початкову точку входу. Для цього я використовував smbclient та smbmap. Оскільки на той момент у мене не було жодних облікових даних, я натиснув Enter, коли мене попросили ввести пароль, щоб показати порожні облікові дані. Smbmap допомагає визначити тип доступу до спільних папок.
Оглядаючи виведення smbmap, я знайшов, що директорія Replication на цій машині доступна без будь-яких облікових даних. Наступна команда була використана для доступу до директорії Replication:
smbclient \\\\10.10.10.100\\Replication
Тепер, коли я аутентифікований на SMB-сервері, я повинен рекурсивно вивести всі файли в спільному доступі ‘Replication’ за допомогою наступної команди:
recurse on
ls
Я знайшов файл ‘groups.xml’, який є файлом групових політик, що зберігає локальні облікові записи. У старих версіях Windows локальні облікові записи додавалися через групову політику і з’являлися в цьому файлі. Я завантажу його на свою локальну машину і потім відображу вміст за допомогою наступної команди:
get \active.htb\Policies\{31B2F340–016D-11D2–945F-00C04FB984F9}\MACHINE\Preferences\Groups\Groups.xml
Всередині цього файлу я знайшов користувача ‘svc_tgs’ разом з їх зашифрованим паролем.
Щоб розшифрувати цей пароль, я можу використовувати інструмент gpp-decrypt з наступним вхідним параметром:
gpp-decrypt edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8
Це повертає пароль ‘GPPstillStandingStrong2k18’.
Тепер, коли у мене є дійсні облікові дані, я можу повторно виконати smbmap, щоб перевірити, чи має цей користувач додаткові дозволи на SMB сервері:
Я виявив, що користувач ‘svc_tgs’ має доступ лише для читання до спільних папок NETLOGON, Replication, SYSVOL і Users. Далі я рекурсивно виведу файли в спільній папці Users спочатку:
smbclient \\\\10.10.10.100\\Users -U active.htb/svc_tgs
Введіть розкритий пароль, коли буде запропоновано.
recurse on
ls
Переглянувши виведення, я зміг знайти прапор користувача:
Підвищення привілеїв
Далі я можу виконати атаку Kerberoasting, яка націлена на Ticket Granting Ticket (TGT), виданий Key Distribution Center (KDC) під час процесу аутентифікації Kerberos. TGT використовується для запиту квитків на послуги (TGS квитки) для конкретних послуг у мережі і зашифроване NT хешем пароля облікового запису служби — в цьому випадку, облікового запису адміністратора. У цій атаці я можу використати іншу команду impacket GetUserSPNs для захоплення зашифрованого TGS квитка та спробувати розкрити пароль. NT хеші паролів вразливі до атак на розкриття, оскільки алгоритм хешування є слабким:
sudo GetUserSPNs.py active.htb/svc_tgs:GPPstillStandingStrong2k18 -dc-ip 10.10.10.100 -request
Збережіть NT хеш за допомогою будь-якого редактора на вашій локальній системі. Для того, щоб розкрити цей хеш, ми можемо використати hashcat з модулем 13100 проти словника rockyou.txt, як показано нижче:
hashcat -m 13100 krb.txt /usr/share/wordlists/rockyou.txt
Hashcat успішно розкриває хеш, розкриваючи пароль адміністратора: Ticketmaster1968.
Тепер, коли у мене є розкритий пароль адміністратора, я можу використовувати psexec, щоб підключитися до AD машини як адміністратор.
Введіть пароль, коли буде запропоновано, і ви отримаєте оболонку на AD машині, що свідчить про успішну компрометацію машини. Як показано вище, я тепер маю доступ адміністратора і можу перейти до C:\Users\Administrator\Desktop, щоб забрати прапор root.
Перекладено з: HackTheBox: Active Walkthrough