Мы уже рассказывали про SSRF-атаку при прохождении HTB Health. В этой статье продолжим тему SSRF и на примере прохождения средней по сложности уязвимой машины Awkward с площадки Hack The Box, рассмотрим эксплуатацию уязвимости SSRF и LFI .
Еще по теме: Топовые инструменты для поиска уязвимостей сайтов
Эксплуатация уязвимости SSRF и LFI
Лучше подключаться к машине HTB с помощью VPN. Подробнее в статье «Как подключиться и использовать Hack The Box».
SSRF
SSRF — это атака на сервер, в результате которой злоумышленник получает возможность отправлять запросы от имени скомпрометированного хоста. SSRF может быть использована в DoS-кампаниях для маскировки реального источника атаки. В таких случаях уязвимый хост выступает в качестве прокси‑сервера.
Итак, в предыдущей статье мы провели провели разведку, обошли аутентификацию веб‑приложения и помимо прочего обнаружили в Burp History API — store-status. Этот эндпоинт принимает в качестве параметра URL и возвращает содержимое страницы.

Это типичная уязвимость SSRF, поэтому, используя Burp Intruder, просканируем внутренние сервисы на разных портах. Будем перебирать номер порта.



В итоге находим внутренние сервисы на портах 3002 и 8080. На первом обнаруживаем еще один API.

Давайте исследуем эти API.
LFI
В API all-leave находим вызов функции exec, которая выполняет команду awk с пользовательским вводом (имя пользователя из токена). Вызову предшествует фильтрация пользовательского ввода по указанному черному списку символов.


Эти символы мешают нам перейти к инъекции произвольных команд ОС, но мы можем внедрить путь и получить содержимое произвольного файла. Чтобы получить содержимое файла /etc/passwd, используем в качестве имени пользователя в токене последовательность
1 |
'/ /etc/passwd ' |

Теперь подумаем, какие файлы могут содержать важные для продвижения данные.
user
Первым делом я попытался прочитать приватный ключ пользователя, но такого в системе не оказалось. Идея с историей команд bash также потерпела неудачу. А вот файл .bashrc, который представляет собой скрипт, запускающийся каждый раз, когда пользователь открывает новую командную оболочку, показал нам файл с интересным названием.
1 |
'/ /home/bean/.bashrc ' |
Читаем скрипт для бэкапа рабочего каталога пользователя.
1 |
'/ /home/bean/Documents/backup_home.sh ' |
Этот скрипт открывает нам местоположение файла бэкапа, который мы, конечно же, скачиваем.
`’/ /home/bean/Documents/backup/bean_backup_final.tar.gz ‘
1 |
curl -i -s -k -X 'GET' -H 'Host: hat-valley.htb' -H 'Connection: close' -b 'token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IicvIC9ob21lL2JlYW4vRG9jdW1lbnRzL2JhY2t1cC9iZWFuX2JhY2t1cF9maW5hbC50YXIuZ3ogJyIsImlhdCI6MTY3MjU5MjIyMH0.P075hge2w85k97dORKjaOrqw7qLb_mLE7HLxX1htqYo' http://hat-valley.htb/api/all-leave --output backup.tar.gz |
В надежде найти какие‑нибудь заметки или конфиги с учетными данными ищем все упоминания имени пользователя по всем файлам в архиве.

Видим интересную строку в файле content-DS1ZS1. Теперь прочитаем данный файл, чтобы понимать контекст.

Это список задач, а внизу видим логин и найденную ранее строку. Предполагаем, что это пароль, и авторизуемся по SSH.

Заключение
Итак, мы смогли проэсплуатацировать уязвимости SSRF и LFI. В следующей статье, в рамках прохождения Awkward с площадки Hack The Box, мы будем искать способы повышения привилегий.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Автоматизация атак в Burp Suite
- Популярные расширения Burp Suite
- Взлом веб-сервера на Windows и Apache через SSRF