Суть комнаты
Tomghost — это учебная комната на TryHackMe, в которой нужно последовательно эксплуатировать уязвимости: от чтения файлов через Ghostcat до повышения привилегий через неправильно настроенный sudo. Это классическая тренировка по пентесту: разведка, эксплуатация, постэксплуатация.
Шаг 1: Сканирование и обнаруженные сервисы
Всё начинается со сканирования цели через Nmap. Команда nmap -sV -sC открывает следующую картину:
| Порт | Сервис | Версия |
|---|---|---|
| 22/tcp | SSH | OpenSSH 7.2p2 |
| 53/tcp | tcpwrapped | — |
| 8009/tcp | AJP13 | Apache JServ Protocol |
| 8080/tcp | Apache Tomcat | 9.0.30 |
Порт 8009 с AJP — уже подозрительный. Если Tomcat слушает AJP, есть шанс проверить Ghostcat.
Шаг 2: Ghostcat (CVE-2020-1938)
Ghostcat — уязвимость в Apache Tomcat, которая позволяет читать произвольные файлы из каталога WEB-INF. Достаточно открытого порта AJP (обычно 8009) и совместимой версии. В Metasploit для этого есть готовый модуль: auxiliary/admin/http/tomcat_ghostcat. Запускаем, указываем цель и читаем /WEB-INF/web.xml. Оттуда получаем учётные данные для SSH: логин skyfuck и пароль 8730281lkjlkjdqlksalks.
Ghostcat позволяет только читать файлы, но этого достаточно для доступа — если внутри файла лежат пароли.
Шаг 3: Вход по SSH и разведка системы
Заходим через SSH под учётной записью skyfuck, осматриваемся. Находим файл user.txt в домашней папке пользователя merlin — это первый флаг. Рядом лежат два файла: tryhackme.asc (приватный GPG-ключ) и credential.pgp (зашифрованные данные). Понятно, что нужно расшифровать credential.pgp, а для этого — взломать пароль от ключа.
Шаг 4: Взлом GPG-ключа
Чтобы подобрать пароль от приватного GPG-ключа, его преобразуют в формат, понятный John the Ripper. Сначала через gpg2john получаем хэш, затем запускаем подбор по словарю rockyou.txt:
- gpg2john tryhackme.asc > /tmp/gpg.txt
- john /tmp/gpg.txt --wordlist=/usr/share/wordlists/rockyou.txt
Подбор занимает считанные минуты: пароль ключа — alexandru.
Шаг 5: Расшифровка и переход на другого пользователя
Импортируем ключ в GnuPG (gpg --import tryhackme.asc), затем расшифровываем credential.pgp (gpg --decrypt credential.pgp). Внутри — логин и пароль для пользователя merlin. Переключаемся через su merlin. На этом уровне появляется возможность повысить привилегии.
Шаг 6: Повышение привилегий до root через zip
Выполняем sudo -l и видим интересное: merlin может запускать /usr/bin/zip от имени root без пароля. Это типичная ошибка конфигурации sudo. Используем технику из GTFOBins:
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'
После выполнения — мы root. Остаётся забрать финальный флаг.
Выводы и уроки для защиты
Комната Tomghost показывает, как несколько, казалось бы, мелких недочётов превращаются в полный компрометацию системы. Что стоит вынести:
- Обновляйте Tomcat и закрывайте AJP-порт, если он не используется. Ghostcat известна с 2020 года, но многие сервера до сих пор уязвимы;
- Не храните учётные данные в файлах, доступных через приложение. web.xml — не место для паролей;
- Следите за правилами sudo: разрешение на выполнение zip от root — прямая дорога к RCE через GTFOBins;
- Используйте сложные пароли для GPG-ключей: rockyou.txt справляется с простыми за считанные минуты.
С точки зрения пентеста, Tomghost — отличная тренировка: цепочка из трёх техник, каждая из которых пригодится в реальных тестах на проникновение.
Ниже — сводная таблица ошибок, которые приводят к компрометации, и способы их закрыть:
| Ошибка на сервере | Чем опасна | Как исправить |
|---|---|---|
| Открытый порт AJP | Ghostcat: чтение файлов и потенциальный RCE | Закрыть порт 8009 в firewall или отключить AJP-коннектор |
| Пароли в web.xml | Прямой доступ к учётным данным после чтения файла | Вынести секреты в переменные окружения или секретницы |
| Слабый пароль GPG-ключа | Подбор с rockyou.txt за минуты | Использовать длинные случайные пароли или хранить ключи в аппаратных токенах |
| Sudo с NOPASSWD на zip | Получение root через GTFOBins | Убрать правило sudo или ограничить команды, не давать zip от root |
Комментарии (0)
Войдите, чтобы комментировать.
Пока нет комментариев. Будьте первым.