Metasploit инструкция по применению.

Metasploit — это мощный открытый фреймворк с продуманной архитектурой, сотнями  контрибьюторов, который включает в себя тысячи модулей для автоматизации эксплуатации огромного количества уязвимостей. Несмотря на то что мы часто упоминаем Metasploit на нашем сайте, многие только знакомятся с ним. Мы решили помочь начинающим пентестерам и запускаем новый цикл статей, который познакомит тебя с основными возможностями этого замечательного инструмента.

ПРЕДЫСТОРИЯ

История Metasploit берет начало в 2003 году. HD Moore, работавший пентестером в небольшой консалтинговой компании, заметил, что хранение и использование средств анализа безопасности организованы неудобно. На тот момент это был просто набор разрозненных эксплойтов и скриптов, общие сведения о которых хранились в базе данных. Информация о необходимом окружении для запуска скриптов, как правило, отсутствовала. Также они несли в себе кучу устаревшего кода, требовали модификации жестко прописанных путей для каждого конкретного случая, что весьма затрудняло рабочий процесс и усложняло разработку новых инструментов.

В Metasploit автор, пытаясь решить эту проблему, создал консольную утилиту на Perl с  псевдографическим интерфейсом и включил в нее порядка одиннадцати эксплойтов. Сообщество встретило первую версию Metasploit весьма холодно, изрядно раскритиковав как архитектуру, так и саму идею. Тем не менее HD Moore не сдался и даже нашел сподвижника в лице spoonm, с которым они довели до ума модульную архитектуру фреймворка и выпустили вторую версию в 2004 году. Со временем фреймворк стал набирать популярность и обретать новых контрибьюторов.

[ad name=»Responbl»]

Следующим значимым шагом был перевод Metasploit c Perl на Ruby, для того чтобы избежать ограничений Perl, обеспечить кросс-платформенность и добиться большей гибкости при разработке. В 2009 году фреймворк приобрела компания Rapid7, под эгидой которой продолжилось развитие open source версии, а также стали появляться коммерческие версии продукта. Сам фреймворк давно перерос статус простого набора для пентестера, и сегодня можно его можно встретить (хотя и нечасто) даже в арсенале «мирных» системных администраторов и программистов.

ВЕРСИИ

На момент написания статьи Metasploit распространяется в четырех версиях:
• Framework — базовая версия с консольным интерфейсом;
• Community — бесплатная версия, включающая дополнительно веб-интерфейс и часть функционала из коммерческих версий;
• Express — для коммерческих пользователей, включает функционал, позволяющий упростить проведение базовых аудитов и формирование отчетности по ним;
• Pro — самая продвинутая версия, предоставляет расширенные возможности для проведения атак, позволяет формировать цепочки задач для аудита, составлять подробную отчетность и многое другое.
Помимо веб-интерфейса, доступного в версиях Community, Express и Pro, существуют такие проекты, как Armitage и Cobalt strike, предоставляющие GUI-интерфейс для фреймворка.

База данных

Еще один момент, который стоит учесть, — это использование фреймворком базы данных для хранения информации о хостах, сервисах, уязвимостях и прочем. Подключение к базе — *необязательное условие* для функционирования фреймворка, но тем не менее многие предпочтут воспользоваться этим функционалом для удобства и повышения производительности.

Metasploit использует PostgreSQL, поэтому тебе понадобится установить ее на свою систему. Затем убедиться, что запущены нужные сервисы БД и фреймворка. Запустить их можно соответствующими командами (команды приводятся для Kali Linux, могут отличаться в твоем дистрибутиве):

service postgresql start
service metasploit start

 Далее проверим, что фреймворк успешно установил подключение. Откроем консоль Metasploit командой msfconsole, а затем выполним db_status, в ответ на которую система должна вернуть, что соединение с базой установлено.

СТРУКТУРА ФРЕЙМВОРКА

«Сердце» Metasploit — библиотека Rex. Она требуется для операций общего назначения: работы с сокетами, протоколами, форматирования текста, работы с кодировками и подобных. На ней базируется библиотека MSF Core, которая предоставляет базовый функционал и «низкоуровневый» API. Его использует библиотека MSF Base, которая, в свою очередь, предоставляет API для плагинов, интерфейса пользователя (как консольного, так и графического), а такжемодулей.
На модулях стоит остановиться подробнее. Они делятся на несколько типов, в зависимости от предоставляемой функциональности:
• Exploit — код, эксплуатирующий определенную уязвимость на целевой системе (например, переполнение буфера);
• Payload — код, который запускается на целевой системе после того, как отработал эксплойт (устанавливает соединение, выполняет шелл-скрипт и прочее);
• Post — код, который запускается на системе после успешного проникновения (например, собирает пароли, скачивает файлы);
• Encoder — инструменты для обфускации модулей с целью маскировки от антивирусов;
• NOP — генераторы NOP’ов. Это ассемблерная инструкция, которая не производит никаких действий. Используется, чтобы заполнять пустоту в исполняемых файлах, для подгонки под необходимый размер;
• Auxiliary — модули для сканирования сети, анализа трафика и так далее.

Структура Metasploit
Структура Metasploit

КОМАНДЫ MSFCONSOLE

Несмотря на наличие графических интерфейсов, самым распространенным способом работы с Metasploit по-прежнему остается консольный интерфейс msfconsole. Рассмотрим основные команды:
• use — выбрать определенный модуль для работы с ним;
• back — операция, обратная use: перестать работать с выбранным модулем и вернуться назад;
• show — вывести список модулей определенного типа;
• set— установить значение определенному объекту;
• run — запустить вспомогательный модуль после того, как были установлены необходимые опции;
• info — вывести информацию о модуле;
• search — найти определенный модуль;
• check — проверить, подвержена ли целевая система уязвимости;
• sessions — вывести список доступных сессий.

ПЕНТЕСТ WORDPRESS

Предлагаю, вооружившись полученными знаниями, в качестве «Hello world» провести простейший пентест сайта на WordPress.

Тестовое окружение

Для начала необходимо поднять тестовое окружение. Для этого я буду пользоваться связкой  VirtualBox + Vagrant и проектом VCCW, который позволит развернуть готовую виртуалку с  WordPress на борту буквально парой команд в консоли. Подробные инструкции ты сможешь найти на сайте проекта, здесь я покажу основные шаги.
Добавляем базовый образ:

vagrant box add miya0001/vccw

 Затем скачиваем с сайта проекта архив с Vagrantfile, кукбуками Chef и прочим, распаковываем, переходим в папку, где лежит Vagrantfile, и выполняем команду

vagrant up

После этого у тебя должна подняться машина с развернутым WordPress, доступная по адресу 192.168.33.10. Стоит отметить, что это уже готовый сетап, где настроена база и заведена админская учетка. Логин и пароль от нее указаны на сайте, но мы их узнаем другим путем.
Пентест
Откроем консоль Metasploit:

msfconsole

 Запустим поиск по слову wordpress, чтобы найти необходимый модуль:

search wordpress

 Среди появившегося многообразия нас интересует модуль auxiliary/scanner/http/wordpress_login_enum, который отвечает за брутфорс аутентификации WordPress.

Результаты поиска модулей по запросу wordpress
Результаты поиска модулей по запросу wordpress

[ad name=»Responbl»]

Выберем его для работы:

use auxiliary/scanner/http/wordpress_login_enum

 Чтобы понять, как его использовать, можно ввести команду info, которая выведет краткое описание модуля и список используемых параметров. Прежде всего, укажем адрес хоста, на котором расположен сайт:

set RHOSTS 192.168.33.10

 Для брутфорса будет использоваться перебор по словарю. В данном случае известно, что пароль несложный, поэтому подойдет практически любой список ненадежных паролей, которых достаточно в сети. Укажем путь к нему:

set PASS_FILE /root/10k-common-passwords.txt
Процесс перебора пароля по словарю в Metasploit
Процесс перебора пароля по словарю в Metasploit

 По умолчанию модуль продолжит перебирать пароли, даже встретив нужный. Это полезно, когда на сайте больше одной учетной записи. В нашем случае нужно просто остановиться, когда пароль будет найден. Для этого тоже имеется соответствующая опция:

set STOP_ON_SUCCESS true

 Также можно запретить вывод в консоль всех малозначимых сообщений, вроде неудачных попыток авторизации:

set VERBOSE false

 Теперь, когда подготовительные действия совершены, осталось ввести последнюю короткую команду и ждать результата:

run

 После окончания процесса мы увидим в выводе командной строки, что на сайте был найден пользователь с именем admin и пароль, который к нему подошел, был тоже admin.

wordpress bruteforce
BruteForce атака завершилась успешно

ИТОГ

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

Click to rate this post!
[Total: 12 Average: 3.3]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

2 comments On Metasploit инструкция по применению.

Leave a reply:

Your email address will not be published.