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 。