引言
Kali Linux 是一款开源的基于 Debian 的渗透测试专用操作系统,系统中包含一系列用于渗透测试的神器。
Docker 是目前最火热的开源应用容器,发布于2014年6月。它能让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
Docker 可以被看作是互联网上的货运纸箱——一款能让互联网软件开发商将作品整洁打包,并快速递送至一台又一台电脑的工具。
Kali系统开发者Mati Aharoni认为:将 Docker 与 Kali 结合的美妙之处在于,Kali 被安置在一个非常棒的、干净的容器中。自从 Docker 版 Kali Linux 发布后,网络安全爱好者与渗透测试工程师们可以尽情驾驭 Kali 于 Windows, Mac或是Linux 中了。
Docker 中安装 Kali-Linux 虚拟机的优点在于:启动快比虚拟机快 , 可以秒级启动,而且可以通过 Dockerfile 配置文件来灵活的自动创建和部署镜像 & 容器 , 提高工作效率;Docker 对资源占用小,除了运行 Kali-Linux 外 , 基本不消耗其他系统资源 , 保证应用性能同时 ,尽量减小系统开销。
Docker
查看系统版本
cat /etc/issue
Ubuntu 18.04.3 LTS \n \l
更新系统
sudo apt-get update && sudo apt-get upgrade
安装 Docker
#安装 docker 软件包
sudo apt-get install docker.io
#查看版本号
sudo docker -v
#启动服务
sudo systemctl start docker
#允许开机自启动
sudo systemctl enable docker
#查看运行状态
sudo systemctl status docker
添加镜像源,提升镜像下载速度,建议使用阿里云镜像加速器,下面是中科大的镜像源
sudo vim /etc/docker/daemon.json
{
“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn/”]
}
拉取 Kali-Linux 镜像
sudo docker pull kalilinux/kali-linux-docker
查看镜像
sudo docker images
创建容器
sudo docker run -t -d -p 60000:22 -p 60001:5901 -p 60002:5902 -p 60003:5903 a1765e8e381e /bin/sh -c "while true; do echo hello world; sleep 1; done"
-t 让 docker 分配一个伪终端并绑定到容器的标准输入上 ,-p 指定映射端口,如宿主机60001端口映射到虚拟机的 5901 端口,-d 保持后台运行, -c 执行一些命令
查看容器
sudo docker ps
Kali Linux
系统环境
修改 root 密码
# 进入 kalilinux 容器
sudo docker exec -it 1275cabd2cdc /bin/bash
# 修改 root 用户密码
passwd root
修改镜像源
# 阿里云镜像源
vi /etc/apt/sources.list
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
SSH服务
# 更新系统
apt-get update && apt-get upgrade
# 安装所需软件
apt-get install vim net-tools openssh-server
# 修改 vim 配置文件,允许 root 用户远程登录
vim /etc/ssh/sshd_config
在 #PermitRootLogin prohibit-password 下面一行添加PermitRootLogin yes
#启动 ssh 服务
service ssh start
#允许开机自启动
systemctl enable ssh
远程桌面
# 安装 xfce4 桌面环境
apt-get install kali-defaults kali-root-login desktop-base xfce4 xfce4-places-plugin xfce4-goodies
# 安装 vnc4server
apt-get install vnc4server
#启动 vncserver
vncserver :1 -localhost no -geometry 1928x1080
测试
SSH
VNC
错误排查
宿主机无法访问 Kali 远程桌面,或只能 Kali 本机访问
1、宿主机 Telnet 测试 Kali 虚拟机 vncserver 服务开放的端口
telnet 172.17.0.2 5902
2、进入虚拟机检查端口开启情况
netstat -an |grep 5902
3、发现问题
开启 vnc 服务时没有加 -localhost no 参数,导致 vnc 服务只监听本机的 5902 端口
其它
- kali官方给出了Docker版本,基本上是个空系统,安装 kali 所有的工具可以运行 apt-get install kali-linux-all ,大小约为 10G。
- 配置完 Kali 后,建议将 container commit一下,便于以后配置错误导致 Kali系统崩溃时,可以用提交的镜像快速重建容器。
参考
- docker下运行kalilinux并配置ssh访问:https://blog.csdn.net/shana_8/article/details/81556518
- Ubuntu18.04安装Docker:https://blog.csdn.net/u010889616/article/details/80170767
- 一个道德黑客的食谱 – 配置KaliLinux桌面环境:http://www.zijin.net/news/tech/917407.html
- Kali Linux高级教程:元数据包“工具子集”介绍与安装:https://www.fujieace.com/kali-linux/metapackages.html