Как стать автором
Обновить

Атака на уязвимую систему SkyTower Vulnhub. Эксплуатация уязвимостей и получение доступа к системе. Часть 5

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров650

Всех приветствую, читатели Хабра!

Пятая часть анализа защищенности, правда в этот раз системы (серверной) Vulnhub. Да в этот раз, я поднял целую ОС на virtualbox, а не докер контейнер, соответственно в этой статье совершенно иной метод виртуализации, и соответственно способ атаки. Соответственно в этой части я расскажу где скачать данную ОС, как ее запустить, как атаковать, и как получить доступ. Однако как и предыдущие примеры, эта система так же относится к Vulnhub. И да, сразу скажу, что при атаке я опирался на статьи, написанные в зарубежных сегментах интернета (на английском языке), и здесь я делюсь своим опытом.

Вот ссылки на первые четыре части уязвимых веб-приложений, советую ознакомиться:

https://habr.com/ru/articles/894508/
https://habr.com/ru/articles/895092/
https://habr.com/ru/articles/895856/

https://habr.com/ru/articles/897296/

Примечание

Правовая информация:

Данная статья создана исключительно в ознакомительных/образовательных/развивающих целях.
Автор статьи не несет ответственности за ваши действия.
Автор статьи ни к чему не призывает, более того напоминаю о существовании некоторых статей в уголовном кодексе РФ, их никто не отменял:
УК РФ Статья 272. Неправомерный доступ к компьютерной информации
УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ
УК РФ Статья 274. Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей

Все атаки я проводил на локальный сервер, внутри моего сетевого интерфейса, на моем компьютере, то есть все действия легитимны.

И как всегда просьба не переходить на личности в комментариях, если вы обнаружили ошибку недочет или неточность, просто без оскорблений напишите комментарий или напишите мне личным сообщением.

Алгоритм атаки будет следующий:

  1. Скачивание образа виртуальной машины, запуск и настройка образа. Поиск системы внутри сетевого интерфейса

  2. Сканирование цели

  3. Энумерация

  4. Эксплуатация уязвимости

    4.1 Брутфорс сетевых служб

    4.2 Инъекция

  5. Получение доступа к системе

Итак приступим к практике

1) Скачивание образа виртуальной машины, запуск и настройка образа. Поиск системы внутри сетевого интерфейса

Скачать образ можно здесь https://www.vulnhub.com/entry/skytower-1,96/. На этой же страничке есть варианты прохождения. Сразу скажу что именно отсюда я и брал часть информации.

После того как архив скачан, его необходимо разархивировать. В папке, которая вышла из архива должен лежать файл SkyTower.vbox

К моменту когда я нашел файл у меня уже был установлен virtualbox. Если он не установлен то установить его не сложно. В Debian-подобных дистрибутивах это делается командами:

sudo apt update
sudo apt install virtualbox

Далее по файлу SkyTower.vbox достаточно щелкнуть два раза мышкой. В открывшемся окне виртуалки необходимо зайти в настройки системы (Settings)

А далее очень важный момент. Необходимо, чтобы атакующая ОС находилась в одном сетевом интерфейсе с атакуемой. Мой компьютер был скоммутирован через wi-fi, соответственно интерфейс на wlan0, а значит и у атакуемой ОС в сетевых настройках должен быть сетевой бридж (мост) wlan0.

Теперь узнаем ip цели.

Для этого сканируем диапазон адресов 192.168.167.??? nmap:

nmap 192.168.167.0-255

Таким образом я понял что моя цель находится по адресу 192.168.167.4

2) Сканирование цели

Сканируем цель, определяем открытые порты/сокеты и службы

nmap 192.168.167.4

Сразу же бросается в глаза 22/tcp порт со службой ssh. Правда данный порт отфильтрован. Также видно открытые порты 80 и 3128.

Зайдем в браузер по адресу 192.168.167.4

Веб-интерфейс с полями для авторизации.

Теперь сделаем сканирование еще одним сканером - nikto

nikto -h 192.168.167.4

И сразу видно очень интересную деталь - сканер определил, что цель имеет уязвимость CVE-2003-1418. Гуглим и на первой же страничке в поиске видим

Позволяет получить злоумышленнику удаленно конфиденциальную информацию через заголовок ETag и т. д.
Позволяет получить злоумышленнику удаленно конфиденциальную информацию через заголовок ETag и т. д.

На этом этапе уже обнаружена некоторая уязвимость. Хоть она и не эксплуатировалась, это уже победа.

3) Энумерация

Проведем энумерацию цели. В прошлых частях я писал о том что это такое, но сейчас повторюсь, энумерация - процесс перебора всех возможный файлов и папок (директорий), которые торчат "наружу" (в сеть), на целевом хосте (узле). Своего рода это брутфорс-атака, только по поиску (перебору) всех возможных файлов и мест в веб-приложении.

Приступаем. Введем две команды по очереди:

dirsearch -u 192.168.167.4
dirb 192.168.167.4

Особых результатов энумерация и не дала, но не стоит пренебрегать ею, так как с ее помощью возможно обнаружить очень интересные места внутри веб-приложения (атакуемой ОС). Видно что отсутствует папка /cgi-bin/ - код 403, имеются файлы index, index.html, background, login.php.

4) Эксплуатация уязвимости

Брутфорс

Теперь приступим непосредственно к атаке на цель. И первое что я пробовал - брутфорс (есть же порт ssh). А пробовал я с помощью ncrack и hydra (в этой статье я детально описал примеры использования https://habr.com/ru/articles/850188/):

ncrack -u user -P /usr/share/wordlists/rockyou.txt 192.168.167.4:22 -v
ncrack -u root -P /usr/share/wordlists/rockyou.txt 192.168.167.4:22 -v
hydra -l user -P /usr/share/wordlists/rockyou.txt ssh://192.168.167.4:22


Но брутфорс результатов не дал. Хотя это также хорошая практика для пентеста (так сказать "набить руку")

На этом этапе я пробовал другой способ

Инъекция

Вообще инъекция это настолько широкое понятие, что в данной статье я не буду его затрагивать, а лишь покажу пример. Инъекция - выполнение кода через веб приложение. В одной из предыдущих статей (https://habr.com/ru/articles/897296/) я рассмотрел пример XSS уязвимости, которая дает возможность выполнения кода javascript внутри веб-приложения.

В нынешнем примере я использовал sql-injection (изрядно покопавшись в сети).

На странице авторизации в поле ввода логина я ввел

' oorr 1 > 0 #

После чего нажав enter получил доступ к авторизованной странице

логин и пароль внизу. Вверху кстати почтовый адрес.
логин и пароль внизу. Вверху кстати почтовый адрес.

Отлично. Но на странице авторизации более ничего нет. Как использовать полученные данные?

5) Получение доступа к системе

Естественно сразу же я вспомнил про отфильтрованный порт 22 и естественно попытался войти удаленно в систему:

ssh john@192.168.167.4

Само собой ничего не вышло, так как порт отфильтрован. Покопавшись в различных источниках я понял что возможно создать сеанс по отфильтрованному ssh с помощью программы proxytunnel.

После чего создаем сеанс:

proxytunnel -p 192.168.167.4:3128 -d 127.0.0.1:22 -a 222

где 222 - локальный порт, 127.0.0.1 - локальный хост для сеанса по ssh через тунель к целевому хосту 192.168.167.4
где 222 - локальный порт, 127.0.0.1 - локальный хост для сеанса по ssh через тунель к целевому хосту 192.168.167.4

Сеанс запущен

Теперь все что осталось сделать - попытаться получить удаленный доступ к системе имея на руках учетные данные взломанного веб-приложения (инъекция).

Вводим в другой вкладке терминала:

sudo ssh john@127.0.0.1 -p 222

Подключение происходит, но сессия автоматически сразу обрывается, так как администраторы отредактировали файл .bashrc этого пользователя, чтобы завершить сеанс при подключении. Теперь все что необходимо - получить доступ к оболочке шелла (командной строки, терминала, консоли, кому как угодно). Ввел следующую команду:

sudo ssh john@127.0.0.1 -p 222 -t "/bin/sh"

И все получилось!

Получен доступ. Как видно из скриншота первое что я сделал, определил директорию pwd - директория /home/john. Директория оказалась пустой. Далее перешел в директорию /home - cd /home, посмотрел содержимое директории - ls. В директории кроме john есть каталоги sara и william. После чего я естественно захотел просмотреть файл /etc/passwd, введя команду

cat /etc/passwd

На скриншоте выше видно содержимое файла. В предыдущих статьях я уже неоднократно писал что доступ к файлу - уязвимость, причем серьезная (правда в данном случае я вообще получил доступ ко всей системе, а не только к этому файлу, со всеми вытекающими).

Сразу же получаю id пользователя введя команду

id

Очевидно, что раз в веб-приложении есть уязвимости sql, отсюда следует, что возможно получить с этого что то и в самой системе. Кое какая информация содержится в файле /var/www/login.php. В данном случае можно получить доступ к базе данных mysql.

Введя следующие три команды по очереди мы входим в клиент (естественно терминала) mysql, используем базу данных SkyTech и получаем доступ к паролям пользователей, так как они хранятся в незашифрованном виде.

mysql -uroot -proot
use SkyTech
show tables

Таким образом, я не только обнаружил уязвимость в веб-приложении, но и проэксплуатировал ее, получив сначала доступ к системе одного пользователя, а затем и учетные данные других пользователей

А на этом у меня сегодня все, уважаемые читатели Хабра, до новых встреч!

Теги:
Хабы:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Публикации