warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Добавляем IP-адрес машины в /
:
10.10.11.104 writer.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 7.6p1) и 80 (веб‑сервер Apache 2.4.29). SSH пока пропустим.
Справка: брутфорс учеток
Поскольку в начале прохождения у нас нет учетных данных, нет и смысла изучать службы, которые всегда требуют авторизации (например, SSH). Единственное, что мы можем сделать здесь — это перебирать пароли брутфорсом, но у машин с HTB почти всегда есть другое прохождение. В жизни таких вариантов может не быть, к тому же есть шансы подобрать пароль или получить его при помощи социальной инженерии.
Остается «пробивать» веб. Внимательно изучим сайт в поисках любой важной информации. При загрузке сайта http://
нас перебрасывают на страницу login.
. Там нас встречает форма авторизации.

Незаменимое средство при анализе веб‑сайтов — набор программ Burp Pro. Например, входящий в него Burp Proxy при анализе сайта ведет свою историю запросов и ответов. Там мы можем найти наш редирект. Но что более удивительно, редирект выполнен неправильно, так как страница сначала загружается, а потом происходит перенаправление. Увидеть главною страницу можно во встроенном браузере Burp. Для этого активируем Response → Render.

Таким образом мы можем просмотреть весь сайт.
Точка входа
Мы можем просматривать файлы сайта, но пока что способов продвинуться дальше не видно. Попробуем получить больше информации о содержимом каталогов при помощи перебора.
Справка: сканирование веба c fuff
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов с целью поиска скрытой информации и недоступной обычным посетителям функций. Для этого можно использовать программы вроде dirsearch и dirb.
Я предпочитаю легкий и очень быстрый ffuf. При запуске используем следующие параметры:
-
-w
— словарь (используем directory-list-2.3-medium из набора Seclists); -
-t
— количество потоков; -
-u
— URL; -
-fc
— исключить из результата ответы с кодом 403.
Список популярных файлов на PHP можно найти в наборе словарей Seclists. Запускаем перебор:
ffuf -u http://previse.htb/FUZZ -w php_files_common.txt -t 200 -fc 403

В выводе получаем много файлов, и некоторые выполняют редирект. А вот неизвестный до этого файл nav.
возвращает код ответа 200. Взглянем на него через браузер и обнаружим обычную навигацию по сайту.

Теперь обойдем все страницы через Burp Proxy и просмотри ответы сервера. Чтобы удобно сделать это через браузер, будем перехватывать ответ от сервера и менять код ответа с 302 (перенаправление) на 200 (успешный ответ). Первым делом перехватываем запрос.

Теперь активируем перехват ответа. Для этого в контекстном меню выбираем Do intercept → Response to this request. После этого отправляем запрос, нажав на кнопку Forward. И сразу в этом же окне получим ответ.

Изменяем 302
на 200
.

Отправляем ответ, снова нажав на кнопку Forward. В браузере получаем нужную нам страницу.

Подобным образом взглянем и на остальные страницы.


Мы нашли интересную возможность, но нам она пока не доступна. Зато мы можем работать со страницей создания пользователя, чем и воспользуемся.


Перейдем к странице files.
и скачаем бекап сайта.

В архиве много файлов, о некоторых мы даже и не знали. Переходим к этапу изучения исходного кода.
Точка опоры
Среди файлов внутри архива обнаружим connect.
. Этот файл обычно используется для указания настроек подключения к базе данных.

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