💡 Что такое Metasploit и зачем он вам — это мощный фреймворк для тестирования безопасности, который объединяет поиск уязвимостей, создание эксплойтов, работу с базами данных и управление сессиями в одной консоли. Мы установим официальную версию от Rapid7 через APT-репозиторий, не заменяя системные пакеты Ruby, Python или PostgreSQL.
⚠️ Важное предупреждение: Metasploit — это инструмент с двойным назначением. Используйте его только на системах, которыми вы владеете, управляете или имеете письменное разрешение на проверку. Всегда держите лабораторные цели отдельно от рабочих систем.
Предварительные требования
Прежде чем начать, убедитесь, что ваша система готова:
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает:
sudo— выполняет команду от имени суперпользователяwhoami— показывает имя текущего пользователя
Зачем: Проверяет, может ли ваш пользователь выполнять команды с правами root.
✅ Если выводит root — всё в порядке, можете продолжать.
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Дополнительные требования:
- Стабильное интернет-соединение
- Около 1.3 ГБ свободного места (400 МБ загрузка + 900 МБ после установки)
- Debian 11/12/13 (amd64, arm64, armhf или i386)
Выбор источника установки Metasploit
Rapid7 предоставляет несколько способов установки Metasploit. Мы будем использовать официальный APT-репозиторий — это предпочтительный метод для лабораторных систем.
| Способ установки | Статус на Debian | Когда использовать |
|---|---|---|
| APT-репозиторий Rapid7 | Официальные пакеты для Debian/Ubuntu | Рекомендуется для обычных лабораторных систем |
| Snap-пакет | Отдельный пакет от третьих лиц | Только если вы осознанно хотите использовать Snap |
| Исходный код | Для разработчиков | Если вы планируете менять код Metasploit |
⚠️ ВАЖНО: Безопасность при добавлении сторонних репозиториев
Добавление стороннего APT-репозитория даёт его владельцу возможность устанавливать обновления для пакета.
- Rapid7 — официальный разработчик Metasploit, это доверенный источник
- Вы добавляете ключ подписи Rapid7, что гарантирует подлинность пакетов
- Убедитесь, что вы скачали ключ с официального сайта
apt.metasploit.com
Риски сторонних репозиториев: Злоумышленник, скомпрометировавший репозиторий, может подменить пакет.
Всегда добавляйте только репозитории официальных разработчиков и проверяйте отпечатки ключей.
⚠️ Используйте только один способ установки на одной системе. Смешивание APT, Snap и исходного кода может привести к тому, что команда msfconsole будет запускать не ту версию.
Установка Metasploit Framework на Debian
Шаг 1: Обновление системы и установка вспомогательных инструментов
sudo apt update
Что делает:
sudo— права суперпользователяapt update— обновляет список доступных пакетов из репозиториев
Зачем: Всегда обновляйте список пакетов перед установкой нового ПО, чтобы получить актуальные версии.
sudo apt install ca-certificates curl gpg -y
Что делает:
ca-certificates— сертификаты для проверки HTTPS-соединенийcurl— инструмент для загрузки файлов из интернетаgpg— для работы с криптографическими ключами-y— автоматически подтверждает установку
Зачем: Эти пакеты нужны для безопасной загрузки ключа подписи Rapid7.
💡 Важно: Не устанавливайте пакет postgresql из Debian. Rapid7 поставляет свою версию PostgreSQL, которая работает в изоляции под вашим пользователем.
Шаг 2: Добавление ключа подписи Rapid7
curl -fsSL https://apt.metasploit.com/metasploit-framework.gpg.key | sudo gpg --dearmor --yes -o /usr/share/keyrings/metasploit-framework.gpg
Что делает:
curl -fsSL— загружает ключ,-fвозвращает ошибку при серверной ошибке,-sтихий режим,-Sпоказывает ошибки,-Lследует за перенаправлениями|— передаёт вывод curl на вход gpgsudo gpg --dearmor— преобразует ключ в бинарный формат--yes— автоматически подтверждает перезапись-o /usr/share/keyrings/metasploit-framework.gpg— сохраняет ключ в стандартную директорию
Зачем: Ключ используется APT для проверки подлинности пакетов Metasploit.
Проверка отпечатка ключа:
gpg --quiet --show-keys --with-fingerprint /usr/share/keyrings/metasploit-framework.gpg
Что делает: Показывает отпечаток и информацию о ключе.
✅ Ожидаемый вывод в терминале:
pub rsa4096 2015-05-26 [SC] [expires: 2030-01-11]
97B3 2012 EA11 76F0 5372 7A95 C048 F0B4 9DEE C457
uid Release Engineering <r7_re@rapid7.com>
Зачем: Проверка отпечатка гарантирует, что вы загрузили правильный ключ Rapid7, а не поддельный.
Шаг 3: Создание APT-источника Metasploit
Rapid7 использует имя lucid в качестве кодового имени репозитория — это нормально, не меняйте его на trixie, bookworm или bullseye.
(
set -e
arch="$(dpkg --print-architecture)"
case "$arch" in
amd64|arm64|armhf|i386)
printf '%s\n' \
'Types: deb' \
'URIs: https://apt.metasploit.com' \
'Suites: lucid' \
'Components: main' \
"Architectures: $arch" \
'Signed-By: /usr/share/keyrings/metasploit-framework.gpg' | sudo tee /etc/apt/sources.list.d/metasploit-framework.sources > /dev/null
;;
*)
printf 'Rapid7 does not publish Metasploit APT packages for %s.\n' "$arch" >&2
exit 1
;;
esac
)
Что делает:
set -e— прерывает выполнение при ошибкеdpkg --print-architecture— определяет архитектуру вашего процессора (amd64, arm64, armhf, i386)case— проверяет, поддерживает ли архитектура пакеты Metasploitprintf— формирует содержимое файла источникаsudo tee— записывает файл от имени root (обычное перенаправление>не сработает из-за прав)
Зачем: Создаёт современный DEB822-файл источника, который легче читать и удалять, чем старый .list-файл.
Если ваша архитектура не в списке поддерживаемых, вы увидите сообщение об ошибке.
Шаг 4: Обновление APT и установка Metasploit
sudo apt update
Что делает: Обновляет список пакетов, теперь включая репозиторий Rapid7.
apt-cache policy metasploit-framework
Что делает: Показывает, откуда будет установлен пакет и какая версия доступна.
Что ищем: В выводе должна быть строка с https://apt.metasploit.com. Если её нет — репозиторий добавился неправильно.
sudo apt install metasploit-framework -y
Что делает: Устанавливает Metasploit Framework.
Зачем: APT автоматически загрузит и установит все зависимости.
Ожидаемый размер: ~400 МБ загрузка, ~900 МБ на диске.
Проверка установки Metasploit
command -v msfconsole
Что делает: Проверяет, находится ли msfconsole в путях поиска команд.
✅ Ожидаемый вывод: /usr/bin/msfconsole
dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package}\n' metasploit-framework
Что делает: Показывает статус пакета Metasploit.
Что означают символы:
ii— пакет установлен корректноiUилиiF— пакет не доустановлен (проблемы с зависимостями)
✅ Ожидаемый вывод: ii metasploit-framework
Настройка базы данных Metasploit
Metasploit может работать без базы данных, но с ней вы получаете workspace (рабочие пространства), которые сохраняют хосты, сервисы, заметки и результаты сканов между сессиями.
msfdb init --use-defaults
Что делает: Инициализирует персональную базу данных PostgreSQL в ~/.msf4/db.
✅ Ожидаемый вывод:
Running the 'init' command for the database:
Creating initial database schema
Database initialization successful
Проверка состояния базы данных:
msfdb status
Что делает: Показывает, запущена ли база данных.
✅ Ожидаемый вывод:
Running the 'status' command for the database:
Database started
💡 Важно: Некоторые кастомные сборки Rapid7 могут показывать предупреждения RubyGems перед нормальным выводом. Игнорируйте их, если статус базы данных — Database started.
Проверка подключения из msfconsole:
msfconsole -q -x 'db_status; exit -y'
Что делает:
-q— тихий режим (без баннера)-x— выполняет команды и выходитdb_status— показывает статус подключения к БДexit -y— выходит без подтверждения
✅ Ожидаемый вывод: [*] Connected to msf. Connection type: postgresql.
Первый запуск Metasploit
msfconsole
Что делает: Запускает интерактивную консоль Metasploit.
Зачем: Это основное рабочее место для всех операций.
После запуска вы увидите приглашение msf6 >. Теперь можно выполнять простые команды (только чтение, без воздействия на цели):
| Команда | Что делает | Пример использования |
|---|---|---|
help | Показывает справку по всем командам | help |
search | Ищет модули по критериям | search type:auxiliary name:scanner |
info | Показывает информацию о модуле | info auxiliary/scanner/ssh/ssh_version |
db_status | Проверяет подключение к БД | db_status |
exit -y | Выходит без подтверждения | exit -y |
Пример работы:
msf6 > help
msf6 > search type:auxiliary name:scanner
msf6 > info auxiliary/scanner/ssh/ssh_version
msf6 > exit -y
Понимание модулей Metasploit
| Тип модуля | Назначение | Когда использовать |
|---|---|---|
| auxiliary | Сканеры, переборщики, вспомогательные модули (без эксплуатации) | Для сбора информации и сканирования |
| exploit | Модули, использующие уязвимости | Только против авторизованных целей |
| payload | Код, выполняемый после эксплуатации | После успешной эксплуатации |
| post | Модули для уже полученной сессии | После получения доступа |
⚠️ Важное предупреждение о безопасности:
- Запускайте модули
exploitТОЛЬКО против систем, на которые у вас есть письменное разрешение - Некоторые
auxiliary-модули могут выполнять DoS-атаки (отказ в обслуживании) или другие действия, нарушающие работу цели. Всегда изучайте модуль командойinfoперед запуском - Не запускайте сканеры и переборщики на чужих сетях без разрешения владельца
Обновление Metasploit
Так как мы установили через APT, обновление также выполняется через него:
sudo apt update
sudo apt install --only-upgrade metasploit-framework -y
Что делает:
--only-upgrade— обновляет только если пакет уже установлен (не установит заново)
Зачем: Получает последнюю ночную сборку Rapid7.
Удаление Metasploit (если потребуется)
Шаг 1: Удаление базы данных
msfdb delete
Что делает: Останавливает PostgreSQL и удаляет базу данных Metasploit.
Что увидите: Вопрос Would you like to delete your existing data and configurations? []:. Введите yes и нажмите Enter.
Шаг 2: Полное удаление пакета
sudo apt purge metasploit-framework -y
Что делает: Удаляет пакет и все его конфигурационные файлы.
Шаг 3: Удаление файлов репозитория
sudo rm -f /etc/apt/sources.list.d/metasploit-framework.sources
sudo rm -f /etc/apt/sources.list.d/metasploit-framework.list
sudo rm -f /etc/apt/sources.list.d/metasploit.list
Что делает: Удаляет файлы источника Metasploit (включая устаревшие).
Шаг 4: Удаление ключа (если он не используется другими источниками)
for keyring in /usr/share/keyrings/metasploit-framework.gpg /usr/share/keyrings/metasploit.gpg; do
if find /etc/apt/sources.list /etc/apt/sources.list.d -type f -print0 2>/dev/null | xargs -0r grep -Fqs -- "$keyring"; then
printf 'Metasploit keyring still referenced by another APT source: %s\n' "$keyring"
else
sudo rm -f "$keyring"
fi
done
Что делает: Проверяет, не ссылается ли на ключ другой источник, и удаляет, если нет.
Шаг 5: Удаление пользовательских данных
rm -rf "$HOME/.msf4"
Что делает: Удаляет все настройки, логи и данные Metasploit для текущего пользователя.
Шаг 6: Обновление кэша команд
hash -r
sudo apt update
Что делает: Очищает кэш путей команд и обновляет список пакетов.
Проверка удаления:
command -v msfconsole || echo "msfconsole removed"
dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package}\n' metasploit-framework 2>/dev/null || echo "metasploit-framework package record removed"
Решение типичных проблем
8.1 Ошибка: APT не может проверить репозиторий Metasploit
Симптом: При sudo apt update появляется ошибка GPG или «Signature key not trusted».
Причина: Отсутствует ключ подписи, файл источника указывает на неправильный путь к ключу, или остались старые файлы репозитория.
Пошаговое решение:
Шаг 1: Проверьте существующие файлы репозитория:
cat /etc/apt/sources.list.d/metasploit-framework.sources
Что делает: Показывает содержимое файла источника.
Шаг 2: Проверьте ключ:
gpg --quiet --show-keys --with-fingerprint /usr/share/keyrings/metasploit-framework.gpg
Что делает: Показывает отпечаток ключа.
Шаг 3: Удалите все устаревшие файлы:
sudo rm -f /etc/apt/sources.list.d/metasploit-framework.list
sudo rm -f /etc/apt/sources.list.d/metasploit.list
sudo rm -f /usr/share/keyrings/metasploit.gpg
sudo apt update
Что делает: Удаляет старые .list-файлы и ключи.
Шаг 4: Повторите шаги 2-3 из раздела установки (добавление ключа и создание источника).
8.2 Ошибка: APT не показывает пакет Metasploit
Симптом: apt-cache policy metasploit-framework не показывает кандидата или нет apt.metasploit.com в выводе.
Причина: Репозиторий не добавился или архитектура не поддерживается.
Пошаговое решение:
Шаг 1: Проверьте архитектуру:
dpkg --print-architecture
Что делает: Показывает архитектуру процессора.
Поддерживаемые архитектуры: amd64, arm64, armhf, i386. Если ваша архитектура другая — APT-установка невозможна.
Шаг 2: Проверьте файл источника:
cat /etc/apt/sources.list.d/metasploit-framework.sources
Что ищем: Должен быть блок с URIs: https://apt.metasploit.com.
Шаг 3: Обновите APT и проверьте снова:
sudo apt update
apt-cache policy metasploit-framework
8.3 Ошибка: Metasploit не подключается к базе данных
Симптом: msfconsole -q -x 'db_status; exit -y' показывает postgresql selected, no connection.
Причина: База данных не инициализирована или остановлена.
Пошаговое решение:
Шаг 1: Проверьте состояние базы:
msfdb status
Что ищем: Если видите Database started — база работает, проблема в другом.
Шаг 2: Если база остановлена, запустите:
msfdb start
Шаг 3: Если база не существует, инициализируйте:
msfdb init --use-defaults
Шаг 4: Проверьте подключение:
msfconsole -q -x 'db_status; exit -y'
8.4 Появляются предупреждения Ruby Gem
Симптом: При msfdb status или msfconsole появляются строки:
WARN: Unresolved or ambiguous specs during Gem::Specification.reset:
base64 (>= 0.2)
logger (~> 1.6)
Причина: Это предупреждения от встроенной в Metasploit версии Ruby, а не системной. Они не влияют на работу.
Пошаговое решение:
Шаг 1: Проверьте, что база данных работает:
msfdb status
Что ищем: Строку Database started после предупреждений.
Шаг 2: Проверьте подключение в консоли:
msfconsole -q -x 'db_status; exit -y'
Шаг 3: Если Database started и Connected to msf — игнорируйте предупреждения. Они не требуют исправления.
💡 Не пытайтесь исправить предупреждения очисткой системной Ruby — это может повредить Debian.
Чек-лист: что проверить после установки
- [ ]
sudo whoamiвыводитroot - [ ]
command -v msfconsoleпоказывает/usr/bin/msfconsole - [ ]
dpkg-query -W metasploit-frameworkпоказываетii - [ ]
msfdb statusпоказываетDatabase started - [ ]
msfconsole -q -x 'db_status; exit -y'показываетConnected to msf - [ ]
msfconsoleзапускается и показывает приглашениеmsf6 > - [ ] В консоли работает команда
help - [ ] В консоли работает команда
search type:auxiliary - [ ]
exit -yзакрывает консоль без ошибок
Заключение
Metasploit Framework успешно установлен на Debian через официальный APT-репозиторий Rapid7. Вы настроили базу данных, проверили работу консоли и готовы к безопасному тестированию в лабораторной среде.
Что дальше:
- Изучите базовые команды с официальной документацией Rapid7
- Для сканирования сети установите Nmap на Debian
- Настройте Fail2Ban для защиты ваших серверов
💡 Важно: Всегда помните об этичном использовании. Metasploit — мощный инструмент, и с мощью приходит ответственность. Используйте его только на системах, которые вы имеете право проверять.