HackTheBox: Огляд коробки Active

Як людина, яка захоплюється проникненням в безпеку та прагне отримати сертифікацію Practical Network Penetration Tester (PNPT), я шукав практичний досвід із реальними сценаріями. Hack The Box став моєю платформою для практики, де я зосередився на коробках Active Directory, щоб застосувати знання, отримані з курсів TCM Security. У цій статті я надам покрокову інструкцію для компрометації коробки HTB ‘Active’.

pic

Інформація про машину

  • ОС — Windows
  • Складність — Легка
  • Випущено — 28 липня 2018
  • Створено — eks & mrb3n
  • Опис машини:

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

Перший крок у будь-якому тестуванні на проникнення — сканування цілі на наявність відкритих портів і працюючих сервісів. Це допомагає отримати цінну інформацію про коробку та зрозуміти потенційну поверхню атаки.

Щоб отримати комплексне уявлення про ціль, я виконав наступну команду Nmap:

nmap -T4 -p- -A 10.10.10.100

Ось що означають параметри:

  • -T4: Встановлює шаблон часу на “Агресивний”, що пришвидшує сканування, зберігаючи при цьому надійність.
  • -p-: Сканує всі 65,535 портів замість обмеження до перших 1,000 стандартних портів.
  • -A: Увімкнене розширене виявлення, включаючи виявлення ОС, версій, сканування скриптів та трасування.

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

pic

Наявність 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 допомагає визначити тип доступу до спільних папок.

pic

Оглядаючи виведення smbmap, я знайшов, що директорія Replication на цій машині доступна без будь-яких облікових даних. Наступна команда була використана для доступу до директорії Replication:

smbclient \\\\10.10.10.100\\Replication

Тепер, коли я аутентифікований на SMB-сервері, я повинен рекурсивно вивести всі файли в спільному доступі ‘Replication’ за допомогою наступної команди:

recurse on  
ls

pic

Я знайшов файл ‘groups.xml’, який є файлом групових політик, що зберігає локальні облікові записи. У старих версіях Windows локальні облікові записи додавалися через групову політику і з’являлися в цьому файлі. Я завантажу його на свою локальну машину і потім відображу вміст за допомогою наступної команди:

get \active.htb\Policies\{31B2F340–016D-11D2–945F-00C04FB984F9}\MACHINE\Preferences\Groups\Groups.xml

pic

Всередині цього файлу я знайшов користувача ‘svc_tgs’ разом з їх зашифрованим паролем.
Щоб розшифрувати цей пароль, я можу використовувати інструмент gpp-decrypt з наступним вхідним параметром:

gpp-decrypt edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8

pic

Це повертає пароль ‘GPPstillStandingStrong2k18’.

Тепер, коли у мене є дійсні облікові дані, я можу повторно виконати smbmap, щоб перевірити, чи має цей користувач додаткові дозволи на SMB сервері:

pic

Я виявив, що користувач ‘svc_tgs’ має доступ лише для читання до спільних папок NETLOGON, Replication, SYSVOL і Users. Далі я рекурсивно виведу файли в спільній папці Users спочатку:

smbclient \\\\10.10.10.100\\Users -U active.htb/svc_tgs

pic

Введіть розкритий пароль, коли буде запропоновано.

recurse on  
ls

Переглянувши виведення, я зміг знайти прапор користувача:

pic

Підвищення привілеїв

Далі я можу виконати атаку 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

pic

Збережіть NT хеш за допомогою будь-якого редактора на вашій локальній системі. Для того, щоб розкрити цей хеш, ми можемо використати hashcat з модулем 13100 проти словника rockyou.txt, як показано нижче:

hashcat -m 13100 krb.txt /usr/share/wordlists/rockyou.txt

pic

Hashcat успішно розкриває хеш, розкриваючи пароль адміністратора: Ticketmaster1968.

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

pic

Введіть пароль, коли буде запропоновано, і ви отримаєте оболонку на AD машині, що свідчить про успішну компрометацію машини. Як показано вище, я тепер маю доступ адміністратора і можу перейти до C:\Users\Administrator\Desktop, щоб забрати прапор root.

Перекладено з: HackTheBox: Active Walkthrough

Leave a Reply

Your email address will not be published. Required fields are marked *