В одной из прошлых статей мы публиковали Гид по Kali Linux, практического руководства по использованию дистрибутива Kali Linux для аудита ИБ и проведения пен-тестов. Сегодня же мы обратим пристальное внимание на один из инструментов входящих в данный дистрибутив - Metasploit Framework. Рассмотри историю возникновения проекта, а так приведем конкретные руководства и документации способствующие практическому освоению пакета Metasploit
История проекта
В 2003 году, хакеру, известному как «HD Moore», пришла в голову идея разработать инструмент для быстрого написания и использования эксплоитов. Так на свет появился известный во всех кругах проект Metasploit project.
Первая версия фреймфорка была написана на языке Perl, содержавшая псевдографический интерфейс на базе библиотеки curses. На тот момент это был просто набор разрозненных эксплойтов и скриптов, общие сведения о которых хранились в единой базе данных. Информация о необходимом окружении для запуска скриптов, как правило, отсутствовала. Также они несли в себе кучу устаревшего кода, требовали модификации жестко прописанных путей для каждого конкретного случая, что весьма затрудняло рабочий процесс и усложняло разработку новых инструментов.
При работе над второй (2.x) версией к HD Moore присоединился Мэтт Миллер и еще несколько добровольцев. Третья версия была полностью переписана на Ruby, её разрабатывала компания Metasploit LLC (основанная вспе теми же разработчиками в 2006 году). Через год в 2008 лицензия Metasploit Framework была сменена с проприетарной на BSD. А еще позднее в 2009 году фирма Rapid7, занимающаяся управлением уязвимостями, объявила о приобретении Metasploit, программного пакета двойного назначения для проведения тестов на проникновение. Так же сообщалось, что некоммерческая версия утилиты по-прежнему будет доступна для всех желающих.
С момента приобретения фреймфорка, многое изменилось.
Появились PRO и Community версии, а в 2010 году, в свет вышла более упрощенная версия для «малоквалифицированных» пользователей — Metasploit Express.
Версии
Сегодня Metasploit распространяется в четырех версиях:
Framework — базовая версия с консольным интерфейсом;
Community — бесплатная версия, включающая дополнительно веб-интерфейс и часть функционала из коммерческих версий;
Express — для коммерческих пользователей, включает функционал, позволяющий упростить проведение базовых аудитов и формирование отчетности по ним;
Pro — самая продвинутая версия, предоставляет расширенные возможности для проведения атак, позволяет формировать цепочки задач для аудита, составлять подробную отчетность и многое другое.
Помимо веб-интерфейса, доступного в версиях Community, Express и Pro, существуют такие проекты, как Armitage и Cobalt strike, предоставляющие дружелюбный и интуитивно понятный GUI-интерфейс для фреймворка.
Armitage графическая оболочка
По сравнению с остальными интерфейсами Armitage позволяет в наглядном виде представить все этапы атаки, включая: сканирование узлов сети, анализ защищенности обнаруженных ресурсов, выполнение эксплоитов и получение полного контроля над уязвимой системой.
Все функции программы структурированы и легкодоступны из меню и вкладок программы, даже для начинающего исследователя компьютерной безопасности. Программа предназначена для использования на платформах Linux и Windows. На веб-сайте разработчиков присутствуют исходные коды, справочные руководства в текстовом и видео формате.
Базовые понятия
1. База данных
До начала работы с пакетом нужно учесть возможность использования базы дынных, для хранения информации о хостах, сервисах, уязвимостях и прочем. Подключение к базе весьма не обязательное условие для функционирования фреймворка, но тем не менее повышающее удобство использоавния производительность.
Metasploit использует PostgreSQL, поэтому до начала работы с ним понадобится установить СУБД на свою систему. Затем убедиться, что запущены нужные сервисы БД и фреймворка.
2. Структура фремворка
«Сердце» Metasploit — библиотека Rex. Она требуется для операций общего назначения: работы с сокетами, протоколами, форматирования текста, работы с кодировками и подобных. На ней базируется библиотека MSF Core, которая предоставляет базовый функционал и «низкоуровневый» API. Его использует библиотека MSF Base, которая, в свою очередь, предоставляет API для плагинов, интерфейса пользователя (как консольного, так и графического), а также подключаемых модулей.
Все модули делятся на несколько типов, в зависимости от предоставляемой функциональности:
Exploit — код, эксплуатирующий определенную уязвимость на целевой системе (например, переполнение стека)
Payload — код, который запускается на целевой системе после того, как отработал эксплойт (устанавливает соединение, выполняет шелл-скрипт и прочее)
Post — код, который запускается на системе после успешного проникновения (например, собирает пароли, скачивает файлы)
Encoder — инструменты для обфускации модулей с целью маскировки от антивирусов
NOP — генераторы NOP’ов. Это ассемблерная инструкция, которая не производит никаких действий. Используется, чтобы заполнять пустоту в исполняемых файлах, для подгонки под необходимый размер
Auxiliary — модули для сканирования сети, анализа трафика и так далее.
3. Общие команды MSFCONSOLE
Несмотря на наличие графических интерфейсов, самым распространенным способом работы с Metasploit по-прежнему остается консольный интерфейс msfconsole.
Рассмотрим основные команды:
use — выбрать определенный модуль для работы с ним;
back — операция, обратная use: перестать работать с выбранным модулем и вернуться назад;
show — вывести список модулей определенного типа;
set— установить значение определенному объекту;
run — запустить вспомогательный модуль после того, как были установлены необходимые опции;
info — вывести информацию о модуле;
search — найти определенный модуль;
check — проверить, подвержена ли целевая система уязвимости;
sessions — вывести список доступных сессий.
Документация
Мы не много познакомиться с историей проекта, кратко разобрались в базовых понятиях, теперь настало время приступить к изучению возможностей пакета.
На официальном сайта разработчика размещен Metasploit Framework Pro User Guide, подробно описывающий все возможные фичи пакета и их применение в реальных условиях. Не смотря на то, что гид написан на английском языке, объясняется все довольно четко и интуитивно понятно.
Для начинающих пользователей ей гид попроще
Metasploit Framework User Guide, он содержит более упрощенное описание пакета, но хорошо иллюстрирует способы использования команд.
Инструкция с подробным описанием шагов установки фреймворка на Linux можно забрать здесь
Для тех, кто все таки желает читать документацию на русском существует проект неофициального перевода, ознакомиться с материалом можно тут
Ну и для тех, кто любит изучать все на примерах и к тому же с картинками могут посетить этот ресурс.
Книги
Learning Metasploit Exploitation and Development
Год издания: 2013
Автор: Aditya Balapure
Издательство: Packt Publishing
Table of Contents 1: Lab Setup 2: Metasploit Framework Organization 3: Exploitation Basics 4: Meterpreter Basics 5: Vulnerability Scanning and Information Gathering 6: Client-side Exploitation 7: Post Exploitation 8: Post Exploitation – Privilege Escalation 9: Post Exploitation – Cleaning Up Traces 10: Post Exploitation – Backdoors 11: Post Exploitation – Pivoting and Network Sniffing 12: Exploit Research with Metasploit 13: Using Social Engineering Toolkit and Armitage
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.