0x01 Kali-linux docker介绍
相信能点进这篇文章的同学对kali应该是有一定了解的,但我们通常都是使用kali的镜像来安装虚拟机进行使用,在使用的时候通常需要进行内网穿透,不是很方便,所以如果我们能把kali安装到云服务器上那岂不是如虎添翼,但是一般云服务器是不运行使用自己的镜像进行安装的。所以我们有了新的途径——kali-linux docker。
docker其实你可以理解为虚拟机,他就是一个容器,和主机共享资源,但是主机和docker之间又是有隔离的,他们只能通过网卡进行通信。我们的kali-linxu,有些时候需要对外监听端口,恰好docker允许端口转发,可以将外网端口映射到docker中。虽然docker中只能使用命令行进行操作,但是对于kali-linux来说已经足够了。
0x02 docker服务的安装
如果要安装docker服务,请使用下面的两条命令:
1 2 |
apt-get update apt-get install docker.io |
安装成功过后docker服务会自动启动,如果未启动请使用下面的命令启动:
1 |
service docker start |
我们来验证一下docker是否可用,执行下面的命令:
1 2 |
root@VM-102-153-ubuntu:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
如果显示上面的结果就表示可用,此命令是显示运行的docker,但是我们还没有安装,所以实现的结果是空白。
0x03 在docker中运行Kali Linux
下面我们开始在docker中安装Kali Linux,请执行下面的命令:
1 |
docker pull kalilinux/kali-linux-docker |
运行该命令以后,docker将从官方镜像库拉取kali-linux-dcoker镜像。
此过程可能稍微有点长,可以稍微等待一会,等待进度条全部完成我们将运行该镜像文件。
镜像拉取完成后执行下面的命令查看刚才拉取的kali-linux-docker镜像:
1 2 3 |
root@VM-102-153-ubuntu:~# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE kalilinux/kali-linux-docker latest b6d958e0804b 3 weeks ago 1.221 GB |
上面的IMAGE ID是比较重要的东西,可能每个人都不一样。下面我们来运行一下该docker镜像,执行下面的命令:
1 2 |
root@VM-102-153-ubuntu:~# docker run --name kali -it -p 2222:22 -p 5000:5000 -p 5001:5001 b6d958e0804b /bin/bash root@8e823d2bbfb0:/# |
上面的几个参数说明一下,-p是将本机的2222端口和docker的22端口进行转发,可以设置多个,我这里一共设置了多个,方便后续的使用,其实后续还可以补充别端口,--name是为当前运行的docker其的别名,用起来比IMAGE ID要方便。
到此位置我们已经成功运行了Kali-linux-docker,并且当前已经在该容器中了。那么如果我们向回到原来的主机怎么办的,注意,这里请不要直接执行exit命令,因为该命令会直接推出docker,你在docker里面所运行的服务都将会被停止。那如果我们想要docker继续运行那应该执行下面的方法:
按住Ctrl+P,然后再按住Ctrl+Q,我们发现我们又回到了宿主机。
1 |
root@8e823d2bbfb0:/# root@VM-102-153-ubuntu:~# |
那如果我们想再次回到kali中可以执行下面的命令:
1 2 3 |
root@VM-102-153-ubuntu:~# docker attach kali root@8e823d2bbfb0:/# |
我们发现我们又回到了刚才的环境中。
0x04 在kali中安装全部工具
虽然我们的kali docker已经安装完成,但是此kali现在是空白的,并没有安装任何的工具,甚至连ssh都没有安装。其实在Kali中安装工具是非常简单的一件事情,只需要简单的执行一条安装命令便可以安装所又kali中的工具,命令如下:
1 2 |
apt-get update apt-get install kali-linux-all |
执行上面的命令后,apt-get将询问是否进行安装:
此处只要选择y,然后回车,便开始了自动化的安装过程,但是此过程非常的漫长甚至达到了数个小时,所以我我们不必等待,直接使用Ctrl+P、Ctrl+Q转到宿主机下面,让kali在后台自己运行安装即可。
0x05 在kali中安装SSH远程连接服务
因为每次我们想进入Kali容器都需要先登录宿主机,所以这里我们就直接在Kali中安装SSH服务,然后配置root允许远程登录,就可以使用远程连接工具进行连接了,下面是安装命令:
1 2 |
apt-get update apt-get install ssh |
等待安装完成以后我们需要配置一下运行root用户远程登录,首先我们使用下面的命令为root用户设置密码:
1 2 3 |
root@8e823d2bbfb0:/# passwd Enter new UNIX password: Retype new UNIX password: |
设置好密码以后使用以下命令打开ssh的配置文件:
1 |
root@VM-102-153-ubuntu:~# vim /etc/ssh/sshd_config |
请将下面的几个配置改为如下值:
- PermitRootLogin yes
- PermitEmptyPasswords no
然后重启一下SSH服务:
1 2 3 |
root@VM-102-153-ubuntu:~# service ssh restart ssh stop/waiting ssh start/running, process 12183 |
因为之前我们已经做的端口转发,将外网的2222端口转发到了kali的22端口,所以只需要使用宿主机的2222端口就可以连接并登录Kali了,后面的使用就普通环境没多大差别了。
0x06 补充
这里说明一下为什么本文是在64位系统下面安装的,因为在32下可能会遇到很多的坑,建议不要去浪费时间,况且64位下面的工具使用比32位方便很多。