目前,CTF比赛面临极大的AI冲击问题,传统的安全问题已经能通过AI agent得到解决,俗称“一把梭”,而出题人往往为了防止自己的题目被AI轻松解决,会采取各种措施来阻碍;渐渐的,这样措施往往成为正常解题选手的绊脚石,也让CTF这样的比赛氛围转化为与AI的斗智斗勇。
同时,对于选手而言,普通的AI解题工具(本体)可以分为下面大致几类:
1、在线聊天的大模型,比如网页版的ChatGPT、genmini、claude
2、集成于客户端环境的商业大模型agent应用,比如claude desktop;
3、集成于终端的大模型编程工具,比如gemini cli、claude code、codex;
4、集成于ide的编程agent平台,比如cursor、trae
5、自主研发、通过接头连接、可本地部署的agent智能体项目
搭配这些AI智能体的辅助解题策略/工具则可分为以下几类:
1、MCP工具,通过连接本地或远程服务器上的mcp接口来实现工具调用;
2、调用linux机器上的终端工具,如果是对于gemini cli、claude code、codex、cursor这类可以直接连接linux机器的ai工具,可以直接通过终端指令调用机器上的终端工具进行操作
3、skills,通过预设的skills文档为挑战任务预设背景和要求
4、rag知识库,针对上面所说的自主研发的agent项目,有的会使用其自行搭建的rag向量知识库进行知识获取。
然而,在真实的CTF比赛中,仅仅使用以上的AI本体工具和辅助技能,并不能达到很好的解题效果,主要可以归因为以下几点:
1、指令遵循度差,尤其在道德层面、调用工具和任务理解上尤为突出;
2、token有效使用率低;
3、容易在环境配置、网络问题等无关因素上浪费时间;
4、容易钻死角、思维不变通;
5、无法高效识别和搜集题目相关信息以及其相关漏洞方案;
6、上下文窗口太短,无法保持长期记忆;
7、知识及理解颗粒度不足,不足以精确理解和掌握题目要领;
8、缺乏任务规划和划分意识,不系统不严谨
9、专业性欠缺,大语言模型通病,缺乏针对性领域训练
10、套餐额度、api费用消耗大
11、容易出现大模型幻觉
12、知识缺失
13、大模型记忆遗忘
14、消极执行
对此,我们需要向目前现有的AI智能自动化渗透/CTFsolver项目学习,汇总、比较其方案,最终形成一个我们自己的方案,尽可能解决上述问题,然后开始构建我们自己专注于CTF比赛的智能体agent项目。
这里先给出一个汇集很多通过AI研究网络安全以及构建相关智能体的资料汇总网站,相当有用:
https://amanpriyanshu.github.io/Awesome-AI-For-Security/
相关专业研究和论文:
- Foundation-Sec 技术报告- Llama-3.1 网络安全应用领域适应性的详细方法。
- Primus Paper - 首个开源网络安全数据集集合,旨在解决关键的预训练语料库短缺问题。
- SecBench论文——用于LLM网络安全评估的具有空前规模的多维基准数据集。
- 纽约大学 CTF 基准测试论文- 首个专注于通过 CTF 挑战进行攻击性安全的可扩展基准测试。
- SECURE 论文- 以工业控制系统安全知识评估为目标的行业基准。
- CyberMetric Paper - 基于 RAG 的网络安全基准测试,包含涵盖多个知识领域的人工验证问题。
- SecLLMHolmes 论文- 全面分析揭示了 LLM 漏洞识别能力的显著不稳健性。
- LLM 攻击性安全基准测试- 对 LLM 驱动的攻击性安全工具的评估方法进行分析并提出建议。
- OffsecML 战术手册- 全面收集了攻击和对抗技术,并附有实际演示。
- MCP 安全检查清单- SlowMist 提供的基于 MCP 的 AI 工具的综合安全检查清单。
对于目前现有的AI智能自动化渗透/CTFsolver项目,大致可以分为以下几类:
1、llm驱动的自动渗透/CTFsolver智能体agent
2、内置提示词的MCP服务,部署在终端,依赖终端进行工具调用
3、预训练好的专注于渗透/网络安全的模型
现在我们大致列举以下项目进行研究:
该比赛只针对渗透测试,所以在CTF比赛中的运用可能更多仅局限于web方向,故该比赛的项目参考学习也将仅作用于web方向的功能开发,但是其各项目的智能体构建的方案方法有很大参考研究价值,务必认真学习。
比赛详情地址https://zc.tencent.com/competition/competitionHackathon?code=cha004
开源项目地址:https://github.com/passer-W/ctfSolver
主要思路设计:












开源项目地址:https://github.com/SanMuzZzZz/LuaN1aoAgent
主要思路和架构设计:












开源项目地址:https://github.com/chainreactors/tinyctfer
主要思路设计:












开源项目地址:https://github.com/m-sec-org/xbow-competition
具体思路架构设计:








https://github.com/yhy0/CHYing-agent
具体思路架构实现:








项目开源地址:https://github.com/GreyDGL/PentestGPT
项目详情网站:https://pentestgpt.com/
项目论文:https://www.usenix.org/system/files/usenixsecurity24-deng.pdf
开源项目地址:https://github.com/SWE-agent/SWE-agent
项目详情网站(包括安装、使用等详细内容):https://swe-agent.com/
项目开源地址https://github.com/NYU-LLM-CTF/nyuctf_agents
项目开源地址:https://github.com/vxcontrol/pentagi
项目详情网站:https://pentagi.com/
项目地址(暂未开源):https://github.com/n-WN/SubgroupX
项目论文:https://arxiv.org/abs/2601.09129
项目开源地址:https://github.com/NoDataFound/hackGPT
项目网站:https://hackgpt.com/
项目开源地址:https://github.com/ipa-lab/hackingBuddyGPT
项目开源地址:https://github.com/msoedov/agentic_security/
详情网站:https://agentic-security.vercel.app/
几乎是最广受好评的mcp自动渗透ai工具,需要在kali Linux机器上部署服务端提供MCP服务接口,连接后利用kali中的工具进行渗透,优点和缺点都在于工具集很大,但是架构设计同样可圈可点。
项目网站:https://www.hexstrike.com/
开源地址:https://github.com/0x4m4/hexstrike-ai
似乎是专注于CTF解题的MCP项目,但是无论从影响力还是项目体量、设计上都不如Hexstrike项目,唯一的优势是对CTF的专注性。
项目开源地址:https://github.com/foxibu/ctf-solver
项目开源地址:https://github.com/Clouditera/SecGPT
我已经将部分上述所提到的项目完全下载到了本地,可供详细的代码查阅,有助于对项目架构的理解
将统一存放在:
kali linux目录:
/mnt/e/LunaticCTFer/ReferenceProject/<project>
对应windows目录:
E:\LunaticCTFer\ReferenceProject\<project>
在学习上述相关研究项目的基础上,我们要思考我们要构建的agent服务应该以何种形式呈现、需要具备哪些功能,以及要达成什么目标,做出详细指示之后,再思考如何在这些项目中进行学习然后进行具体的构建和开发。
同时,项目应提供两种形式来进行使用,即通过调用API的自主agent智能体和通过MCP接口调用的MCP工具服务;两种形式允许拥有不同的处理逻辑和代码,各自承担的职责也不同。
对于agent智能体而言,其目标定位如下:
一个部署于linux机器上,具备完整前后端呈现、处理逻辑、知识库、工具调用等功能的专注于CTF解题的agent智能体,通过调用联网大模型或本地大模型的API完成模型调用
应该具备以下功能:
1、通过API调用模型,对于联网大模型,要支持调用绝大多数联网大模型的API格式,包括OpenAI、Anthropic、Deepseek等以及各类基于API中转服务的API;对于本地大模型,也要有规范的调用模式;
2、能够通过Anthropic格式的mcp json文件简单标准化配置,连接上MCP服务,调用MCP工具;
3、能够使用rag知识库服务快速检索本地知识库;
4、有内置提示词类似skills的功能,无需大模型越狱或背景介绍
5、能够调用agent所在终端的任何工具,调用前需要经过许可,同时有选择always allow的选项
6、能够访问、控制、读取、修改本地文件目录和文件的权限
7、有预设好的标准工作流程,只需要提供少数题目信息后启动,自动完成整套解题工作流程,工作流程视题型而定,等待后序的具体架构设计。
粗略、不严谨来说,工作流程、或者说具体的架构设计中都应该要包括但不限于以下几点(无顺序,只是泛泛而谈):
任务识别,场景建立
连接rag知识库服务
查找资料、漏洞相似度匹配漏洞,POC找寻和变迁利用
挖掘题目内容和题目信息搜集
及时、高效处理包括但不限于环境配置、指令执行、上下文窗口、网络配置等非题目相关因素的错误问题
深刻理解题目,长思考链
维持/共享记忆
AI工具防沉迷
AI路径依赖防固化
自动选择调用模型,并路由匹配
及时反思思路,评估思路合理性可行性
决策层,负责搜集处理资料和信息以及总体思路策划
执行层,负责工具调用和执行具体决策
监督层:监督执行情况和反应,检测处理突发错误和长时间卡壳,防止钻死角或绕弯,及时制止并触发反思,同时也要负责记录解题流程的进行、思路节点、相关文件情况
解题过程中的文件处理规范
解题完成/失败后的报告/Writeup攥写规范
……
8、具备前后端界面,前后端由docker部署搭建,可通过前后端完成全部操作,包括配置模型并检查、发布删除修改任务、查看任务流程图和任务详情、对具体步骤交互进行修改调整等功能
……
对于MCP服务而言,其与agent相互独立,其实也可以视为该大项目下的一个子项目,目标定位如下:
一个部署于linux机器上的mcp服务端,具备终端服务界面呈现、管理kali linux内工具、能够读取并协调管理与其同属于一个MCP配置文件中其余MCP工具、内置提示词和skills、在成熟agent(如claude code)解题过程中充当任务调度枢纽和监督管理器等功能的服务
应该具备以下功能:
1、根据标准化的MCP协议提供服务和接口,方便配置;
2、能够读取检查情况,并管理其同级(即同一MCP配置文档内)的其他MCP服务工具,当agent遇到某种情况激活对应场景时,能够及时反映给agent提醒其调用对应其他MCP工具;
3、同上,也应该对所在终端机器拥有完全控制权,能够检查、管理、调度终端内的工具,执行指令;能够让agent通过其服务调用工具执行指令,也在场景激活时提醒其调用
4、内置场景、知识、提示词、skills一类的类似物,协助Agent迅速上手适应题目场景,并同时提供监管agent是否按照预想执行和调用工具、是否卡壳(卡在某一过程长时间陷入死角)、是否存在如网络配置、环境配置、指令错误等突发性情况并及时解决,不要耽误太多时间
5、规范记录思路、流程节点和相关文件关系,规范化解题中产生的文件处理,规范化解题完成/失败后的wp/报告攥写
……
