Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
pentest_lab — 使用 docker-compose 搭建的本地渗透测试实验室。 | Kitploit
工具/GitHubGitHub/oliverwiegers/pentest_lab
Web安全渗透测试学习与教育实验室与实践
GitHuboliverwiegers/pentest_lab

pentest_lab

使用 docker-compose 搭建的本地渗透测试实验室。

查看仓库
218551年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

渗透测试实验室

我不再积极开发此项目,但会修复错误并查看问题和拉取请求。 欢迎提供帮助 :)

此本地渗透测试实验室利用 docker compose 启动多个受害者服务和一个运行 Kali Linux 的攻击者服务。如果第一次运行此实验室,将需要一些时间下载所有不同的 docker 镜像。

录屏演示

执行的命令:

  • ./lab.sh --help
  • ./lab.sh --check-dependencies
  • ./lab.sh --up --all-services
  • ./lab.sh --info
  • ./lab.sh --overview all
  • ssh root@kali -o "UserKnownHostsFile /dev/null"
  • ./lab.sh --down

使用方法

如果所有必需的依赖项都已安装,实验室应该开箱即用。启动时实验室会运行依赖检查。

启动实验室

root@kitploit:~
git clone https://github.com/oliverwiegers/pentest_lab
cd pentest_lab
./lab.sh -u

默认情况下,实验室将启动所有受害者服务和一个红队服务。其他服务可以启动和添加。更多信息请参见下文。

有关进一步使用信息,请考虑阅读 ./lab.sh -h | --help 显示的消息。

依赖项

  • bash
  • find
  • sed
  • yq(Python 版本,不是 yq-go)
  • docker
  • docker-compose

实验室内置依赖检查,启动时运行。也可以手动运行 ./lab.sh -C。

Heimdall

img

为方便使用,添加了 Heimdall 界面,暴露在 localhost:7000。所有暴露到本地机器并可通过浏览器访问的服务都列在其中。对界面所做的更改会自动保存到 ./etc/heimheimdall。然后在停止实验室时,此目录会转换为 ./etc/heimdall.tar。此 tar 归档将在启动时解压。./etc/heimdall.tar 和 ./etc/heimdall 默认被 git 忽略。

使用的壁纸可以在这里找到。

服务

此实验室知道以下四种类型的服务。

  • red_team(红队)
  • blue_team(蓝队)
  • victim(受害者)
  • monitoring(监控)

默认的红队服务——Kali 服务——是一个相当基础的 Kali 实例。尽管如此,已安装 kali-tools-web 元包。对于 Web 应用程序测试实验室来说,基本的 Web 测试工具似乎很有用。可以通过编辑构建镜像的 Dockerfile 来更改。该 Dockerfile 位于 ./dockerfiles/kali。Kali 服务默认安装这些 dotfiles。也可以通过调整 Dockerfile 来更改。

受害者服务

  • juice-shop
  • hackazon
  • tiredful-api
  • WebGoat
  • bwapp
  • DVWA
  • XVWA
  • ninjas

监控服务

img img

即使监控服务也是蓝队服务,但它们被分到不同的类别。

此堆栈提供日志和性能观察功能。

有关单个实例的更多信息,请参见下文。

目前监控设置由以下服务组成:

  • Grafana - 可视化日志和指标。
  • Loki - 将 docker 日志发送到 grafana。
  • Prometheus - 将指标发送到 grafana。
  • cAdvisor - 收集容器资源使用情况和指标,并发送到 prometheus。

Grafana

Grafana 实例提供两个仪表板,一个用于日志,一个用于指标。

  • 日志仪表板
  • 指标仪表板

这些相当基础。可以通过 Grafana 界面添加更多仪表板。删除 grafana 卷时,这些仪表板将丢失。要永久添加仪表板,请查阅 Grafana 的配置文档。用于配置的目录位于 ./etc/grafana/。

要通过 Grafana 界面更改设置,必须以 admin 身份登录。凭据是默认的:admin:admin。#hacktheplanet

Loki

为了让 Loki 能够收集 docker 日志,此实验室将 Loki Docker Driver 作为 Docker 插件安装。

Prometheus / cAdvisor

为了让 Prometheus 能够访问集群中运行的容器的性能指标,使用了 cAdvisor。

添加服务

要添加其他服务,需要一些 docker-compose.yml 文件的知识。此仓库根目录中的 docker-compose.yml 在实验室启动时自动生成。此过程使用位于 ./etc/services 下的 yaml 文件。

root@kitploit:~
➜  pentest_lab tree ./etc/services
./etc/services
├── blue_team
│   └── endlessh.yml
├── default.yml
├── monitoring
│   ├── cadvisor.yml
│   ├── grafana.yml
│   ├── loki.yml
│   └── prometheus.yml
├── red_team
└── victim
    ├── beginner
    │   ├── bwapp.yml
    │   ├── dvwa.yml
    │   ├── hackazon.yml
    │   ├── tiredful.yml
    │   ├── webgoat.yml
    │   └── xvwa.yml
    ├── expert
    │   └── juice-shop.yml
    └── intermediate
        └── ninjas.yml

启动哪些服务由调用 ./lab.sh 时对应的选项控制。要永久禁用某个服务,请移除 .yml 文件扩展名。

一个受害者服务的示例:

root@kitploit:~
bwapp:
  labels:
    class: 'victim'
    cluster: 'pentest_lab'
    level: 'beginner'
  image: raesene/bwapp
  ports:
    - '8080:80'
  networks:
    pentest_lab:
      ipv4_address: 10.5.0.100
  hostname: bwapp
  volumes:
    - bwapp-data:/var/lib/mysql

注意:如果某个服务在首次使用时需要某种安装,请使用 docker inspect <image_name> 找出 docker 镜像存储数据的位置,并添加指向该目录的卷。在上面的示例中,这是:

root@kitploit:~
  volumes:
    - bwapp-data:/var/lib/mysql

这确保您不必在每次重新启动实验室时都重新设置该服务。但是,如果您想重置实验室并完全重新开始,可以使用 ./lab.sh -p | --prune。这将删除实验室拥有的所有资源。

IP 范围

我们使用静态 IP 地址的原因是 Kali 机器需要有一个不变的 IP 地址,以简化 SSH 登录。更多信息请参见下面的技巧/窍门部分。

  • 红队服务从 10.5.0.5 开始
    • Kali 服务的地址为 10.5.0.5。
  • 蓝队服务从 10.5.0.50 开始
  • 受害者服务从 10.5.0.100 开始
  • 监控服务从 10.5.0.200 开始

服务信息

如果您添加的服务有其他对运行此实验室的人有用的信息,可以将这些信息添加到 ./etc/services_info。运行 ./lab.sh -i 时,此文件的内容将逐行原样打印。

技巧/窍门

SSH

为了轻松连接到 Kali 服务,可以将以下内容添加到 $HOME/.ssh/config:

root@kitploit:~
Host kali
    User root
    Hostname 10.5.0.5
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking accept-new

这样,您就可以运行 ssh kali 而不是 ssh [email protected] -o "UserKnownHostsFile /dev/null"。

对于 tmux 用户,以下配置将自动附加到 tmux 会话:

root@kitploit:~
Host kali
    User root
    Hostname 10.5.0.5
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking accept-new
    RequestTTY yes
    RemoteCommand tmux -L tmux new-session -As hacktheplanet
下载工具