Содержание статьи
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.143 paper.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта.
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).

Скрипт нашел три открытых порта: 22 — служба OpenSSH 8.0, 80 и 443 — веб‑сервер Apache 2.4.37. Обычно в SSL-сертификате можно подсмотреть новые доменные имена в поле commonName
, но не в этот раз.

Точка входа
При пентесте веб‑сервисов лучше всего работать в Burp. Полезно, к примеру, что в Burp History можно будет просмотреть всю цепочку пользовательских запросов и ответов сервера. Так, в HTTP-заголовке X-Backend-Server
находим еще один домен — office.
.

Тоже добавляем его в /
.
10.10.11.143 paper.htb office.paper
И на этом домене находим новый сайт.

И снова Burp History нам помогает — по страницам, к которым обращается наш клиент, мы определяем, что на машине установлен WordPress.

Точка опоры
WordPress
На сайте несколько статей с комментариями, которые мы можем прочитать. И один из комментирующих указывает, что в черновиках лежат какие‑то секретные данные.

Поскольку мы столкнулись с WordPress, можем воспользоваться специальными утилитами для работы с ней. В первую очередь нам понадобится WPScan — сканер, который автоматически ищет уязвимости в WordPress и установленных плагинах.
Передадим сканеру следующие параметры:
-
--url
— URL; -
-e
— поиск установленных плагинов;ap -
--plugins-detection
— способ определения плагина. Aggressive — грубое сканирование перебором; -
-t
— количество потоков; -
--api-token
— полученный с официального сайта API-ключ.
wpscan --url http://office.paper -e ap --plugins-detection aggressive -t 256 --api-token [...KEY...]

И мы находим уязвимость, которая позволяет читать приватные посты. По предоставленной утилитой ссылке мы получим инструкцию, как эксплуатировать уязвимость.

Переходим к странице /
, и нам становится доступным скрытый пост.

Находим ссылку на еще один домен. Добавим его в /
и просмотрим в браузере.
10.10.11.143 paper.htb office.paper chat.office.paper

Так мы получаем доступ к панели регистрации в Rocket.Chat!
Rocket.Chat
Rocket.Chat — это полностью настраиваемый мессенджер на JavaScript c открытым исходным кодом. Так как мы получили доступ к странице регистрации, то создадим себе аккаунт и авторизуемся.

Но мы получаем пустой мессенджер, поэтому идея узнать приватные данные из переписок сразу отпала. Однако спустя минуту приходит сообщение от бота!

Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»