В этом райтапе я покажу, как производить запись данных в Redis благодаря ошибке в настройках Nginx. Также мы проанализируем исходники веб‑приложений, чтобы найти ряд векторов для атаки: LFI, повышение роли пользователя и RCE. Для повышения привилегий будем эксплуатировать уязвимость f-строки в Python и получим скрытые данные приложения.
Упражняться мы будем на тренировочной машине Format с площадки Hack The Box. Уровень ее сложности — средний.
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Добавляем IP-адрес машины в /etc/hosts:
10.10.11.213 format.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).
Результат работы скрипта
Сканер нашел три открытых порта:
Дополнительно в параметре http-title на порте 3000 отмечаем редирект на
10.10.11.213 microblog.htb format.htb Главная страница сайта microblog.htb:3000
Веб‑сервер на порте 80 вернул код 404, а на 3000 нас встретил Git.
Мы сразу можем поискать открытые репозитории и пользователей.
Открытые репозитории в Git
Видим доступный репозиторий microblog. Скачиваем файлы проекта для изучения.
Содержимое репозитория microblog
Исходные коды нашли, а сайта пока не видно. Поскольку нам известно реальное доменное имя, нужно просканировать поддомены. Вдруг там доступны другие сайты? Для этого будем использовать утилиту ffuf.
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB.
Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
Место перебора помечается словом FUZZ.
Команда получается следующая:
ffuf -u
Находим два новых поддомена, поэтому обновим запись в файле /etc/hosts, а затем посмотрим, какие сайты там хостятся.
10.10.11.213 microblog.htb format.htb app.microblog.htb sunny.microblog.htb Главная страница сайта app.microblog.htbГлавная страница сайта sunny.microblog.htb
Начинаем изучать исходный код приложения и на втором сайте находим потенциальную уязвимость инъекции команд ОС в функции provisionProUser из файла edit/index.php. После предварительной проверки isPro() == true (строка 26) в функцию system передается результат выполнения другой функции getBlogName (строки 27–32).
Содержимое файла edit/index.php
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
9990 рублей 4000 р.
[TD]
920 р.
[/TD]
Я уже участник «Xakep.ru»
Упражняться мы будем на тренировочной машине Format с площадки Hack The Box. Уровень ее сложности — средний.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Добавляем IP-адрес машины в /etc/hosts:
10.10.11.213 format.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.4p1;
- 80 и 3000 — веб‑сервер Nginx 1.18.0.
Дополнительно в параметре http-title на порте 3000 отмечаем редирект на
You do not have permission to view link please Вход or Регистрация
. Добавляем этот домен в файл /etc/hosts и идем смотреть сайты.10.10.11.213 microblog.htb format.htb Главная страница сайта microblog.htb:3000
Веб‑сервер на порте 80 вернул код 404, а на 3000 нас встретил Git.
Точка входа
Мы сразу можем поискать открытые репозитории и пользователей.
Открытые репозитории в Git
Видим доступный репозиторий microblog. Скачиваем файлы проекта для изучения.
Содержимое репозитория microblog
Исходные коды нашли, а сайта пока не видно. Поскольку нам известно реальное доменное имя, нужно просканировать поддомены. Вдруг там доступны другие сайты? Для этого будем использовать утилиту ffuf.
Справка: сканирование веба c ffuf
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB.
Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
- -w — словарь (я использую словари из набора SecLists);
- -t — количество потоков;
- -u — URL;
- -H — HTTP-заголовок.
Место перебора помечается словом FUZZ.
Команда получается следующая:
ffuf -u
You do not have permission to view link please Вход or Регистрация
-w subdomains-top1million-110000.txt -t 256 -H ‘Host: FUZZ.microblog.htb’Результат сканирования поддоменов с помощью ffufНаходим два новых поддомена, поэтому обновим запись в файле /etc/hosts, а затем посмотрим, какие сайты там хостятся.
10.10.11.213 microblog.htb format.htb app.microblog.htb sunny.microblog.htb Главная страница сайта app.microblog.htbГлавная страница сайта sunny.microblog.htb
Точка опоры
Начинаем изучать исходный код приложения и на втором сайте находим потенциальную уязвимость инъекции команд ОС в функции provisionProUser из файла edit/index.php. После предварительной проверки isPro() == true (строка 26) в функцию system передается результат выполнения другой функции getBlogName (строки 27–32).
Содержимое файла edit/index.php
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
-60% |
1 year
9990 рублей 4000 р.
[TD]
1 month_r
920 р.
[/TD]
Я уже участник «Xakep.ru»