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

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

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

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

工具目录

分类

查看所有分类
Loading categories
SteppingStones — 基于 Web 的红队活动日志记录、报告与态势感知工具,集成 Cobalt Strike 和 BloodHound。 | Kitploit
工具/GitHubGitHub/nccgroup/steppingstones
脚本与自动化信息收集渗透测试命令与控制实用工具与框架红队
GitHubnccgroup/steppingstones

SteppingStones

基于 Web 的红队活动日志记录、报告与态势感知工具,集成 Cobalt Strike 和 BloodHound。

查看仓库
24334405天前Kitploit 审核通过
网站

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Stepping Stones

目的

一个用于红队活动的中心枢纽,有助于记录保存、态势感知和汇报。 Stepping Stones 为团队提供了一个基于 Web 的界面,用于记录活动并生成报告片段。 该界面的设计足够快捷,可在整个任务过程中使用,而不仅仅是在汇报阶段。

发布博客文章

安装

Stepping Stones 是一个 Python Django 应用程序,要运行本地副本,请执行以下操作:

  1. 安装最新版本的 Python 3(已在 Windows 和 Linux 上使用 3.12.2 测试)
  2. 进入此仓库副本的根目录
  3. 创建虚拟环境,使依赖项与其他应用隔离:python -m venv .venv
  4. 激活虚拟环境:运行 .venv\Scripts\activate,或在 *nix 系统上运行 source .venv/bin/activate
  5. 安装依赖项:pip install -r requirements.txt
  6. 确保第三方后台任务模块包含所有必需的迁移: python manage.py makemigrations background_task
  7. 更新数据库架构:python manage.py migrate
  8. 启动应用程序:
  • 如果在带有 systemd 的 Linux 系统上运行,请参阅 systemd 指南
  • 对于开发版本:
    • 同时运行 python manage.py runserver 和 python manage.py process_tasks
  • 对于生产版本:
    • 运行 python manage.py check --deploy 获取加固建议,然后遵循类似以下指南: https://docs.djangoproject.com/en/6.0/howto/deployment/
  • 访问应用程序以配置一个任务和一个管理员用户:例如,如果在本地运行,请访问 http://127.0.0.1:8000
    • 注意:创建的用户也会用于主应用程序,并会作为已记录事件的“红队操作员”显示, 因此请选择适当的用户名,例如“ST”或“stephen”,而不是“admin”。如果使用 Cobalt Strike 集成, 为两个工具使用相同的用户名将有助于集成。
  • Cobalt Strike 集成

    • 将已获许可的 Cobalt Strike 放置在 /opt/cobaltstrike 或 c:\tools\cobaltstrike-dist\cobaltstrike

    在团队服务器上——在防火墙中打一个洞,以允许 Stepping Stones 连接,例如:

    • 在 AWS 上,将 Stepping Stones 安全组设置为允许访问 Team Server 上的 50050 端口
    • 在主机上,确保防火墙也允许入站流量,例如:sudo ufw allow proto tcp from 172.31.16.0/20 to any port 50050

    更新应用程序

    如果您运行的是本地副本,当 git 中的代码已更新并且您想要使用新功能时:

    1. 停止这两个服务,例如使用 systemd:
      • sudo service ssbot stop
      • sudo service steppingstones stop
    2. 获取最新版本,例如从 https://github.com/nccgroup/SteppingStones/archive/refs/heads/main.zip
    3. 解压下载的文件,并将其覆盖复制到部署目录中,例如:rm -rf /tmp/stepping-stones-main; unzip /tmp/stepping-stones-main.zip && cp -R /tmp/stepping-stones-main/* /opt/steppingstones
    4. 在 steppingstones 目录中激活虚拟环境(如果尚未激活):运行 .venv\Scripts\activate,或在 *nix 系统上运行 source .venv/bin/activate
    5. 使用以下命令拉入任何新依赖项:pip install -r requirements.txt
    6. 确保第三方后台任务模块包含所有必需的迁移:python manage.py makemigrations background_task
    7. 运行任何迁移脚本,将本地数据库转换为新架构:python manage.py migrate。
      • 如果 Django 提示您运行 python manage.py makemigrations,请立即停止并联系 Stepping Stones 开发人员——让所有用户使用同一组迁移脚本非常重要,这些脚本应通过开发人员进行协调。
    8. 重新启动这两个服务,例如使用 systemd:
      • sudo service ssbot restart
      • sudo service steppingstones restart
    9. 确保没有错误,例如使用 systemd 检查 journalctl -u steppingstones

    使用干净数据库重新开始

    如果您将同一实例用于不同的任务,并希望归档旧数据后重新开始,您可以:

    • 执行上面 更新应用程序 中的步骤 1 以停止应用程序
    • 重命名 SQLite 数据库:
      • mv db.sqlite3 db.sqlite.OLD_CLIENT_NAME
    • 执行上面 安装 中的步骤 2、4 和 7-9,以创建正确的数据库结构并访问新配置的应用程序。

    备份

    系统使用 SQLite。请定期备份服务器根目录中的 db.sqlite3 文件,或通过 Web UI 进行备份,以保护您的宝贵数据。

    Webhook

    每个已配置的 webhook URL 都将在关键事件发生时收到一份小型 JSON 文档。 JSON 文档的结构始终如下:

    root@kitploit:~
    {
        "type": "notification type",
        "message": "Human readable message"
    }
    

    type 字段可以是以下值之一:

    • new beacon(一个之前未见过的 beacon 已连接到受监控的 Team Server)
    • respawned beacon(一个之前见过的 beacon 已连接到受监控的 Team Server)
    • returned beacon(一个被明确监控以等待重新连接的 beacon 刚刚重新连接)

    要使用这些通知,您可以基于以下蓝图创建一个 https://make.com 场景:

    root@kitploit:~
    {"name":"Webhook to iOS","flow":[{"id":1,"module":"gateway:CustomWebHook","version":1,"parameters":{"hook":129792,"maxResults":1},"mapper":{},"metadata":{"designer":{"x":-386,"y":-129},"restore":{"parameters":{"hook":{"data":{"editable":"true"},"label":"My webhook"}}},"parameters":[{"name":"hook","type":"hook:gateway-webhook","label":"Webhook","required":true},{"name":"maxResults","type":"number","label":"Maximum number of results"}],"interface":[{"name":"type","type":"text"},{"name":"message","type":"text"}]}},{"id":8,"module":"ios:SendNotification","version":1,"parameters":{"device":171760},"mapper":{"body":"{{1.message}}","title":"{{1.type}}","action":"","priority":10,"collapsible":false},"metadata":{"designer":{"x":-31,"y":-128},"restore":{"expect":{"action":{"label":"Default"},"priority":{"label":"Deliver immediately"}},"parameters":{"device":{"data":{"editable":"undefined"},"label":"Personal Phone"}}},"parameters":[{"name":"device","type":"device:apn","label":"Device","required":true}],"expect":[{"name":"title","type":"text","label":"Title","required":true},{"name":"body","type":"text","label":"Body"},{"name":"action","type":"select","label":"Action","validate":{"enum":["open_url"]}},{"name":"priority","type":"select","label":"Priority","required":true,"validate":{"enum":[10,5]}},{"name":"collapsible","type":"boolean","label":"Collapse push notifications","required":true}]}}],"metadata":{"instant":true,"version":1,"scenario":{"roundtrips":1,"maxErrors":3,"autoCommit":true,"autoCommitTriggerLast":true,"sequential":false,"confidential":false,"dataloss":false,"dlq":false},"designer":{"orphans":[]},"zone":"eu1.make.com"}}
    

    通过创建一个空白场景,并使用 Web UI 底部中央的“...”(更多)菜单下的“Import Blueprint”(导入蓝图)功能,即可导入上述蓝图。

    随后还需要两个步骤:

    • 单击 webhook 圆圈,添加一个新的命名 webhook 以生成 URL
    • 单击 Apple 徽标,使用其 integromat 应用将 iPhone 注册到 make.com。

    Webhook 可以通过 Stepping Stones webhook 页面上的一个按钮进行测试。

    安全模型

    Stepping Stones 利用 Django 的模型级权限系统,可以限制用户创建、编辑、查看和删除每种类型的数据模型。 权限组可以在 /admin 控制台中找到,这些组将一组权限分配给组内任何成员,例如适合客户蓝队的权限。

    现有权限组如下:

    角色描述
    Client Blue Team - Read Only可以读取事件和文件页面
    Client Blue Team - Limited Write与 Client Blue Team - Read Only 相同,并具有对事件结果和检测字段的写入权限

    在安装过程中创建的用户会被赋予 "superuser"(超级用户)状态,因此隐式拥有所有可能的权限。 但是,通过管理控制台手动创建用户时,请确保他们未被标记为 "staff"(员工)或 "superuser"(超级用户),这样他们一开始就没有任何隐含权限,因此只能通过加入权限组来获得权限。

    本地化

    用户时区可以通过 /admin 门户进行修改。报告中的时间有意以 UTC 输出,以便蓝队更容易进行关联。

    Stepping Stones 显示的日期格式应与 Web 浏览器的区域设置一致。例如,浏览器配置为美国区域设置的用户,将在 Web UI 和报告片段中以 MM/DD/YYYY 格式查看日期。

    EventStream

    如果其他工具的日志被格式化为基于 JSON 的定制 EventStream 格式,Stepping Stones 即可摄取这些日志。该格式在 SteppingStones 的 Web 界面中有详细说明,包括架构和示例数据。

    一旦 Stepping Stones 摄取了 EventStream 日志,就可以将特定的相关条目克隆为事件,用于生成报告。

    Cobalt Strike 集成详情

    集成 Cobalt Strike 的首选方法是通过 SSBot。这需要在 /opt/cobaltstrike 或 c:\tools\cobaltstrike 中放置一份已获许可的 Cobalt Strike 副本,该副本将用于联系 Web 界面中配置的任何(已启用的)团队服务器。

    集成之后:

    • 源/目标下拉列表将包含 beacon
    • 文件下拉列表将包含通过 CS 上传/下载的文件
    • 凭据选项卡将根据工具输出以及添加到 CS 的任何凭据进行填充。
    • 单个 CS 操作可以转换为事件——请有选择地进行转换,并为每个事件添加上下文,而不是全盘复制操作,以保持报告质量。

    如果 SSBot 未按预期工作,还可以使用以下额外的 CLI 命令:

    • .\manage.py reset_cs_data [-s SERVER] - 将重置从指定团队服务器解析的任何数据;如果未提供名称,则重置所有数据。这不会影响从 CS 日志派生的数据,例如手动克隆的事件或凭据。
    • .\manage.py parse_log_tar <file name> - 将解析从团队服务器打包并获取的 logs 目录内容。注意:这不包含 SSBot 可访问的所有数据,因此不是首选的摄取技术

    BloodHound 集成

    通过 Web UI 配置的 Neo4j 服务器将用于:

    • 当凭据添加了密码,或 beacon 以 system 身份在特定主机上运行时,更新 BloodHound 的 owned 状态。
    • 使用用户和计算机填充源/目标下拉列表
    • 在 Stepping Stones 的凭据部分提供有关账户的附加报告

    报告插件

    可以通过插件扩展 Stepping Stones 的功能。更多文档可在此处获取。

    下载工具