Содержание статьи
- Разведка
- Сканирование портов
- Точка входа
- Точка опоры
- Cache Poisoning
- XSS
- H2 Request Smuggling
- CPR — обход каталога
- Локальное повышение привилегий
Сегодня мы проэксплуатируем сложную цепочку уязвимостей в веб‑приложении. Через Web Cache Poisoning подгрузим собственный скрипт на JS и заюзаем XSS для кражи cookie администратора. Затем используем H2 Request Smuggling для получения доступа к CPR, где применим LFI, чтобы извлечь приватные данные. Повысим привилегии через инъекцию команд ОС в сервис логирования.
Наша цель — получение прав суперпользователя на машине Caption с учебной площадки Hack The Box. Уровень задания — сложный.
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /etc/hosts:
10.10.11.33 caption.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).
Результат работы скрипта
Сканер нашел три открытых порта:
- 22 — служба OpenSSH 8.9p1;
- 80 — веб‑сервер Werkzeug Python 3.10;
- 8080 — сервис GitBucket.
На первом сайте нас встречает форма авторизации, с которой мы пока ничего сделать не можем, а вот на GitBucket нам доступно два проекта.
Главная страница сайта
Точка входа
Изучаем первый проект Caption Portal.
GitBucket — Caption Portal
В первую очередь нас интересует история коммитов.
История коммитов Caption Portal
Просматриваем каждый коммит отдельно и в коммите с описанием Update access control находим учетные данные пользователя margo.
Коммит Update access control
С полученными учетными данными авторизуемся на сайте, работающем на 80-м порте.
Главная страница сайта
Точка опоры
Просматриваем страницы, указанные в меню сайта, и доходим до страницы /logs, доступ к которой ограничен правилами.
Ошибка на странице /logs