用 Docker 在 Mac OS X 上 build 一个单独的 Kali Linux 镜像

前几天有同学看到我在 Terminal 里打了个 kali 就单独开了一个 Kali 的窗口出来,非常惊奇问我怎么做的。。其实就是用 Docker 装载了一个镜像,没什么技术含量,而且当初做得非常拙劣,Dockerfile 仓促间写成也没有优化,但是有人好奇那就发吧。。。如果各位有啥优化的办法或者更方便的办法不妨告诉我,我这个方法目前是自己用着比较舒服的。

Docker 安装就不说了,是个人照着文档都能搞出来。。直接上重点。以下操作是很久以前在 Mac OS X 10.10 Yosemite 下进行的,但是在去年的时候苹果公司推出了 Mac OS X 10.11 El Capitan,引进了新的 SIP 机制,效果大致相当于 rootless,导致 proxychains-ng 等一票软件失效,所以用到这些的我都去掉了,这样的话这个安装过程是不能保证你的匿名性的。如果你需要的话,简单的方法是在 Recovery HD 中

# configures by default
#  Apple Internal: enabled 
#  Kext Signing: enabled 
#  Filesystem Protections: enabled 
#  Debugging Restrictions: enabled 
#  DTrace Restrictions: enabled 
#  NVRAM Protections: enabled

# disable debugging restrictions only
csrutil enable --without debug

# or if you need complete root privileges
csrutil disable

要搞一个 kali,我当初的第一想法就是从官方给的镜像下手,所以直接上手了,也没试试从 Debian 走是不是会更方便一点,但是现在用太久了也懒得改动。

docker pull kalilinux/kali-linux-docker

拉完了,测试一下好没好

docker run -t -i kalilinux/kali-linux-docker /bin/bash

apt-get update
apt-get install metasploit
msfconsole

要是都运行成功就可以 log out 了

然后准备 build。我的文件是放在 ~/Docker/kali,当初的意识流选择。。Home 目录下建一个 Docker 目录,然后要 build 什么就建一个文件夹放 script。。。虽然现在看上去有点丑,但是无所谓了,也挺干净的。

vim ~/Docker/kali/Dockerfile

## File Content

## if you have any trouble during building, try adding these lines to your Dockerfile. However, to set DEBIAN_FRONTEND to noninteractive should be discouraged and is also not approved by the developers of docker.

# RUN echo "deb http://http.kali.org/kali sana main contrib non-free" > /etc/apt/sources.list && echo "deb-src http://http.kali.org/kali sana main contrib non-free" >> /etc/apt/sources.list && echo "deb http://security.kali.org/kali-security sana/updates main contrib non-free" >> /etc/apt/sources.list && echo "deb-src http://security.kali.org/kali-security sana/updates main contrib non-free" >> /etc/apt/sources.list

# ENV DEBIAN_FRONTEND noninteractive

## install the whole kali software with kali-linux-all. This will end up with a very large docker image, so if you only need some of the tools from kali, try something like kali-linux-web or kali-linux-top10.

RUN apt-get -y update && apt-get -y install kali-linux-all && apt-get clean

## add another line to open a shell when you load the container

CMD ["/bin/bash"]

保存好 Dockerfile,确定网络安全连接后就可以开始 build 了。

cd ~/Docker/kali
docker build -t kali .

此过程一定要保持网络畅通,否则一定失败。最后 alias 一下,就可以了。

除了以上的方法外,还有另一种方法也是可以的,就是在 Mac OS X 上 cross-debootstrap ,然后把按 Kali 安装好的 Debian 系统直接导入到 Docker 中

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.