Docker是一个由 GO 语言写的程序运行的开源的应用容器引擎( Linux containers , LXCs ),让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app )。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。
Kali Linux是基于 Debian 的 Linux 发行版, 设计用于数字取证和渗透测试 和 黑客攻防。
Kali Linux 预装了许多渗透测试软件,包括 nmap (端口扫描器)、 Wireshark (数据包分析器)、 John the Ripper (密码破解器),以及 Aircrack-ng (一套用于对无线局域网进行渗透测试的软件). 用户可通过硬盘、 live CD 或 live USB 运行 Kali Linux 。 Metasploit 的 Metasploit Framework 支持 Kali Linux , Metasploit 一套针对远程主机进行开发和执行 Exploit 代码的工具。
      Docker 相比 KVM 之类最明显的特点就是启动快,资源占用小。因此对于构建隔离的标准化的运行环境,轻量级的 PaaS , 构建自动化测试和持续集成环境,以及一切可以横向扩展的应用都可轻松应对。具体说来,Docker 在如下几个方面具有较大的优势:
      kali 原镜像所含的渗透套件很丰富,基本渗透中的需求都可以满足,但是长期使用会显得有些臃肿,比如换个环境(迁移),扔锅(被取证)等等,既然想方便/快捷/高效的使用 Kali , Docker 虚拟化再合适不过。
      我是在Mac下安装的 Docker , Docker 引擎使用了 Linux 内核特定的特性,所以要让它运行在 OS X 上我们需要用一个轻量型的虚拟机,如(Virtualbox, Vmware Fusion, Parallel Desktop)等。用 OS X 的 Docker 客户端来控制虚拟 Docker 来构建,运行以及管理 Docker 容器。
Boot2Docker 是帮助控制虚拟机中 Docker 的工具,它会下载一个安装好 docker 的虚拟机,并控制其实现 docker 功能:
brew install boot2docker
安装 Docker client :
# Get the docker client file
DIR=$(mktemp -d ${TMPDIR:-/tmp}/dockerdl.XXXXXXX) && \
curl -f -o $DIR/ld.tgz https://get.docker.io/builds/Darwin/x86_64/docker-latest.tgz && \
gunzip $DIR/ld.tgz && \
tar xvf $DIR/ld.tar -C $DIR/ && \
cp $DIR/usr/local/bin/docker ./docker
# Set the environment variable for the docker daemon
export DOCKER_HOST=tcp://127.0.0.1:4243
# Copy the executable file
sudo cp docker /usr/local/bin/
或者直接使用Boot2Docker.pkg安装,安装好后运行 boot2docker 这个 client command ,这个过程会进行初始化下载一个 boot2docer.iso ,然后会用 ssh 生成用于 docker 的 ssh 的公钥和私钥对,用于远程.
初始化后运行 boot2docker 报了个错,对应设置到环境变量即可。
➜ ~ boot2docker start
Waiting for VM and Docker daemon to start...
.o
Started.
Writing /Users/CongRong/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/CongRong/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/CongRong/.boot2docker/certs/boot2docker-vm/key.pem
Your environment variables are already set correctly.
To connect the Docker client to the Docker daemon, please set:
export DOCKER_CERT_PATH=/Users/CongRong/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
export DOCKER_HOST=tcp://192.168.59.103:2376
Or run: `eval "$(boot2docker shellinit)"`
kali-linux-docker 的DockerHub 主页,或者直接搜索:
➜ ~ docker search kali
NAME                                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
kalilinux/kali-linux-docker               Kali Linux 2.x Base Image                       120                  [OK]
linuxkonsult/kali-metasploit              Kali base image with metasploit                 26                   [OK]
linuxkonsult/kali                         Kali Linux 2.0 base image                       8
brimstone/kali                                                                            3                    [OK]
kkirsche/kali-linux-docker                Unofficial Kali Linux Docker                    2                    [OK]
kalilinux/kali-linux-docker-rolling       Kali Linux Rolling Docker Image                 2                    [OK]
wsec/kali-metasploit                      Official Kali Base image + Metasploit           2                    [OK]
officialkali/kali                                                                         2
kalilinux/kali                                                                            2
lodelestra/kali-linux-metasploit-docker   metasploit docker based on kali-linux-docker    1                    [OK]
ctarwater/kali-msf                        Kali + Metasploit + Postgresql                  1                    [OK]
e3rp4y/kali-metasploit                                                                    1                    [OK]
blackfinsecurity/tha-kali                                                                 1                    [OK]
andresriancho/w3af-kali                                                                   0                    [OK]
ctarwater/kali                            Kali base image (no tools)                      0                    [OK]
netxp/kali                                kali                                            0                    [OK]
johnsandiford/kali                                                                        0                    [OK]
miteshshah/kali                           Kali Linux                                      0                    [OK]
nicot/kali                                                                                0                    [OK]
lxj616/docker-kali-custom-tools           docker-kali-custom-tools                        0                    [OK]
jasonchaffee/kali-linux                   Kali Linux Docker Container                     0                    [OK]
ctarwater/kali-msf-micro                  Kali + Metasploit with all of the Metasplo...   0                    [OK]
scottj/kali-docker                        Custom Kali 2.0 Docker Build                    0                    [OK]
digitalshokunin/kali-metasploit                                                           0                    [OK]
butlerrc30/kali-ssh                       Kali image that generates random cert for ...   0                    [OK]
安装 Kali :
docker pull kalilinux/kali-linux-docker
拉取安装后就可以启动了,因为是纯净的 kali 镜像所以只有 420MB ,需要什么直接 apt-get 。
