HackTheBox — популярна платформа для тестування навичок у сфері кібербезпеки. У цій статті розглянуто покрокове проходження машини Resolute, яке дозволяє відпрацювати реальні техніки експлуатації уразливостей.
У статті розглядається процес збору інформації про машину, виконання password spraying для отримання доступу до облікового запису користувача, а також підвищення привілеїв від DnsAdmin до SYSTEM шляхом використання шкідливої DLL-бібліотеки.
Для підключення до лабораторії використовується VPN. Рекомендується уникати підключення з робочого комп’ютера або пристрою, на якому зберігаються важливі дані, оскільки приватна мережа може містити досвідчених фахівців у сфері кібербезпеки.
Ця машина має IP адресу 10.10.10.169, яку додаємо в /etc/hosts.
10.10.10.169 resolute.htb
Першим кроком є сканування відкритих портів. Щоб пришвидшити процес, замість тривалого сканування всіма портами за допомогою nmap, використовується masscan для швидкого отримання результатів.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.169 --rate=500
На хості відкрито багато портів. Тепер проскануємо їх за допомогою nmap, щоб відфільтрувати та вибрати потрібні.
nmap resolute.htb -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49676,49677,49688,49915
Тепер для отримання більш детальної інформації про послуги, що працюють на портах, запустимо сканування з опцією -А.
nmap -A resolute.htb -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49676,49677,49688,49915
З результатів nmap виявляється доменне ім’я megabank.local, яке необхідно додати у файл /etc/hosts
. Основним етапом розвідки для Windows є базове перерахування. Для цього, працюючи з машини на Linux, зазвичай використовується утиліта enum4linux.
enum4linux -a megabank.local
Серед отриманої інформації про домен, користувачів, групи та політику паролів виявлено коментар до облікового запису користувача mark, у якому зазначено пароль. Однак спроби авторизації з цими обліковими даними на всіх сервісах виявляються невдалими.
Оскільки в системі вже є відомий пароль та список користувачів, доцільно застосувати одну з технік Lateral Movement — Password Spraying. Суть цієї техніки полягає у спробах використання відомого пароля для авторизації від імені всіх доступних користувачів.
Перевірку в першу чергу проводять через SMB. Для цього можна використовувати модуль smb_login
у Metasploit Framework.
Вказуємо необхідні параметри.
І успішно знаходимо користувача, якого підходить даний пароль.
Для перевірки облікових даних зручно використовувати утиліту smbmap
. Їй передаються параметри користувача, пароль, домен і хост для тестування доступу.
Після перевірки облікових даних отримується перелік доступних ресурсів. Звернувшись до списку відкритих портів, можна помітити працюючу службу WinRM на порту 5985. Для зручної взаємодії з цією службою з-під Linux рекомендується використовувати інструмент Evil-WinRM.
Evil-WinRM працює чудово, але Meterpreter є зручнішим інструментом. Програма дозволяє вказати директорію з файлами PowerShell або C#, які автоматично завантажуються в сесію при підключенні. Наступним кроком є створення PowerShell-файлу, що містить навантаження Meterpreter.
Створюємо листенер для прослуховування з’єднання.
Тепер підключаємося з Evil-WinRM та вказуємо директорію зі скриптом.
Однак після запуску файлу з навантаженням скрипт виконується без помилок, але підключення не встановлюється.
Як можна здогадатися, необхідно використати перший із доступних модулів. Після його застосування слід повторно запустити файл із навантаженням для перевірки результату.
Спостерігаємо успішне поєднання.
Під час виконання скриптів для Recon і аналізу системи виявляється цікава директорія, яка заслуговує на подальше дослідження.
Це директорія, яка зберігає текстовий файл із записаною сесією PowerShell, після команди “Start-Transcript”. Шукаємо файл.
Переглядаємо вміст знайденої директорії для аналізу доступних файлів і потенційно корисної інформації.
Пробуємо облікові дані для служби WinRM.
І в результаті логінімся як Ryan.
Під час перевірки інформації про поточного користувача виявляється цікава деталь: він входить до групи DnsAdmins, що відкриває можливості для подальшого підвищення привілеїв.
Запустимо листенер.
Активуємо smb-сервер. Вказуємо директорію, назву та підтримку SMB 2-ї версії.
За допомогою dnscmd вкажемо, яку DLL завантажити.
Після перезавантаження служби DNS спостерігається встановлення підключення через SMB, що підтверджує успішне завантаження DLL із навантаженням.
Також відкриту сесію.