Docker: запуск Kali Linux и установка Metasploit Framework

Автор: | 10/08/2015
 

docker_lxcНаходим подходящий образ (есть образы 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

Готово.