Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitLabGitLab/kalilinux/build-scripts/kali-cloud
云基础设施安全脚本与自动化安全虚拟化云安全实用工具与框架
GitLabkalilinux/build-scripts/kali-cloud

kali-cloud

# 构建 Kali 云镜像的脚本(https://salsa.debian.org/cloud-team/debian-cloud-images 的分支)

查看仓库
32532110天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Kali-Cloud 构建脚本

通过 FAI(全自动安装)构建 Kali Linux 云镜像,fork 自 Debian Cloud Images。

这些正是 Kali 团队 用来生成官方 Kali Linux 云镜像的同一套构建脚本,官方镜像可在 kali.org/get-kali/ 找到。

更多信息,请参阅:kali.org/docs/cloud/ 以及 kali.org/docs/troubleshooting/common-cloud-setup/。

今天就构建你的 Kali!

前置条件

我们建议在与目标架构相匹配的 Linux 主机上进行构建。

有多种方式可以准备好使用 kali-cloud 构建脚本。你可以选择:

  • build.sh - 直接从你的机器上构建
  • build-in-container.sh - 在容器内构建 (例如 Docker 或 Podman)

要让 build.sh 正常工作,它需要超级用户权限(例如 sudo 或 rootful 容器)。不过并不需要 KVM。


首先安装 git,并确保仓库已在本地克隆:

$ sudo apt-get install --no-install-recommends \
    git ca-certificates
$ git clone https://gitlab.com/kalilinux/build-scripts/kali-cloud.git
$ cd ./kali-cloud/

从主机构建(Kali)

要使用 build.sh 直接在主机上构建,请安装构建依赖:

$ sudo apt-get install --no-install-recommends \
    python3-minimal libpython3-stdlib python3-yaml python3-libcloud python3-marshmallow python3-httpx python3-pytest \
    fai-server fai-setup-storage \
    sudo \
    qemu-utils qemu-user-binfmt \
    fdisk \
    udev \
    dosfstools \
    apt-utils \
    debsums

注意:根据操作系统版本的年代,你可能需要使用 qemu-user-static(旧版)而不是 qemu-user-binfmt(现代/当前/最新)。

注意:仅当你进行跨架构构建时(例如 amd64 主机构建 arm64 镜像),才需要 qemu-user-static/qemu-user-binfmt。


现在你可以使用 ./build.sh,它会直接在你的机器上构建 Kali 云镜像。

从主机构建(基于 Debian,非 Kali)

如果你不是以 Kali 作为基础操作系统,则需要安装 Kali 的 kali-archive-keyring,以便 fai 能够获取 Kali 的软件包。

$ sudo apt-get install --no-install-recommends \
    wget ca-certificates
$ wget https://http.kali.org/pool/main/k/kali-archive-keyring/kali-archive-keyring_20YY.X_all.deb
$ sudo apt-get install ./kali-archive-keyring_*_all.deb

注意:将 20YY.X 替换为此处 kali-archive-keyring 中显示的值。


现在你可以按照从主机构建(Kali)来安装构建依赖。

在容器内构建

我们将跳过任何容器软件的设置。

如果你更愿意在容器内构建,则需要在你的机器上安装并配置 docker 或 podman。

  • docker 要求将用户添加到 Docker 组,或使用 root 账户(例如 $ sudo ./build-in-container.sh)。
  • podman 已在 rootful 模式下测试过(例如 $ sudo ./build-in-container.sh)。如果以 rootless 模式运行,build-in-container.sh 将尝试通过 sudo 提升自身权限,或回退到将 podman machine 重新配置为 rootful,参见已知限制。

build-in-container.sh 是 build.sh 之上的一层封装。它会检测使用哪个符合 OCI 标准的容器引擎,负责在缺失时创建容器镜像,然后启动容器以在其中执行构建。

你有三种方式提供容器镜像:

$ # Option #1 - Automated build (recommended)
$ ./build-in-container.sh
$ ./build-in-container.sh --force   # If you need to rebuild the image from scratch
$
$
$
$ # Option #2 - Manual build
$ docker build -t kali-build/kali-cloud .
$ # ...OR...
$ podman build -t kali-build/kali-cloud .
$
$
$
$ # Option #3 - Use the pre-generated
$ docker pull registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest
$ docker tag registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest kali-build/kali-cloud
$ # ...OR...
$ podman pull registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest
$ podman tag registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest kali-build/kali-cloud
$
$ # ...then point the build at it:
$ ./build-in-container.sh                                                                       # Locally built (automated or manual)
$ IMAGE=registry.gitlab.com/kalilinux/build-scripts/kali-cloud:latest ./build-in-container.sh   # Pre-generated

如果你同时安装了 docker 和 podman,build-in-container.sh 将默认使用 podman。要更改此行为,请在 ./build-in-container.sh 前加上 CONTAINER=docker:

$ CONTAINER=docker ./build-in-container.sh [...]

现在你可以使用 ./build-in-container.sh(而不是 ./build.sh)来构建镜像。

帮助

$ ./build.sh --help
Usage: build.sh [OPTIONS]

Build a Kali Linux Cloud image.

Build options:
  -a, --arch ARCH              Build an image for this architecture (default: amd64)
                               Supported: amd64 arm64
  -b, --branch BRANCH          Kali branch used to build the image (default: kali-rolling)
                               Supported: kali-rolling kali-dev kali-last-snapshot
  -k, --keep                   Keep intermediary build artifacts
  -m, --mirror URL             Mirror used to build the image (default: http://http.kali.org/kali)
  -o, --output DIR             Output directory (default: /home/kali/kali-cloud/output)
  -v, --variant VARIANT        Cloud platform/target image to build (default: genericcloud)
                               Supported: genericcloud azure ec2 gce generic nocloud
  -x, --version VERSION        What to name the image release as (default: rolling)
  -z, --zip                    Compress image after the build
  -h, --help                   Show this help and exit

Cloud options:
  -H, --hostname HOSTNAME      Set system host name (default: kali)
  -P, --packages PKGS          Install extra packages (comma/space separated list)
  -s, --size SIZE              Size of the disk image in GB (default: ...depends on --variant)
  -T, --toolset TOOLSET        The selection of tools to include in the image (default: default)
                               Supported: default minimal

Apt caching proxy:
  Auto-detected: localhost:3142 (apt-cacher-ng), localhost:8000 (squid-deb-proxy).
  If detected and --mirror is not set, the mirror is routed via the proxy.

Supported environment variables:
  http_proxy  HTTP proxy URL, see README.md for details
  DEBUG       Print extra debug output
  Any --flag value can be pre-set via its env var (e.g. ARCH, BUILD_MIRROR, OUT_DIR)

Examples:
  build.sh
  build.sh --branch kali-rolling --variant generic --arch amd64
  build.sh -b kali-dev -T minimal -v generic -a amd64

注意:有三个标志与其变量名不同:--mirror 对应 BUILD_MIRROR,--hostname 对应 KALI_HOSTNAME(bash 已设置 HOSTNAME),--output 对应 OUT_DIR。其他每个标志都是其自身名称的大写形式(例如 --branch 对应 BRANCH)。

更多信息和/或示例,请参阅:

  • kali.org/docs/cloud/
  • kali.org/docs/troubleshooting/common-cloud-setup/

构建 + 自定义值

根据你的偏好,使用 build.sh 或 build-in-container.sh 均可。 为简洁起见,从这里开始我们将使用 build.sh。

默认选项将为 AMD64 架构构建一个 Kali rolling genericcloud 镜像,使用默认工具集:

下载工具