设置 Kali Linux 环境

Kali LinuxBeginner
立即练习

简介

在本实验中,你将学习如何在 LabEx 虚拟机中使用 Docker 设置并探索 Kali Linux 环境。Kali Linux 是一个基于 Debian 的强大发行版,专为渗透测试和网络安全任务而设计。通过在 Docker 容器中运行 Kali Linux,你可以创建一个隔离的环境来练习安全工具,而不会影响宿主机系统。

你将从拉取并启动 Kali Linux Docker 容器开始,访问其终端并验证设置。然后,你将探索基本的终端命令,回顾 Kali Linux 中 apt 的使用方式,并检查 Kali 版本和系统信息以确认一切配置正确。对于免费版用户,本实验重点在于理解包管理工作流程,而非下载软件包,因为虚拟机无法访问外部软件包镜像源。这些实践经验将为你后续在容器化环境中使用 Kali Linux 打下坚实的基础。

启动 Kali Linux Docker 容器

在此步骤中,你将在 LabEx 虚拟机环境中拉取并启动一个 Kali Linux Docker 容器,并访问其终端。Docker 允许你在隔离的容器中运行应用程序,而 Kali Linux 是专用于网络安全和渗透测试的 Linux 发行版。在容器中运行 Kali 可以确保学习和实验环境的整洁与便携。

在开始之前,让我们先明确一些初学者的基本概念:

  • DockerDocker 是一个允许你在容器中创建和运行应用程序的平台。容器是一个轻量级、隔离的环境,包含操作系统和必要的工具。
  • Kali LinuxKali Linux 是一个基于 Debian 的 Linux 发行版,专为安全测试而设计,预装了用于渗透测试和数字取证的工具。
  • Docker 容器:容器是 Docker 镜像的运行实例。你将首先拉取官方的 Kali Linux 镜像,然后从中创建一个容器。

现在,让我们拉取 Kali Linux 镜像,启动容器并访问其终端。所有操作都将在默认目录 /home/labex/project 中进行。请仔细按照以下步骤操作。

  1. 在 LabEx 虚拟机环境中打开终端。你可以通过点击 Xfce 桌面上的终端图标,或使用 LabEx 界面提供的终端来完成。

  2. 通过运行以下命令确认你处于默认工作目录:

    pwd
    

    输出应为:

    /home/labex/project
    

    如果你不在 /home/labex/project,请使用以下命令切换到该目录:

    cd /home/labex/project
    
  3. 从 Docker Hub 拉取官方 Kali Linux 镜像。运行以下命令:

    免费用户注意:如果你使用的是免费版,请跳过以下命令,因为虚拟机无法访问 Docker Hub。Kali 镜像已在设置脚本中预先拉取。

    docker pull kalilinux/kali-rolling
    

    此命令将下载最新的 Kali Linux 镜像。你将在终端中看到下载进度。

    显示 Docker 拉取进度的图片

  4. 验证 Kali Linux 镜像是否已成功拉取。运行:

    docker images
    

    你应该看到类似以下的输出:

    REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
    kalilinux/kali-rolling latest    xxxxxxxx       X days ago     XXXMB
    
  5. 现在,从 Kali Linux 镜像启动一个新容器。运行此命令以在后台启动容器:

    docker run -d --name kali-container -it kalilinux/kali-rolling /bin/bash
    

    让我们解析一下这个命令:

    • docker run:创建并启动一个新容器。
    • -d:在后台模式(detached mode)下运行容器。
    • --name kali-container:为容器命名,以便于引用。
    • -it:结合了 -i(交互式)和 -t(终端),允许与容器的终端进行交互。
    • kalilinux/kali-rolling:指定要使用的镜像。
    • /bin/bash:在容器内启动 Bash shell。

    运行此命令后,终端将返回容器 ID,表明容器正在后台运行。

    使用以下命令检查容器状态:

    docker ps
    

    你应该能看到正在运行的容器及其 ID。

  6. 连接到正在运行的容器:

    docker exec -it kali-container /bin/bash
    

    现在你已进入容器的终端。后续所有步骤都将在容器终端内进行。除非另有说明,否则不要退出容器。如果意外退出,可以使用上述相同的命令重新连接。

    显示容器终端访问的图片

恭喜你。你已成功拉取 Kali Linux Docker 镜像,启动了容器并访问了其终端。在下一步中,你将在容器内验证环境是否设置正确。

探索 Kali Linux 终端

在此步骤中,你将探索 Kali Linux Docker 容器内的终端界面。终端是与 Linux 系统交互的主要方式,特别是在 Kali Linux 中,大多数工具都是基于命令行的。此步骤将帮助你熟悉基本命令和容器环境。

让我们回顾一些初学者的关键概念:

  • 终端:终端是与操作系统交互的文本界面。它允许你运行命令、管理文件和配置设置。
  • Bash Shell:Bash (Bourne Again Shell) 是 Kali Linux 中的默认命令行解释器。它负责处理你输入的命令。
  • Root 用户root 用户在 Linux 中拥有完全的管理权限。在此容器内,你以 root 身份登录,拥有完全的控制权。

由于你已从上一步进入了 Kali Linux 容器,让我们开始用基本命令探索终端。请仔细按照以下说明操作。

  1. 通过运行以下命令确认你在容器内的当前位置:

    pwd
    

    输出应为:

    /
    

    这表明你位于容器内文件系统的根目录。

  2. 列出当前目录的内容以查看文件系统结构。运行:

    ls
    

    你应该看到类似以下的输出:

    bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    

    这些是标准的 Linux 目录。例如,bin 包含二进制文件,etc 存放配置文件。

  3. 通过运行以下命令验证你的用户身份:

    whoami
    

    输出应为:

    root
    

    这确认了你正在容器内以 root 用户身份操作。

    Kali 中 uname -a 命令的输出

  4. 在接下来的步骤中,请保持在容器终端内。不要输入 exit,否则会断开与容器的连接。如果意外退出,请从宿主机终端使用 docker exec -it kali-container /bin/bash 重新连接。

恭喜你。你已经通过基本命令探索了 Kali Linux 容器的终端界面。在下一步中,你将更新系统以确保其拥有最新的软件包和安全补丁。

回顾 Kali Linux 包管理

在此步骤中,你将回顾 Kali Linux 包管理在 Docker 容器内的工作方式,并查看用于更新系统和安装安全工具的命令。需要注意的是,基础 Kali Linux Docker 镜像默认不预装任何安全工具。这种设计选择保持了基础镜像的精简,允许用户仅安装他们需要的工具。

让我们介绍一些初学者的重要概念:

  • 包管理器:包管理器负责软件包的安装、更新和卸载。基于 Debian 的 Kali Linux 使用 apt (Advanced Package Tool) 作为其包管理器。
  • apt update:此命令通过从在线仓库获取最新的软件包信息来刷新本地软件包索引。它不会安装任何东西,只会更新可用软件包的列表。
  • Kali Linux 工具集:Kali Linux 提供不同的元软件包(metapackages)来安装工具:
    • 单个软件包:逐个安装特定工具(例如 nmapwiresharkmetasploit-framework
    • kali-linux-headless:适用于无头系统(headless systems)的最小工具集,包含最常用的命令行工具
    • kali-linux-large:包含 Kali Linux 大多数安全工具的综合集合(约 450 个工具)

由于你已从上一步进入了 Kali Linux 容器的终端,让我们检查用于更新系统和安装工具的命令。请仔细按照以下说明操作。

  1. 检查容器内是否可以使用 apt 包管理器。运行此命令:

    apt --version
    

    你将看到类似以下的输出:

    apt 2.x.x (amd64)
    

    这确认了标准的 Kali 包管理器已安装,并在网络可用时即可使用。

  2. 回顾用于刷新软件包索引的命令。这是你在网络可用时在容器内运行的命令:

    apt update
    

    免费用户注意:不要在免费版虚拟机中运行 apt update。容器无法访问外部 Kali 软件包镜像源,因此该命令会超时。在本实验中,你只需了解此命令的作用即可。

    当网络可用时,你将看到类似以下的输出:

    Get:1 http://kali.download/kali kali-rolling InRelease [30.5 kB]
    Get:2 http://kali.download/kali kali-rolling/main amd64 Packages [18.1 MB]
    ...
    Fetched 18.5 MB in 5s (3,700 kB/s)
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    All packages are up to date.
    
  3. 你有多种安装工具的方法。让我们了解每种方法:

    a. 安装单个工具(如果你只需要特定工具):

    apt -y install <package-name>
    

    例如:apt -y install nmap wireshark

    b. 安装 headless 集合(用于获取最常用的最小工具集):

    ## 你不需要运行此命令
    apt -y install kali-linux-headless
    

    这适用于基础安全测试以及资源受限的情况。

    c. 安装 large 集合(用于全面的安全测试):

    ## 你不需要运行此命令
    apt -y install kali-linux-large
    

    这包含了大多数安全工具,但需要更多的磁盘空间和安装时间。

  4. 在本实验中,请回顾安装基础工具集的命令:

    apt -y install kali-linux-headless
    

    免费用户注意:不要在免费版虚拟机中运行此命令。它需要从 Kali 镜像源下载软件包,而此环境已屏蔽该操作。

    -y 标志会自动确认所有提示,允许安装过程不间断地进行。输出将类似于:

    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following additional packages will be installed:
      <package1> <package2> ...
    ...
    Setting up <package1> ...
    Setting up <package2> ...
    

    当网络可用时,此过程需要一些时间,因为它会下载并安装许多软件包。kali-linux-headless 元软件包为 Kali Linux 提供了实用的命令行安全测试工具集。

    如果你使用的是有网络访问权限的付费环境,可以运行该命令并等待其完成。在免费版虚拟机中,回顾完即可继续。

  5. 在下一步中,请保持在容器终端内。不要输入 exit。如果意外退出,请从宿主机终端使用 docker exec -it kali-container /bin/bash 重新连接。

恭喜你。你已确认 apt 在 Kali 容器中可用,并回顾了用于更新软件包索引和安装常用 Kali 工具集的命令。在下一步中,你将检查 Kali Linux 的版本和系统信息。

检查 Kali Linux 版本和系统信息

在此步骤中,你将检查 Kali Linux 的版本并收集 Docker 容器内的基本系统信息。了解版本和系统详情有助于故障排除,并确保与安全工具的兼容性。

让我们为初学者解释一些关键概念:

  • 版本信息:Kali Linux 的版本指示你正在使用的发行版或构建版本。Kali 遵循滚动发布模型,这意味着它接收持续更新,而不是固定的版本发布。
  • 系统信息:这包括有关内核(操作系统的核心)、硬件架构和其他系统数据的详细信息。命令和系统文件提供了这些信息供查看。
  • 命令输出:Linux 命令通常会在终端中显示详细信息。学习解读这些输出对于理解你的系统非常有用。

由于你已从上一步进入了 Kali Linux 容器的终端,让我们继续检查版本和系统信息。请仔细按照以下说明操作。

  1. 通过查看 /etc/os-release 文件的内容来检查 Kali Linux 版本。运行此命令:

    cat /etc/os-release
    

    你应该看到类似以下的输出:

    PRETTY_NAME="Kali GNU/Linux Rolling"
    NAME="Kali GNU/Linux"
    VERSION_ID="2023.3"
    VERSION="2023.3"
    VERSION_CODENAME="kali-rolling"
    ID=kali
    ID_LIKE=debian
    HOME_URL="https://www.kali.org/"
    SUPPORT_URL="https://forums.kali.org/"
    BUG_REPORT_URL="https://bugs.kali.org/"
    ANSI_COLOR="1;31"
    

    这显示了版本(例如 2023.3)和代号(kali-rolling)等详细信息。确切版本可能会根据镜像更新而有所不同。

  2. 收集有关内核和系统架构的信息。运行此命令:

    uname -a
    

    输出将类似于:

    Linux xxxxxxxxxxxx 5.10.0-0.deb10.9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 GNU/Linux
    

    这显示了内核版本(例如 5.10.0)和架构(例如 x86_64,即 64 位)。确切细节可能有所不同。

  3. 检查容器的主机名。运行此命令:

    hostname
    

    输出将是一个唯一标识符,例如:

    xxxxxxxxxxxx
    

    这是容器的主机名,由 Docker 自动生成,且对每个实例都是唯一的。

  4. 如果你想进一步探索,请保持在容器终端内。如果你需要返回 LabEx 虚拟机终端,请输入 exit。你可以随时使用 docker exec -it kali-container /bin/bash 重新连接。

恭喜你。你已经使用简单的命令检查了 Kali Linux 的版本和系统信息。这完成了在 Docker 容器中设置和探索 Kali Linux 环境的基础实验。

总结

在本实验中,你学习了如何在 LabEx 虚拟机中使用 Docker 设置和管理 Kali Linux 环境。你从拉取并启动 Kali Linux Docker 容器开始,访问了其终端并验证了设置。然后,你通过基本命令探索了终端界面,以了解该环境。你还回顾了 Kali 如何使用 apt 进行包管理,并了解到免费版环境无法访问外部软件包镜像源,因此在本实验中,软件包更新和安装命令仅作为参考。最后,你检查了 Kali Linux 的版本和系统信息以确认设置。这些步骤为你后续在容器化环境中进行网络安全任务提供了基础性的理解。