1.介绍
1.1 效果演示
通过这篇文章我们能够实现在网页上使用Kali, 并且相比在传统的Vmware
中安装Kali占用资源更少并且响应速度更快, 并且支持动态缩放分辨率以及复制粘贴文本内容甚至能够安装QQ, 搭配上内网穿透就能够在任意的设备上远程使用Kali.
1.2 环境要求
-
操作系统要求: Linux系统
-
可以是本地
vmware
虚拟机, 也可以是云服务器
, 发行版本可以是ubuntu
也可以是centos
, 下面的步骤都是基于ubuntu
进行
-
-
环境要求
-
docker环境, 下面会介绍安装步骤.
-
2.安装Docker
2.1 Docker简介
Docker 是一种开源的容器化平台,通过将应用程序及其所有依赖项打包到容器中,实现快速部署、跨环境运行和资源有效利用,提升了软件开发和部署的便捷性、安全性和性能, 可以将其理解为一种虚拟化技术, 但和Vmware
不同, Docker容器共享宿主系统内核,相比 VMware虚拟机更轻量级,启动更快,占用更少资源。在将来我们将分享更多基于Docker构建的应用。
-
想要更深入的了解Docker安装使用可以参考菜鸟Docker教程:
-
Docker 教程 | 菜鸟教程 – 自行搜索菜鸟docker教程
-
2.2 安装Docker
kasmweb/kali-rolling-desktop
这个项目是基于docker
构建的一个WEB版本的KALI, 实际上是通过VNC访问KALI, 但他的这个VNC
是从noVNC
中二次开发的一个项目, 相比原有的noVNC
优化了非常多的功能.
所以我们在安装kali之前需要先通过一条命令安装docker
, 不同操作系统下的安装和docker的使用可以参考2.1中的链接进行安装, 下面的所有演示步骤都是基于ubuntu22.04
操作系统进行.
sudo apt update && sudo apt install docker.io
2.3 查看是否安装成功
使用docker需要拥有root
权限, 所以在运行docker时我们需要使用sudo执行如下命令
sudo docker run hello-world
如果出现下面的内容说明docker已经成功安装并运行
3. 下载并启动Kali
3.1 下载Kali
通过执行下面的命令, 使用我们上面安装的Docker下载指定版本的Kali容器镜像, 该镜像内包含了Kali中的常用工具, 下载好后就不需要额外手动安装工具, 所以体积也较大需要耐心等待一段时间等待其自动下载解压完成.
sudo docker pull kasmweb/kali-rolling-desktop:1.14.0
3.2 通过镜像启动Kali
使用下面的命令启动Kali的容器
sudo docker run -itd --shm-size=2048m -p 6901:6901 --name kali -e VNC_PW=password kasmweb/kali-rolling-desktop:1.14.0
-
itd
: 这三个参数合在一起使用,分别表示:-
-i
: 保持标准输入打开。 -
-t
: 分配一个伪TTY终端。 -
-d
: 在后台运行容器。
-
-
--shm-size=2048m
: 设置给该容器分配的内存大小为2048M
字节, 可以根据自己设备的内存情况分配内存, 但是建议大一点。 -
-p 6901:6901
: 将容器的端口6901映射到宿主机的端口6901,允许通过6901端口访问容器中运行的应用程序。 -
--name kali
: 为容器指定一个名称为”kali”,用于在后续操作中使用这个容器。 -
-e VNC_PW=password
: 设置一个环境变量VNC_PW
的值为password
,这个环境变量用于VNC
远程连接时的密码验证
。
3.3 赋予默认用户ROOT权限(可选)
因为安全原因, 系统默认的用户kasm-user
没有ROOT权限, 所以我们需要通过docker执行容器内命令赋予其免密执行sudo的权限
sudo docker exec --user root -it kali bash -c 'echo "kasm-user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'
-
docker exec
: 在运行的容器中执行命令。 -
--user root
: 指定以root用户身份执行命令。 -
it
: 这两个参数结合使用,分别表示:-
-i
: 保持标准输入打开。 -
-t
: 分配一个伪TTY终端。
-
-
kali
: 指定要执行命令的目标容器,这里是名为”kali”的容器, 这个参数的值就是我们上面通过--name kali
指定的名称kali
, 也可以换成其他的名称, 但是对应的操作容器时候也需要指定对应设置的名称。 -
bash
: 在容器中执行的命令是启动一个bash shell。 -
-c 'echo "kasm-user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'
: 这部分命令的作用是将"kasm-user ALL=(ALL) NOPASSWD: ALL"
这行内容追加到/etc/sudoers
文件中,这行内容的含义是允许kasm-user
用户在任何主机上以任何用户身份执行任何命令时无需输入密码。
3.4 访问KALI
获取我们宿主机的IP,通过 https://ip:6901 进行连接; 例如我的Linux宿主机的IP地址为192.168.5.128
, 通过浏览器访问地址https://192.168.5.128:6901
输入默认的用户名密码 kasm_user/password
,其中的password是我们3.2中启动Kali时设置的参数
账号面慢输入完成后即可访问到我们的Kali进行操作了, 为了方便我们的复制粘贴操作我建议允许浏览器访问我们的剪贴板, 之后我们就可以如同操作虚拟机一样使用WEB版本的KALI了.
4. Kali的启停和删除
4.1 关闭Kali
只需要在宿主机上执行一条命令, 即可暂时关闭Kali
# 暂时关闭kali容器
sudo docker stop kali
# 重新启动kali容器
sudo docker start kali
# 查看所有的docker容器情况
sudo docker ps -a
4.2 删除Kali
同样的只需要一条命令即可删除Kali, 但是需要注意请备份好自己的重要数据.
sudo docker rm -f kali
5. TIPS
5.1 遇到问题或错误
在操作过程中如果遇到任何错误或者问题, 可以留言或私信我, 我会帮助大家解决遇到的问题.
2、本站永久网址:https://www.xheishou.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
- 最新
- 最热
只看作者