Находим подходящий образ (есть образы Kali Linux и с уже предустановленным Metasploit, тут установка будет выполняться вручную):
# docker search kali NAME DESCRIPTION STARS OFFICIAL AUTOMATED kalilinux/kali-linux-docker Kali Linux 2.x Base Image 90 [OK] linuxkonsult/kali-metasploit Kali base image with metasploit 17 [OK] ...
Запускаем его:
# docker run -t -i kalilinux/kali-linux-docker Unable to find image 'kalilinux/kali-linux-docker:latest' locally latest: Pulling from kalilinux/kali-linux-docker e1bfb89993bf: Pull complete b4be4f2256bf: Pull complete 93d580d5b6d4: Pull complete 7267bc58e014: Pull complete 2c00b1e4f611: Pull complete a5acfcddcae4: Pull complete e3177c843499: Pull complete 198c6df71ab3: Already exists Digest: sha256:fcc3e894b9d03b20e37f3e4748dbca798a8e1a50ec7b9ddfa1e9dbd1b208efa1 Status: Downloaded newer image for kalilinux/kali-linux-docker:latest root@142c0796e2df:/#
Проверяем версию Kali Linux:
# cat /etc/issue Kali GNU/Linux 2.0 n l
Обновляем кеш apt
и пакеты:
# apt-get update && apt-get upgrade
Ищем и устанавливаем пакет Metasploit Framework:
# apt-cache search .*metasploit.* ... metasploit-framework - Framework for exploit development and vulnerability research ...
# apt-get install metasploit-framework
Поверяем PostgreSQL, который является базой данных для Metasploit Framework:
# service postgresql status 9.4/main (port 5432): online
Проверяем порт:
# netstat -anp | grep 5432 tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN - tcp6 0 0 ::1:5432 :::* LISTEN - unix 2 [ ACC ] STREAM LISTENING 3116031 - /var/run/postgresql/.s.PGSQL.5432
Инициализируем базу:
# msfdb init Creating database user 'msf' Enter password for new role: Enter it again: Creating databases 'msf' and 'msf_test' Creating configuration file in /usr/share/metasploit-framework/config/database.yml Creating initial database schema
Запускаем Metasploit:
root@142c0796e2df:/# msfconsole [*] The initial module cache will be built in the background, this can take 2-5 minutes... # cowsay++ ____________ < metasploit > ------------ ,__, (oo)____ (__) ) ||--|| * Payload caught by AV? Fly under the radar with Dynamic Payloads in Metasploit Pro -- learn more on http://rapid7.com/metasploit =[ metasploit v4.11.4-2015090201 ] + -- --=[ 1476 exploits - 852 auxiliary - 239 post ] + -- --=[ 432 payloads - 37 encoders - 8 nops ] + -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]
Проверяем состояние базы:
msf > db_status [*] postgresql connected to msf
Обновляем кеш:
msf > db_rebuild_cache [*] Purging and rebuilding the module cache in the background...
И пробуем что-то поискать, что бы убедиться, что Metasploit работает:
msf > search ssl ... Matching Modules ================ Name Disclosure Date Rank Description ---- --------------- ---- ----------- auxiliary/dos/http/sonicwall_ssl_format 2009-05-29 normal SonicWALL SSL-VPN Format String Vulnerability auxiliary/dos/ssl/dtls_changecipherspec 2000-04-26 normal OpenSSL DTLS ChangeCipherSpec Remote DoS auxiliary/dos/ssl/dtls_fragment_overflow 2014-06-05 normal OpenSSL DTLS Fragment Buffer Overflow DoS auxiliary/dos/ssl/openssl_aesni 2013-02-05 normal OpenSSL TLS 1.1 and 1.2 AES-NI DoS ...
Выходим в консоль машины-хоста:
# exit
Сохраняем образ:
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 142c0796e2df kalilinux/kali-linux-docker "/bin/bash" 36 minutes ago Exited (0) 20 seconds ago silly_kilby
# docker commit 142c0796e2df kali_metasp:4.11.4 c1bb3814e27fe1c64e8d2887e48b240bce7cb4d247c14ec626bddceb6ab1c422
Провеяем:
# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE kali_metasp 4.11.4 c1bb3814e27f 2 minutes ago 1.43 GB
Запускаем контейнер с новым образом:
# docker run -t -i c1bb3814e27f root@56cb15c46eb0:/#
Запускам PostgreSQL и заходим в консоль Metasploit:
# service postgresql start [ ok ] Starting PostgreSQL 9.4 database server: main.
# msfconsole
Готово.