Установка Metasploit на Debian 13, 12 и 11

💡 Что такое 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 на вход gpg
  • sudo 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 — проверяет, поддерживает ли архитектура пакеты Metasploit
  • printf — формирует содержимое файла источника
  • 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 — мощный инструмент, и с мощью приходит ответственность. Используйте его только на системах, которые вы имеете право проверять.