vulhub | kali Linux搭建vulhub靶场(超详细)


前言


提示:在搭建vulhub之前,可以看看我的搭建心得,或许对你有帮助哦!

前段时间,我重装了电脑系统,导致很多环境配置丢失。最近终于有时间,决定重新搭建vulhub环境。然而,这一过程并不顺利。首先,Kali系统更新失败;其次,Docker与Docker Compose版本不兼容;最后,由于网络限制,国内无法直接拉取所需的Docker镜像,多个国内镜像源也相继失效。好在,经过一番努力,这些问题都解决了,也总结了一些经验。下面我就和大家分享一下具体的搭建过程,希望能帮到有需要的朋友!

提示:以下是本篇文章正文内容,下面案例可供参考

一、Vulhub是什么?

Vulhub 是一个基于 Docker 的漏洞环境集合,里面包含了各种常见的漏洞场景,特别适合用来复现漏洞和学习安全技术。

二、Kali Linux 环境配置

1.Kali Linux 版本选择

我使用的kali版本:Kali Linux 2023.1
Kali Linux 官方下载地址为:https://www.kali.org/releases/
你可以根据自己的需求选择适合的版本(如 ISO 镜像、虚拟机镜像等)。

2.检查系统内核版本

首先,确保你的系统内核版本高于 3.10,因为 Docker 需要较高版本的内核支持。

uname -r # 显示当前系统的内核版本
uname -a # 显示系统的详细信息,包括内核名称、版本、主机名、硬件架构等

在这里插入图片描述
如果内核版本低于 3.10,你需要升级内核或选择一个支持 Docker 的操作系统。

3.更换软件源并更新系统

编辑 /etc/apt/sources.list 文件,将当前的源替换为适合你需求的源。更换源可以加快下载速度并提高软件包的稳定性,但请务必选择可靠的源,并遵守相关法律法规。目前,我使用的是系统默认的源。

使用以下命令更新软件包列表并升级已安装的软件包:

sudo apt-get update  # 更新软件包索引,从配置的软件源中获取最新的软件包列表
sudo apt-get upgrade  # 升级系统中已安装的软件包到最新版本

出现以下错误,可能需要更新密钥环::在这里插入图片描述

wget -q -O - https://archive.kali.org/archive-key.asc | sudo apt-key add

在这里插入图片描述
更新密钥环以后,更新软件包索引
在这里插入图片描述
升级系统中已安装的软件包到最新版本(可以不升级,对后续操作不影响)
在这里插入图片描述
至此,Kali Linux 环境配置已完成。

三、Docker环境配置

1.安装Docker

使用以下命令安装 Docker:

apt-get install docker.io

在这里插入图片描述
在这里插入图片描述
安装完成后,查看 Docker 版本信息:

docker --version  # 显示 Docker 客户端的版本信息
docker version  # 显示 Docker 客户端和服务端的详细信息,包括版本号、API 版本、Go 版本等

在这里插入图片描述

2.启动并启用 Docker 服务

如果你只是临时使用 Docker,仅在需要时手动启动服务:

sudo systemctl start docker  # 启动 Docker 服务

如果你需要 Docker 服务长期运行,建议设置开机自启:

sudo systemctl enable docker  # 设置 Docker 服务开机自启
sudo /lib/systemd/systemd-sysv-install enable docker  # 使用 sysv-init 兼容工具启用 Docker 服务

检查 Docker 状态:

sudo systemctl status docker.service  # 查看 Docker 服务的运行状态

在这里插入图片描述
确保服务状态显示为 active (running)(绿色)。

3.测试 Docker

运行 hello-world 镜像,测试 Docker 是否正常工作:

sudo docker run hello-world

在这里插入图片描述
如果一切正常,你将看到 Hello from Docker! 的输出。

4.配置 Docker 镜像加速(可选)

如果出现以下错误,可能是网络问题,建议配置 Docker 镜像加速来提升下载速度:

Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

在这里插入图片描述

配置步骤:

创建并编辑 /etc/docker/daemon.json 文件:

sudo mkdir -p /etc/docker  # 创建 Docker 配置目录
sudo vi /etc/docker/daemon.json  # 编辑配置文件

添加镜像加速地址:
在文件中添加以下内容(以多个国内镜像源为例)

{
  "registry-mirrors": [
        "https://docker.sunzishaokao.com",
        "https://docker.1ms.run",
        "https://docker.1panel.live",
        "https://docker.anyhub.us.kg"
  ]
}

重新加载配置并重启 Docker 服务:

sudo systemctl daemon-reload  # 重新加载系统服务配置
sudo systemctl restart docker  # 重启 Docker 服务
sudo systemctl status docker  # 检查 Docker 服务状态

检查配置是否生效,运行以下命令,查看 Docker 配置信息:

docker info

在这里插入图片描述
在输出中查找 Registry Mirrors,确认配置的镜像加速地址已成功应用。

注意事项:

如果配置后 Docker 仍无法正常工作,可能是镜像源不可用。目前许多国内镜像源存在不稳定的情况,建议尝试其他镜像源或直接使用官方源。
这里推荐一篇师傅写的文章,内容非常实用,可以参考一下:https://www.kelen.cc/dry/docker-hub-mirror

四、安装Docker Compose

自 Docker 20.10.0 版本起,Docker Compose 作为子命令集成到 Docker CLI 中,成为 Docker Compose V2。与之前的 Compose V1(Python 版 docker-compose)相比,V2 提供了更强大的功能,包括改进的 CLI 体验和优化的 BuildKit 构建性能。从 2023 年 7 月 起,Compose V1 已停止更新,并在 Docker Desktop 新版本中不可用。因此,Vulhub 不再需要单独安装 docker-compose,文档也已更新为使用 docker compose 子命令。

我的Docker 版本是 26.1.5,远高于 20.10.0,因此应该自带 docker compose 功能。
运行以下命令,检查是否支持 docker compose:

docker compose version

如果输出类似以下内容,说明 docker compose 已安装:
在这里插入图片描述
如果提示命令未找到,则进行如下步骤:
在这里插入图片描述
查找 docker compose 的文件位置
Docker Compose V2 通常作为 CLI 插件安装,默认路径可能位于以下目录之一:

/usr/libexec/docker/cli-plugins
/usr/local/lib/docker/cli-plugins
~/.docker/cli-plugins

如果未找到 docker compose 文件,可以手动下载并安装 Docker Compose 二进制文件。
访问 Docker Compose 的 GitHub 发布页面::https://github.com/docker/compose/releases
根据你的系统架构,下载对应的二进制文件:

uname -s  # 查看操作系统类型(例如:Linux)
uname -m  # 查看系统架构(例如:x86_64)
  • 对于 64 位 Linux 系统,下载文件名为:docker-compose-linux-x86_64。
  • 对于 ARM 64位系统,下载文件名为:docker-compose-linux-aarch64。
    在这里插入图片描述

将下载的文件移动到 /usr/libexec/docker/cli-plugins/ 目录:

mv docker-compose-linux-x86_64 /usr/libexec/docker/cli-plugins/docker-compose
chmod +x /usr/libexec/docker/cli-plugins/docker-compose  #赋予可执行权限
docker compose version  #查看docker compose版本信息

在这里插入图片描述至此,Docker Compose 环境配置已完成。

五、Vulhub搭建

1.下载 Vulhub

Vulhub 是一个基于 Docker 的漏洞环境集合,可以通过以下命令下载:

# 下载项目
wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip
# 解压
unzip vulhub-master.zip
# 进入解压后的目录
cd vulhub-master

在这里插入图片描述

2. 启动漏洞环境

进入某个漏洞/环境的目录,例如 Flask SSTI:

cd flask/ssti

在这里插入图片描述
启动环境:

docker compose pull  # 拉取所需镜像
docker compose up -d  # 启动环境
docker images #列出本地所有镜像

在这里插入图片描述
等待容器启动,如果你已经启动了容器,可以通过以下命令查看端口映射:

docker ps

在这里插入图片描述
你可以通过浏览器访问http://localhost:8000 来测试漏洞环境。
在这里插入图片描述
在这里插入图片描述

再次提醒:如果docker compose pull 拉取所需镜像失败,可能是镜像源不可用。目前许多国内镜像源存在不稳定的情况,建议尝试其他镜像源或直接使用官方源。

3.停止和清理

当你完成漏洞测试后,可以使用以下命令停止并删除容器:

sudo docker-compose down

只会清理容器、网络和挂载卷,不会删除镜像。

至此,vulhub搭建已完成。

六、其他搭建方案

若上述方法仍无法解决Docker镜像拉取问题,为您提供两种备选部署方案。搭建流程相似,只是采用的靶场环境不同,本文章是Vulhub搭建,推荐文章是Vulfocus搭建。具体部署步骤可参考《手把手教你两种Vulfocus靶场部署方案——本地Docker加速妙招+阿里云一键部署指南》

<think>好的,我现在需要解决用户关于如何正确卸载RocketMQ并完全清除配置和数据的问题。首先,我需要回顾用户提供的引用内容,看看有没有直接相关的信息。用户引用了几个关于RocketMQ Dashboard配置、Java 11的TLS变化、Connector架构、同步复制原理以及服务器配置文件的路径。虽然这些引用中没有直接提到卸载步骤,但可能涉及配置文件和数据的存储位置。 接下来,我应该整理卸载RocketMQ的一般步骤。通常,卸载软件包括停止服务、删除安装文件、清理配置文件和残留数据,以及清除日志和临时文件。对于RocketMQ,可能还需要考虑NameServer和Broker的配置,以及持久化的数据存储位置。 根据引用[5],RocketMQ的配置文件位于`/usr/soft/rocketmq/conf/`,这可能意味着安装目录在`/usr/soft/rocketmq/`下。因此,卸载时需要删除整个安装目录。此外,数据存储路径可能在配置文件中指定,比如`storePathRootDir`,默认可能在用户主目录下的`store`目录,如`/root/store`,需要检查并删除这些数据目录。 引用[4]提到了同步复制方式,说明数据可能在Master和Slave节点都有存储,所以卸载时需要确保所有相关节点都清理干净。如果有集群环境,需要逐个节点处理。 日志文件的位置通常在安装目录的logs文件夹,或者系统日志路径,如`/var/log/rocketmq`,这也需要删除。临时文件可能在`/tmp`目录下,但可能已被系统自动清理,不过最好手动检查。 此外,用户可能使用了systemd或其他服务管理工具来管理RocketMQ服务,需要停止并禁用这些服务。检查是否有相关的服务文件,如`/etc/systemd/system/rocketmq.service`,并删除它们。 最后,如果用户通过包管理器安装,可能需要用相应的命令卸载,但RocketMQ通常通过二进制包安装,所以直接删除文件和目录即可。 需要提醒用户,删除前确认备份重要数据,并确保所有相关服务已停止。同时,如果是集群环境,每个节点都要执行相同的清理步骤。可能还需要检查crontab是否有定时任务需要清理,以及环境变量中的相关设置。</think>### 如何完全卸载RocketMQ并清除配置和数据? #### 步骤1:停止所有RocketMQ服务 - **停止Broker和NameServer** 若通过脚本启动,使用以下命令停止服务(假设安装路径为`/usr/soft/rocketmq`): ```bash cd /usr/soft/rocketmq/bin ./mqshutdown broker ./mqshutdown namesrv ``` 若使用`systemd`管理服务(如`rocketmq.service`),执行: ```bash systemctl stop rocketmq systemctl disable rocketmq ``` #### 步骤2:删除安装目录 - 根据引用[5]中的路径示例,删除安装目录及文件: ```bash rm -rf /usr/soft/rocketmq ``` #### 步骤3:清理数据存储目录 - **删除消息存储数据** RocketMQ默认数据存储路径为`storePathRootDir`(参考配置文件中定义,如`/root/store`)[^4]: ```bash rm -rf /root/store ``` 若配置文件中自定义了路径(如`broker-a.properties`中`storePathRootDir=/data/rocketmq`),需删除对应目录。 #### 步骤4:清除配置文件和日志 - **删除配置文件** 配置文件通常位于`/usr/soft/rocketmq/conf`(引用[5]): ```bash rm -rf /usr/soft/rocketmq/conf/* ``` - **清理日志文件** 日志默认在安装目录的`logs`文件夹或`/var/log/rocketmq`: ```bash rm -rf /usr/soft/rocketmq/logs/* rm -rf /var/log/rocketmq ``` #### 步骤5:检查并清理系统残留 - **删除临时文件** 检查`/tmp`目录下的RocketMQ相关文件: ```bash rm -rf /tmp/rocketmq ``` - **清理环境变量** 若在`/etc/profile`或用户配置中设置了环境变量(如`ROCKETMQ_HOME`),手动编辑文件删除相关行。 #### 步骤6:集群环境特殊处理 - **多节点卸载** 若为集群部署(如引用[4]中的同步复制架构),需在所有Master和Slave节点重复上述步骤。 #### 注意事项 1. **备份重要数据**:删除前确认无重要消息未消费。 2. **防火墙规则**:若修改过防火墙规则,需还原相关设置。 3. **依赖组件清理**:如使用RocketMQ Dashboard(引用[1]),需单独卸载Dashboard服务。 --- ###
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值