X黑手网
X黑手网
X黑手网

手把手教你在浏览器上运行Kali的!

1.介绍

1.1 效果演示

    通过这篇文章我们能够实现在网页上使用Kali, 并且相比在传统的Vmware中安装Kali占用资源更少并且响应速度更快, 并且支持动态缩放分辨率以及复制粘贴文本内容甚至能够安装QQ, 搭配上内网穿透就能够在任意的设备上远程使用Kali.

640

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

image

2.3 查看是否安装成功

    使用docker需要拥有root权限, 所以在运行docker时我们需要使用sudo执行如下命令

sudo docker run hello-world

  如果出现下面的内容说明docker已经成功安装并运行

image

3. 下载并启动Kali

3.1 下载Kali

    通过执行下面的命令, 使用我们上面安装的Docker下载指定版本的Kali容器镜像, 该镜像内包含了Kali中的常用工具, 下载好后就不需要额外手动安装工具, 所以体积也较大需要耐心等待一段时间等待其自动下载解压完成.

sudo docker pull kasmweb/kali-rolling-desktop:1.14.0

6339d7ed6072a2d319bcd5c500264e9

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远程连接时的密码验证

image

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用户在任何主机上以任何用户身份执行任何命令时无需输入密码。

image

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时设置的参数

image

  账号面慢输入完成后即可访问到我们的Kali进行操作了, 为了方便我们的复制粘贴操作我建议允许浏览器访问我们的剪贴板, 之后我们就可以如同操作虚拟机一样使用WEB版本的KALI了.

image

4. Kali的启停和删除

4.1 关闭Kali

    只需要在宿主机上执行一条命令, 即可暂时关闭Kali

# 暂时关闭kali容器
sudo docker stop kali
# 重新启动kali容器
sudo docker start kali
# 查看所有的docker容器情况
sudo docker ps -a

image

4.2 删除Kali

    同样的只需要一条命令即可删除Kali, 但是需要注意请备份好自己的重要数据.

sudo docker rm -f kali

image

5. TIPS

5.1 遇到问题或错误

    在操作过程中如果遇到任何错误或者问题, 可以留言或私信我, 我会帮助大家解决遇到的问题.

© 版权声明
THE END
喜欢就支持一下吧
点赞14赞赏 分享
评论 共1条

请登录后发表评论