GitLab攻击工具链:一键洞穿CI/CD密码的核武器

admin 2026-07-22 07:21:07 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Glato是Praetorian公司开源的GitLab安全评估工具,专用于红队对抗与蓝队防御场景。该工具支持令牌分析、项目枚举、群组枚举、分支保护检测、密钥枚举、运行时枚举及有毒管道攻击等核心功能,可对GitLab实例进行深度探测与漏洞利用。工具已归档,技术能力整合至下一代产品Trajan中。 综合评分: 75 文章分类: 渗透测试,红队,内网渗透,安全工具


cover_image

GitLab攻击工具链:一键洞穿CI/CD密码的核武器

棉花糖糖糖 棉花糖糖糖

棉花糖网络安全工具箱

2026年6月5日 10:52 四川

在小说阅读器读本章

去阅读

郑重声明:本文仅作技术研究交流,切勿用于未授权渗透测试。使用者需严格遵守适用法律法规,因不当使用导致的一切后果概由使用者自行承担。

重点导读功能概览

Glato(GitLab Attack Toolkit)是Praetorian公司开源的GitLab安全评估工具。该工具专用于红队对抗与蓝队防御场景,可对GitLab实例的公开及私有仓库进行深度探测与漏洞利用。

该工具基于Python 3.7+开发,支持OS X与Linux系统,提供Token认证与Cookie认证两种身份验证方式。

重点导读核心能力

PART 01令牌分析

支持对GitLab个人访问令牌(PAT)与会话Cookie进行权限范围评估。可检测令牌所具备的API访问级别与实际权限边界,帮助判断横向移动潜力。

PART 02项目枚举

自动发现目标实例中所有可访问的项目,提取项目元数据、可见性级别、成员列表及访问控制策略。支持批量枚举与结果导出。

PART 03群体枚举

映射GitLab组织内的群组结构,分析群组级别权限模型与继承关系,识别潜在的高权限群组与权限升级路径。

PART 04分支保护检测

识别仓库分支保护规则配置缺陷,发现允许强制推送或缺少必需审批流程的分支,定位低权限开发者直接提交代码的入口点。

PART 05密钥枚举

该功能支持从多个层级提取敏感信息:

  • 项目级CI/CD变量与安全文件
  • 群组级CI/CD变量
  • 实例级CI/CD变量
  • 管道YAML递归插值分析(当API权限受限时触发)
  • 下游管道标志密钥

PART 06运行时枚举

对自托管GitLab运行器进行全面探测,分析要点包括:

  • 注册的自托管运行器发现
  • 运行器标签需求解析
  • 近期管道日志使用模式分析
  • 需求差距识别
  • 完整攻击面映射

PART 07有毒管道攻击

通过管道执行实现敏感信息外泄,整个攻击流程如下:

  1. 在目标项目创建新分支
  2. 生成非对称密钥对
  3. 向仓库推送恶意.gitlab-ci.yml文件
  4. 管道触发后,工具获取构建日志中的加密对称密钥
  5. 使用私钥解密对称密钥
  6. 解密环境变量输出内容
  7. 清理攻击痕迹

PART 08API速率控制

内置请求节流机制,可配置请求间隔时间,避免触发目标实例的异常检测规则。

重点导读技术架构

glato/
├── attack/          # 攻击模块
├── enumerate/      # 枚举模块
├── gitlab/         # GitLab API交互
├── models/         # 数据模型
├── services/       # 服务抽象
└── util/           # 工具函数

核心模块说明:

  • attack/attack.py – 攻击基类与通用逻辑
  • attack/cicd_attack.py – CI/CD攻击实现
  • enumerate/enumerate.py – 枚举逻辑主体
  • gitlab/api.py – GitLab REST API封装
  • gitlab/secrets.py – 敏感信息提取
  • gitlab/workflow_parser.py – 管道YAML解析
  • models/ – 群组、项目、运行器、安全文件、用户、变量等数据模型

重点导读安装方式

通过pip安装:

bashgit clone https://github.com/praetorian-inc/glato.git
cd glato
python3 -m venv venv
source venv/bin/activate
pip install .

或使用Docker:

bashdocker build -t glato .

重点导读认证配置

PART 09Token认证

设置环境变量或运行时指定:

bashexport GL_TOKEN=<your_token>
glato [options]

PART 10Cookie认证

准备cookies.json配置文件:

json{
  "azure_access": "login.microsoftonline.com<cookies>",
  "gitlab_session": "gitlab.example.com_gitlab_session=value;"
}

挂载配置运行:

bashdocker run -v $(pwd)/cookies.json:/app/glato/config/cookies.json glato --cookie-auth [options]

重点导读典型应用场景

PART 11确定受攻击的GitLab PAT范围

在红队评估中,若在脚本里发现硬编码的个人访问令牌,可使用以下命令验证其攻击潜力:

bashglato --enumerate-token

PART 12枚举项目访问权限

bashglato --enumerate-projects
glato --enumerate-secrets  # 同时提取CI/CD变量
glato --throttle <seconds> # 添加请求间隔

PART 13使用替代GitLab URL

bashglato --enumerate-projects -u https://gitlab.yourenterpriseurl.io

PART 14枚举运行器

bashglato --self-enumeration --enumerate-projects --enumerate-groups

PART 15通过PPE提取密钥

bashglato --exfil-secrets-via-ppe --project-path <path> --branch <name>

重点导读项目现状

该仓库已归档,不再维护。Praetorian已将技术能力整合至下一代产品Trajan中。

本公众号非项目作者,仅做技术分享。

https://github.com/praetorian-inc/glato

广告时间

低价考证包括但不限于CISP系列、PMP等等国内网安证书、网络安全交流群请关注公众号后点菜单栏的找棉花糖。

糖心会员站,网络安全必备网站,包括在线内网靶场、web靶场、src靶场、应急响应靶场,以及各种网安资料、教程、方案模版、以及超级多在线工具,99元包年!详细介绍:棉花糖会员站介绍(26年4月26日版本) :在线内网靶场、网安资料方案、在线工具全能资源站,看完介绍百分百心动!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:棉花糖网络安全工具箱 棉花糖糖糖 棉花糖糖糖《GitLab攻击工具链:一键洞穿CI/CD密码的核武器》

评论:0   参与:  0