Как пользоваться Metasploit Framework: возможности, инструкция по применению

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

Программа представляет набор шелл-кодов, инструментов фаззинга, полезных нагрузок и кодировщиков, объединенных в единую платформу. Она доступна на платформах Linux, Windows, OS X. Ее главная цель - проверить компьютерную защиту организации, создавая искусственные атаки, провоцируя систему, что-то вроде «нарушить, защищая». Metasploit предлагает широкий спектр инструментов и утилит для таких атак на все операционные системы, включая Android и iOS.

История защиты публичного кода

История защиты публичного кода

Metasploit был первоначально разработан и задуман HD Moore (Мур) – экспертом по сетевой безопасности, программистом с открытым исходным кодом и хакером. Он стал разработчиком MSF, пакета программного обеспечения для тестирования на проникновение, а также основателем Metasploit Project.

Мур занимал должность главного научного сотрудника в охранной фирме Rapid7 в Бостоне, штат Массачусетс, поставщика программного обеспечения для защиты данных и аналитики, а также облачных решений. Он выпустил свое первое издание Msf на основе Perl в октябре 2003 года с общим количеством 11 эксплойтов и оставался главным архитектором Metasploit Framework вплоть до увольнения. Он объявил о своем уходе из Rapid7 в 2016 году, перейдя в фирму венчурного капитала.

Много пользователей внесли свой вклад в развитие MSF. Основное интеллектуальное вливание было в 2006 году, после чего база пополнилась 150+ эксплойтами. Затем в 3 версии произошли серьезные изменения. Она была перепрограммирована в Ruby, стала кроссплатформенной и обладала уникальным свойством - новые версии и модули легко загружались и добавлялись в ПО. В 2009 году Rapid7 приобрела весь проект, владельцем которого является до сих пор. Базовая архитектура Metasploit не изменилась, а версии так и остались бесплатными.

Полезная терминология

Полезная терминология метасплоит

Начало работы с Metasploit стартует после установки программы. ПО легко поможет установить файловую систему и библиотеки, так как оно интуитивно понятно. Metasploit основан на языке сценариев, поэтому имеет папку содержащие сценарии «meterpreter» и другие, требуемые платформой. MSF можно получить через GUI, а также версию командной строки.

Общие термины:

  1. Уязвимость - слабость в целевой системе, благодаря которой может успешно произойти проникновение.
  2. Эксплойт, как только уязвимость становится известной, злоумышленник использует ее и проникает в систему с помощью кода.
  3. Payload, полезная нагрузка, набор задач, инициированных злоумышленником после эксплойта, чтобы сохранить доступ к скомпрометированной системе.
  4. Single - автономная полезная нагрузка, выполняющая определенную задачу.
  5. Stager - облегчает доставку полезных функций и создает сетевое соединение между компьютерами злоумышленника и жертвы. Перед тем как пользоваться Metasploit загружают функции, через соединения, например, VNC и meterpreter.

Есть и другие сетевые и системные команды, которые нужно изучить для успешной работы с ПО. Захват нажатия клавиш легко выполняется с помощью набора команд пользовательского интерфейса «stdapi». Keyscan_start запускает службу, а keyscan_dump показывает захваченные нажатием клавиши.

Графические интерфейсы

Графические интерфейсы метасплоит

Новый графический интерфейс для Metasploit был добавлен ScriptJunkie в репозиторий SVN. Первая версия разработана в таких рамках, что фреймворк - это и функциональность, и долговечность. Новый графический интерфейс является мультиплатформенным и основан на Java. Проект Netbeans размещен в каталоге external / source / gui / msfguijava / для тех, кто хочет внести свой вклад и имеет навыки работы с Java и пользовательскими интерфейсами. GUI можно запустить, вызвав скрипт «msfgui» в базе каталога MSF.

Metasploit поставляется в различных интерфейсах:

  1. Msfconsole - интерактивная оболочка, для выполнения многопользовательских задач.
  2. Msfcli - вызывает функции msf из самого терминала /cmd, не меняя его.
  3. Msfgui - графический интерфейс.
  4. Armitag - еще один графический инструмент, написанный на Java, для управления пентестом, проводимым с MSF.
  5. Веб-интерфейс сообщества Metasploit, предоставленный rapid7 - это фреймворк, что позволяет выполнять легкое тестирования.
  6. CobaltStrike - еще один графический интерфейс с некоторыми дополнительными функциями для пост-эксплуатации и отчетности.

Модули Auxiliary, Encoders

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

Auxiliary вспомогательный модуль предоставляет дополнительные функциональные возможности, такие как фаззинг, сканирование, реконт, дос-атака и другие. Вспомогательное сканирование баннеров или операционных систем не выполняет DOS-атаку на цель. Он не вводит полезную нагрузку, как эксплойты, поэтому не сможет получить доступ к системе с помощью этого модуля.

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

Инструкции Shellcode и Listener

Shellcode - набор инструкций, используемых в качестве полезной нагрузки при эксплуатации, написанный на ассемблере. В большинстве случаев командная оболочка или оболочка Meterpreter будут предоставлены после того, как серия команд будет выполнена целевой машиной.

Инструкция «Слушатель» прослушивает соединения из полезной нагрузки, введенной в скомпрометированную систему. Модуль Post, как и следует из названия, применяются для последующей эксплуатации. После взлома углубляются в систему или устанавливают в качестве центра для атаки на другие системы.

Nop - No Operation, широко известная функция, благодаря процессорам x86, связана с шелл-кодом и инструкциями на машинном языке, предотвращает сбой программы при использовании операторов перехода в шелл-коде. Nops зацикливает инструкции машинного языка с самого начала, если они попадают в недопустимую область памяти после выдачи оператора перехода и не допускает сбой полезной нагрузки. Это очень продвинутая концепция, и разработчик должен понимать кодирование оболочки, перед тем как пользоваться Metasploit с преимуществами «nops».

Руководящие принципы

Руководящие принципы метасплоит

Большая часть поддержки Metasploit в сообществе с открытым исходным кодом предоставляется в виде модулей. Они должны проходить msftidy.rb и придерживаться руководящих принципов Contributing.md, оба распространяются с MSF.

Модули должны иметь четкую и очевидную цель: эксплойты приводят к оболочке, почтовые к повышению привилегий, вспомогательные относятся к категории «Все остальное», но даже они ограничены четко определенной задачей, например, сбором информации для использования. Они не должны активировать другие, учитывая сложность настройки нескольких полезных нагрузок. Такие действия являются задачами автоматизации для внешнего интерфейса, установленных перед тем, как запустить Metasploit.

Модули отказа в обслуживании должны быть асимметричными и, по крайней мере, иметь некоторые интересные особенности. Если это сопоставимо с синфлудом, то не должно быть включено. Если это сопоставимо с Baliwicked, то, наоборот, должно быть включено. Модули, slowloris, включаются с некоторым обоснованием.

Клиентские эксплойты Windows

MSF назначает каждому пользователю уникальный SID - идентификатор безопасности. Каждый поток имеет связанный первичный токен, содержащий информацию о таких аспектах, как привилегии и группы. Используя маркер олицетворения, процесс или поток могут временно принять идентичность какого-либо другого юзера. Как только ресурс израсходован, поток снова принимает основной токен.

Схемы атаки по жетонам:

  1. Локальное повышение привилегий. Если в системе с аутентификацией администратора запускается процесс с низкими привилегиями, для администратора доступен токен олицетворения. Если злоумышленник прекратит использовать какой-либо эксплойт, он получит доступ к токену олицетворения с правами администратора.
  2. Повышение привилегий домена. Здесь злоумышленник переходит на другие машины по сети, применяя маркер олицетворения.

Это может быть выполнено инкогнито в консоли «meterpreter», которую устанавливают перед тем как пользоваться Metasploit . Применяют команды, такие как «list_tokens, steal_tokens» и «impersonate_token», для выполнения операций. Если цель находится за брандмауэром или NAT, злоумышленник должен предоставить жертве ссылку, которая перенаправит его на свой компьютер - экземпляр Metasploit. Это необходимо, поскольку непосредственное зондирование цели невозможно.

Клиент и сервер на одной машине

Можно использовать версию Metasploit на русском для Windows, чтобы выполнять все тесты на одной машине. Платформа MSF требует прав администратора для установки в Windows. Она будет установлена по умолчанию в папку c: \ metasploit. AV на компьютере будет генерировать предупреждения при установке MSF в Win, поэтому создают правильные исключения.

Создание в Windows медленнее, чем в Linux. Для создания 32-битных и 64-битных исполняемых файлов для ввода полезной нагрузки Meterpreter применяет MSFVenom (c:\metasploit\msfvenom.bat).

Перечень команд:

  • «msfvenom.bat –help» покажет параметры;
  • «msfvenom.bat –list payloads» покажет полезные нагрузки;
  • «msfvenom.bat –help-format» покажет все выходные форматы.

Исполняемые форматы будут генерировать программы и сценарии, в то время как форматы преобразования будут просто создавать полезную нагрузку. Используют «msfvenom.bat» для создания 32-битного и 64-битного исполняемого файла с полезной нагрузкой «meterpreter_reverse_http», который определяют перед тем как пользоваться Metasploit. Если не указана платформа и архитектура, «msfvenom» выберет их в зависимости от полезной нагрузки.

Клиент и сервер на одной машине

Обработчик MSF теперь ожидает подключения, запускают «meterpreter-64.exe» с правами администратора. После запуска meterpreter-64.exe подключится к обработчику и будет ждать инструкций.

Инструмент тестирования безопасности

MSF является программной платформой для разработки, тестирования и выполнения эксплойтов. Она может использоваться для создания инструментов безопасности и применения модулей, а также в качестве системы на проникновение для Android.

Инструмент тестирования безопасности

Команды, необходимыми для выполнения:

  1. Создают APK и запускают эксплойт multi/handler.
  2. Открывают Kali Linux OS на Oracle VM VirtualBox. Логин по умолчанию: root/toor.
  3. Входят в виртуальную машину Kali Linux, используя учетные данные по умолчанию.
  4. Проверяют IP-адрес машины Kali. Вводят команду: ifconfig.
  5. Открывают терминал в Kali Linux и записывают IP-адрес системы.
  6. Открывают MSF с терминала: msfconsole.
  7. Выполняют команду: msf > use exploit/multi/handler.
  8. Устанавливают LHOST и LPORT командой «set».
  9. Запускают слушателя. Команда: msf> exploit.

В Metasploit команда use использует конкретную модель фреймворка. В этом случае нужен эксплойт «multi / handler», который облегчает прослушивание входящего подстановочного соединения. Команда «search» в «msfconsole» применяется для поиска по ключевому слову. В этой команде находят нагрузку Android meterpreter.

Наряду с командами «use» и «search», «set» - еще одна команда, используемая в MSF для установки конкретной полезной нагрузки для эксплойта - «show options», чтобы увидеть различные входные данные.

Установка приложения для Android

Metasploit termux - это приложение для Android, поддерживающее среду Linux.

Чтобы установить ПО, выполняют такие действия:

  1. Устанавливают Termux Google Play-Store.
  2. Вводят команду «apt update».
  3. Обновляют команду «apt install curl».
  4. Вводят «cd $ HOME».
  5. После завершения загрузки вышеуказанного файла вводят «ls», откроется файл «.sh».
  6. Вводят эту команду «chmod + x metasploitTechzindia.sh».
  7. Запускают скрипт по команде типа «sh metasploitTechzindia.sh».
  8. Вводят "ls".
  9. Находят папку «Metasploit-framework».
  10. Открывают папку «cd yourfoldername».
  11. Вводят команду «ls».
  12. Вводят «./msfconsole» для запуска MSF.

Обзор веб-интерфейса MSF

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

Обзор веб-интерфейса Msf

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

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

Обход антивируса

Для тестеров на проникновение, некоторые антивирусные решения по умолчанию не настроены на сканирование MSI-файлов или TMP-файлов, которые создаются при выполнении MSI-файлов. Используют «msfconsole» для создания файла MSI, который будет выполнять полезную нагрузку MSF.

Кроме того, можно сгенерировать MSI-файл с помощью сценария «msfvenom ruby», который поставляется вместе с Metasploit: msfvenom -p windows/adduser USER=Attacker PASS=Attacker123! -f msi > evil.msi.

Копируют файл «evil.msi» в целевую систему и запускают установку MSI из командной строки, чтобы выполнить полезную нагрузку Metasploit. С точки зрения теста на проникновение, использование параметра «/ quiet» удобно, поскольку оно подавляет сообщения, которые обычно отображаются пользователю.

Проверьте антивирусные журналы, чтобы увидеть, была ли определена полезная нагрузка. Также можно проверить, была ли выполнена полезная нагрузка, и добавить пользователя «Атакующий». Если информация о нем возвращается, то полезная нагрузка выполнена успешно.

Тестирование уязвимости

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

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

Чтобы запустить функцию сканера, выполняют инструкцию по применению Metasploit:

  1. Выбирают и настраивает эксплойт для таргетинга. Он будет нацелен на систему с целью воспользоваться дефектом ПО. Пул зависит от операционной системы и изменяется в зависимости от версии системы, постоянно увеличиваясь. В настоящее время Msf содержит более 400 эксплойтов для большинства современных операционных систем.
  2. Проверяют эксплойт против системы с целью выяснить, уязвима ли система для него.
  3. Выбирают и настраивает полезную нагрузку, в виде кода, запущенного после того, как сканер обнаружит точку входа в систему.
  4. Выбирают и настраивает метод кодирования и доставки, который будет использоваться. Цель этого шага - отформатировать полезную нагрузку таким образом, чтобы она могла обойти укоренившиеся системы обнаружения вторжений (IDS).
  5. Выполняют эксплойт.

Таким образом, MSI предлагает множество информации о безопасности. Это не просто эксплойты, это полная структура сетевой безопасности. В настоящее время в ПО нет недостатка в инструментах. Расширенные возможности Metasploit позволяют администраторам сканировать широкий спектр сетевых устройств и сообщать о любых найденных уязвимостях или соответствующим неверным настройкам безопасности.

Статья закончилась. Вопросы остались?
Подписаться
Я хочу получать
Правила публикации
Следят за новыми комментариями — 7
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.