自动写PoC 实战获取180+Flag的AWD红队工具炼成之路

作者:南山小卫庄 发布:2026-10-29 07:43 收录:2026-10-30 15:52 3 次阅读 约 3842 字
摘要:摘要: 为了用 AI 打 AWD,花了大量时间开发和优化全量 Skills,原以为准备得越来越充分,心里却越来
推荐理由:本文涵盖「POC」、「skills」、「Skill」等多个主题,重点关注 POC。


摘要: 为了用 AI 打 AWD,花了大量时间开发和优化全量 Skills,原以为准备得越来越充分,心里却越来越慌。比赛前夜,索性重构整套工具,将重复、并发的工作交给自动化平台,让 Agent 专注漏洞研究。最终,这套系统在实战中完成了大量目标的持续攻击,取得 180+ Flag 量级的成果。这次经历,让我重新理解了 Agent、Skills 和自动化的边界。





一、花了大量时间写 Skills,为什么最后却越来越慌?


比赛之前,一直在研究怎样利用 AI Agent 打 AWD。



当时非常喜欢 Agent + Skills 这种模式。

在我看来,Skills 是一个很有价值的东西。它能够把安全人员的工作经验、执行步骤和工具使用方法交给大模型,让 Agent 按照既定流程完成任务。


尤其是 AWD,整个比赛流程中有大量相对成熟的安全工作。

源码备份、漏洞扫描、代码审计、PoC 编写、批量攻击、Flag 提交,以及后门检测、漏洞修复、服务恢复……

这些工作看起来都可以通过 Skills 组织起来。


所以最初的想法很直接:

能不能把整个 AWD 攻防流程都做成 Skills,让 Agent 从头到尾完成?

接下来,花了大量时间做这件事。

先梳理完整流程,再让大模型编写 Skills,然后不断优化。


有些 Skills 的执行步骤不够清晰,就补充提示词;有些工具调用不稳定,就调整流程;有些任务之间衔接不好,就修改输入输出和交付标准。

为了让模型更好地完成任务,还反复调整过 Skills 的指导方式和执行细节。

整个过程投入了不少时间和精力。

而且最初确实很有成就感。


每完成一个 Skill,就意味着 Agent 又多了一项能力。原来需要人工操作的事情,现在似乎都可以交给模型。

随着 Skills 越来越完善,整个系统也逐渐覆盖了 AWD 的大部分工作。


当时觉得,准备得越全面,比赛时就越有把握。

但等到全量 Skills 基本完成,开始真正考虑比赛当天怎么运行时,情况却发生了变化。


功能越来越全,心里反而越来越慌。


这些 Skills 单独执行或许没有问题,但如果大量任务同时出现,整套系统真的能够高效运行吗?

尤其是当所有工作都需要依赖同一个本地模型时。

这个问题,最终成为整套架构重构的起点。



二、一个本地模型,撑不起整场比赛的重复执行


真正让我焦虑的,是并发。当时只有一个本地模型。虽然前期已经做过不少性能优化,但生成速度和推理资源终究有限。



而 AWD 比赛有一个很特殊的地方。


找到漏洞、写出 PoC,只是开始。


接下来,需要针对大量目标批量执行。

比赛中的 Flag 还会随着轮次不断变化,需要反复攻击、获取新的 Flag,再完成提交。

与此同时,模型还需要继续分析代码、寻找新的漏洞。


这就带来了一个矛盾。

如果所有任务都通过 Agent + Skills 完成,那么模型不仅要负责漏洞研究,还要反复参与批量执行、结果处理和任务调度。


哪怕每次操作只消耗几秒,放到大量目标、多轮比赛中,累计时间也可能变得难以接受。

更麻烦的是,模型一旦被已有任务占用,就会影响新漏洞的研究。


想象一下:

模型已经发现一个漏洞,并成功写出 PoC。

但接下来,为了利用这个漏洞,还需要让模型不断选择目标、调用工具、判断结果、提交 Flag。


同样的工作,可能要执行几十次、几百次,甚至更多。

模型明明已经解决了最困难的问题,为什么还要让它反复参与后面的固定操作?


这里其实涉及两个不同的问题。

一个是任务的可重复性,另一个是任务的并发性。成熟 PoC 可以反复执行,但不代表需要模型每次重新参与。


而大量任务同时运行,更需要考虑执行吞吐量、调度效率和资源竞争。尤其是本地模型,并发 Agent 越多,不一定意味着整体速度越快。


此时再回头看那套全量 Skills,就发现一个问题:

很多工作虽然能够通过 Skills 完成,但它们已经没有必要继续消耗模型的推理资源。


Agent 能做一件事,不代表这件事就应该一直交给 Agent 做。


距离比赛只剩一个晚上,必须重新做选择。


三、比赛前夜,彻底重构了整套工具


比赛前一天晚上,开始重新审视整套系统。

首先考虑的是比赛策略。

按照当时的规则,进攻成功可以直接得分,防守成功主要是避免失分。



结合团队分工,最后决定彻底放弃自己原来规划的防守工作,把精力集中到进攻。

但这只解决了任务范围的问题。

更关键的是,原来的全量 Skills 架构也需要重新设计。

于是,把整个攻击流程重新拆解了一遍。


第一类:未知、需要探索的工作。

例如,比赛前根本不知道靶机源码放在哪里,也不清楚具体的目录结构和部署环境。

源码下载与备份虽然只需要执行一次,但需要根据现场环境进行判断。

这种工作交给 Agent + Skills 更稳妥。

同样,代码审计、漏洞研究、PoC 编写,也需要模型进行分析、推理和调整。


第二类:成熟、重复、需要并发的工作。

例如,批量运行 PoC、获取 Flag、去重、自动提交、周期性执行。

这些工作的执行逻辑相对明确,而且需要大量重复。


于是决定将原来通过 Skills 完成的重复性工作,直接提炼成工具的原生自动化能力。

由此,AWD-Red 作为独立的红队自动化执行平台形成了。

这次重构有一条非常明确的原则:


重复的工作、批量并发的工作,智能体能不参与,就一定不让智能体参与。


但 Agent 和平台也不能各干各的。

还需要让两者形成一套顺畅的协作机制。

Agent 负责发现漏洞、编写符合标准的 PoC;平台自动接收研究成果,持续执行后续工作。

整个架构从原来由 Agent 主导全流程,变成了 Agent 与自动化平台协同运行。


最有意思的是,这次重构完成之后,心态反而平静了。

前面花了大量时间,让 Skills 尽可能覆盖所有工作。

可功能越来越全,反而越来越担心整个系统跑不起来。


到了比赛前夜,重新设计了工具,把大量重复执行工作从模型中剥离出去,心里却踏实了。

因为现在知道,每一项工作应该由谁完成,系统的运行边界在哪里。


最初的安心来自功能越来越全面,最后的踏实来自整个系统真正变得可控。



四、AWD-Red:从源码获取到批量提交,形成自动化闭环


重构之后,整个攻击流程分成了两个阶段。



第一阶段:快速发现漏洞,尽快形成攻击能力。

比赛开始后,首先通过 Agent + Skills 完成源码定位、下载和备份。

为什么这一步没有直接固化成脚本?

因为比赛之前不知道源码目录、部署结构和具体环境,而且正常情况下只需要执行一次。


让 Agent 探索环境并完成准备,既能够适应未知情况,也不会产生大量重复推理开销。

源码获取完成后,自动调用成熟的安全工具进行快速漏洞扫描。

这里还有一个明确的策略:

快速扫描阶段优先编写能够实现 RCE 的 PoC。


目的很简单,尽快形成可以投入比赛的有效攻击能力,避免在初期把时间分散到大量低优先级问题上。

Agent 根据扫描结果分析漏洞、编写并验证 PoC。

接下来,就是 AWD-Red 发挥作用的时候。


PoC 只需要按照统一规范编写,放进指定目录,平台就会自动热注册。

不需要手动导入,也不需要再让 Agent 调用一堆工具来启动执行。


而且平台设计了双触发机制。

一是定时触发。

每 10 分钟自动执行一轮,对大量目标批量运行已有 PoC,获取 Flag 并提交。


二是事件触发。

只要有新的 PoC 注册成功,就立即触发一轮执行,无需等待下一个 10 分钟周期。

这样,新发现的漏洞可以尽快投入使用,已经发现的漏洞也能持续发挥价值。


Flag 提交同样做了自动化适配。

比赛开始前,根本不知道具体的 Flag 提交平台是什么样的。不同比赛的接口、参数和认证方式可能完全不同。

如果提前写死提交逻辑,到现场很可能需要临时修改代码。


所以 AWD-Red 采用了一个更直接的办法:

把实际的 Flag 提交 HTTP 请求复制到平台里,平台自动解析,并复用登录状态。

完成一次适配后,后续的 Flag 提交就可以自动进行。

整个过程不需要模型反复分析提交接口,也不需要为每场比赛重新开发一套提交程序。


第二阶段:Agent 深入挖掘隐蔽漏洞。

完成快速扫描和第一批 PoC 交付后,Agent 开始对源码进行更深入的审计。

这一阶段主要寻找常规工具不容易发现的隐蔽漏洞,例如复杂逻辑、特殊调用链和需要多步分析才能确认的问题。


发现新的有效漏洞后,继续编写 PoC,按照统一规范放进目录。

AWD-Red 自动热注册,立即执行一轮。

与此同时,平台仍然每 10 分钟持续运行已有 PoC。


于是形成了一条完整的流水线:

Agent 负责不断发现新的漏洞,AWD-Red 负责将这些漏洞持续转化为比赛成果。

研究和执行可以同时推进,彼此之间通过标准化 PoC 完成交付。

这就是整个工具设计中最关键的部分。



五、180+ Flag 之后,重新理解 Agent 和 Skills


正式比赛开始后,这套比赛前夜重构的系统接受了实战检验。Agent 持续开展代码审计、漏洞研究和 PoC 开发。



AWD-Red 则自动接收新的 PoC,负责大量目标的批量执行、Flag 获取、去重和提交。


比赛过程中,AI 深度审计还发现了一些较为隐蔽的漏洞,为后续攻击提供了新的机会。

最终,整套系统取得了 180+ Flag 量级的实战成果。


这次比赛没有对原来的全量 Skills 方案进行完整的同环境对照,因此无法准确计算架构重构带来了多少倍的性能提升。


但实战证明,这套分工架构能够在模型资源有限的情况下,完成大量目标上的持续自动化执行,同时保留 Agent 研究新漏洞的能力。

回过头看,这次经历让我对 Agent 和 Skills 有了新的认识。


过去设计 Agent 时,很容易考虑它还能做什么、还需要增加哪些 Skills。但现在,我会先考虑另一组问题:

这项任务真的需要模型吗?

需要模型参与几次?

有没有可能把成熟流程提炼成工具?

如果需要重复一千次,还应该让 Agent 参与一千次吗?


进一步看,Agent 的架构设计其实涉及几个不同维度。

首先是模型能力、指导粒度和任务灵活性。

能力不同的模型,需要的指导程度可能不同。

高度灵活的任务,需要模型理解、探索和自主决策。

相对固定的任务,可以通过更明确的 Skills 规范执行。


但如果流程已经成熟,而且需要高频重复或批量并发,就应该考虑将其固化成自动化工具。

这里还有一个重要区别:可重复性和并发性,需要分别评估。


一次性的未知任务,即使比较复杂,也适合交给 Agent。高频执行的固定任务,即使模型能够完成,也未必值得持续占用推理资源。


因此,这次实践最终沉淀出一套简单的判断方法:

任务特征
优先选择
未知环境、一次性适配
Agent + Skills
复杂分析、漏洞研究
Agent 自主探索
需要规范交付的任务
Agent + 标准化 Skills
固定流程、重复工作
脚本与自动化工具
大量并发、周期性执行
独立自动化平台
执行中出现未知问题
交回 Agent 研究


这套方法可以用于 AWD,也可以延伸到 AI SOC、渗透测试、软件开发和其他 Agent 工作流。


从最初的全量 Skills,到比赛前夜重构 AWD-Red,再到正式比赛中的持续执行,这次经历最重要的收获,是重新理解了智能体与工具之间的关系。


真正有价值的 Agent 系统,需要让智能体把有限的推理能力用在值得思考的问题上,同时让成熟的工作流程能够脱离智能体持续运行。


AWD-Red 解决了这次比赛中重复执行和批量并发的问题,但也留下了另一个值得研究的方向。

同样一个任务,模型能力不同、Skills 指导粒度不同,最终的完成率、稳定性和执行效率究竟会相差多少?


接下来,准备围绕模型能力、指导粒度与任务灵活性继续开展实测。

或许,真正决定 Agent 系统效果的,除了模型有多聪明,还有我们究竟让它做了哪些事情。


 

如果对自己🈶用,点👍收藏吧,

如果对朋友🈶用,点❤️转发下!

感谢支持❤️!!!


如需 Skills 和 工具 可后台联系我!


前期高阅读文章

从 11 到 200 +Token/s:35B红队 Agent

聊完10+AI安全厂商并调研后的思考总结

聊完 10+ AI SOC 厂商后的思考总结

M5 Pro 48G + 无审查模型+实测效果

拿各大模型打比赛后的狂喜和后怕

转载声明:本文转载自原发布平台 (作者:南山小卫庄), 原文标题《自动写PoC 实战获取180+Flag的AWD红队工具炼成之路》, 查看原文。 版权归原作者及原发布平台所有,本站仅作收录与展示,未对正文内容作实质性修改; 若涉及侵权请联系本站处理。