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

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

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

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

工具目录

分类

查看所有分类
Loading categories
purpleteam-s2-containers — Stage two containers | Kitploit
工具/GitLabGitLab/purpleteam-labs/purpleteam-s2-containers
Vulnerability ScannersContainer SecurityDynamic Analysis (Sandboxing)Web SecurityPenetration TestingCloud SecurityDevSecOpsLearning & EducationArchived

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitLabpurpleteam-labs/purpleteam-s2-containers

purpleteam-s2-containers

Stage two containers

查看仓库
15年前尚未审核

purpleteam 标志

purpleteam 第二阶段容器


purpleteam 的第二阶段容器




这些容器是根据构建用户配置(任务)输入(即您定义的 testSession 数量)动态启动的。

如果您打算在 local 环境中运行 purpleteam 后端,以下配置是相关的。在 cloud 环境中,这些操作会自动完成。

克隆此仓库。

定义环境变量

app-slave (Zap)

我们在 app-slave 目录中直接使用 .env 文件进行测试。

ZAP_API_KEY

确保您已为 ZAP_API_KEY 环境变量赋值。

ZAP_API_KEY 可以任意选择,只要确保除了为 app-slave 定义该变量外,还要将其添加到 app-scanner 项目配置中。app-scanner 项目需要配置 Zap API Key 以在第二阶段容器中对 Zap 进行身份验证。对于 app-scanner 项目,这需要在以下位置设置:
{ "slave": { "apiKey": <zap-api-key-here> } }

HOST_ZAP_LOG4J_PROPERTIES_PATH 和 ZAP_LOG4J_PROPERTIES_PATH_MOUNT_TARGET

如果需要 Zap 调试日志,您还需要添加 LOG4J 调试配置的环境变量。

.env 文件

如果您选择使用 .env 文件,添加所有这些环境变量的内容如下所示:

root@kitploit:~
ZAP_API_KEY=<zap-api-key-here>
HOST_ZAP_LOG4J_PROPERTIES_PATH=<absolute-path-to/purpleteam-s2-containers/app-slave/log4j.properties>
ZAP_LOG4J_PROPERTIES_PATH_MOUNT_TARGET=/home/zap/.ZAP/log4j.properties

调试

app-slave (Zap)

调试日志

前提是您已设置上述讨论的环境变量:

为了启用本地环境中运行的 app-slave (Zap) 容器的调试日志,请取消注释 volumes 数组和包含 source 键(值为环境变量 HOST_ZAP_LOG4J_PROPERTIES_PATH)的元素。

有关实际查看日志的详细信息,请参见下文。

与 Zap 交互

您可以在测试运行时与 Zap 交互(查询 Zap UI)。我们过去发现这对于在调试 app-scanner 时检查 Zap 状态很有用。

  1. 确认 appslave_zap_[n] 容器正在运行:
    root@kitploit:~
    docker stats
    
  2. 查看 appslave_zap_[n] 容器绑定到哪个主机端口:
    root@kitploit:~
    docker container ls
    
    端口范围是 8080-8091(包含两端),如 docker-compose.yml 中所定义。
    容器内 Zap 监听的端口始终为 8080。
  3. 在浏览器中使用 FoxyProxy 设置代理到 localhost:[zap-host-port]
    FoxyProxyDetails_Zap-min
    可选:在 FoxyProxy 中设置以下 URL 模式:zap:8080/*
    FoxyProxyURLPattern_Zap-min
    如果使用 URL 模式,则可以保持 FoxyProxy 开启,选择“根据预定义的图案和优先级使用代理”。否则,您只需选择所创建的特定代理。
  4. 访问 http://zap:8080/
    您的请求将通过主机端口代理,并由 FoxyProxy 配置中主机端口对应的容器内的 zap 进程响应。

selenium-standalone

调试日志

为了启用本地环境中运行的 Selenium 容器的调试日志,请取消注释 environment 数组以及 chrome 和/或 firefox 的 SE_OPTS=-debug 元素。

有关实际查看日志的详细信息,请参见下文。

查看 Selenium 容器中的浏览器

以下内容概述了如何查看此项目中运行的任意 Selenium 容器内的浏览器。

docker-compose.yml 设置:

  • 将容器镜像替换为 -debug 镜像。-debug 镜像可能已被注释,因此只需注释掉常规镜像,取消注释末尾附加了 -debug 的镜像即可
  • 通过取消注释 5900 端口范围,确保您可以访问容器内的 VNC 服务器。将外部端口指定为范围(例如:5900-5901),您可以同时 VNC 到多个容器。在示例中,我们允许同时打开两个会话。如果需要 VNC 到两个以上的容器,只需扩大外部端口范围

VNC 客户端设置:

  1. 您需要一个 VNC 客户端来打开与容器内 VNC 服务器的连接。我们在 Linux Mint 上使用 Remmina 远程桌面客户端取得了成功。通过软件管理器安装 Remmina-plugin-vnc

  2. 运行您的 Remmina 远程桌面客户端

  3. 创建新条目。如果您打算同时 VNC 到多个 Selenium 容器,可以像下面这样设置每个条目:

更多详细信息请参见 SeleniumHQ github

查看 Selenium 容器内的浏览器

一旦 Selenium 容器启动(在终端中保持 docker stats 运行可以方便地查看此信息),您可以使用 docker container ls 确认哪个 Selenium 容器正在使用哪个外部端口,因为 Docker 不知道您将哪些端口分配给了 VNC 客户端条目,因此某个 VNC 客户端条目的名称可能不一定与同名的 Selenium 容器匹配。因此,最好使用 docker container ls 确认端口映射。

当有多个测试会话时,为了将 Selenium 容器与使用的测试会话关联起来,您可能需要查看正在运行的 app-scanner 日志。您可能还需要确保 app-scanner 配置为日志级别 debug,以便看到以下部分或全部日志消息:

[app.parallel] cucCli process with PID "28" has been spawned for test session with Id "lowPrivUser"

[app.parallel] cucCli process with PID "34" has been spawned for test session with Id "adminUser"

[pid-28,world] seleniumContainerName is: seleniumstandalone_chrome_1

[pid-34,world] seleniumContainerName is: seleniumstandalone_chrome_2

在此示例中,我们在构建用户配置(任务)中配置了两个测试会话。一个具有 id lowPrivUser,另一个具有 id adminUser。在此示例中,lowPrivUser 测试会话的进程 PID 为 28,adminUser 测试会话的进程 PID 为 34。
在接下来的两条日志消息中,通过关联 PID,我们看到 lowPrivUser 测试会话正在运行名为 seleniumstandalone_chrome_1 的容器,而 adminUser 测试会话正在运行名为 seleniumstandalone_chrome_2 的容器。
无法保证哪个测试会话会运行哪个 seleniumstandalone_chrome_[n] 容器,因此如果您需要确定,请使用此关联技术。

要 VNC 到 Selenium 容器,一旦 Remmina 运行,只需双击上面创建的一个或多个 VNC 条目,您应该能够看到正在被操作的浏览器……前提是 app-scanner 中的 Cucumber 测试步骤确实执行到了该点。
您当然可以减慢测试速度、暂停测试、使用调试器逐步执行。这些详细信息在 purpleteam 维基的工作流页面中。

重定向和查看容器日志

在本地环境中,如果您愿意,可以保持 docker stats 运行,以便查看哪些容器正在运行、何时启动和停止。这也会为您提供以下命令所需的容器名称。

为了查看第二阶段容器的日志,可以使用以下命令跟踪容器的 stdout(以及 stderr,因为 Docker 合并了 stdout 和 stderr):

root@kitploit:~
docker logs --follow [容器名称]

如果您希望同时将日志保存到文件:

root@kitploit:~
docker logs --follow [容器名称] |tee output.log$(date '+%Y-%m-%d_%T')

如果您希望将日志保存到文件而不在终端中查看:

root@kitploit:~
docker logs --follow [容器名称] > output.log$(date '+%Y-%m-%d_%T')
下载工具
键值
名称seleniumstandalone_chrome_1
协议VNC - 虚拟网络计算
基本选项卡中
服务器127.0.0.1:5900
密码secret
颜色深度真彩色(24位)# 这是我们唯一能用的选项
质量差(最快)
键值
名称seleniumstandalone_chrome_2
协议VNC - 虚拟网络计算
基本选项卡中
服务器127.0.0.1:5901
密码secret
颜色深度真彩色(24位)# 这是我们唯一能用的选项
质量差(最快)