CtrlK
BlogDocsLog inGet started
Tessl Logo

pentest-blackboard

CyberStrikeAI 项目黑板:跨会话 Fact 图(SQLite)+ upsert_project_fact/record_vulnerability 边渗透边记录节奏、关系边 links、confidence、与多代理协调落库。Use when managing project facts, blackboard index, writing evidence, or avoiding context-loss after compression.

67

Quality

81%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Critical

Do not install without reviewing

SKILL.md
Quality
Evals
Security

项目黑板(与本产品对齐)

状态落在已绑定项目的 SQLite 黑板,不依赖对话上下文,也不使用 .pentest/ 目录。 系统自动注入「项目黑板索引」(仅 fact_key + summary);摘要不足必须 get_project_fact,禁止凭摘要臆造细节。

原语与分工(产品模型)

概念产品落点规则
Factproject_factsupsert_project_factfact_key 覆盖更新;非正式漏洞条目。confidence: confirmed | tentative | deprecated
关系边project_fact_edges(upsert 的 links结构化攻击图;finding/chain/exploit/poc 必须带 links
可交付漏洞record_vulnerability与 Fact 可各记一次:Fact=复现上下文,漏洞=正式 finding
探索方向本轮计划 / 协调者委派 / plantask(若启用)不是独立 Intent 表;待验证方向用 confidence=tentativenote/ 或先不落库、验证后再写
人类注入用户消息 / HITL 审批直接吸收进决策;不必写成 Hint 原语

Fact vs 漏洞

  • 环境/目标/认证等认知 → 只写 Fact(target/ auth/ infra/ business/
  • 发现与利用上下文 → Fact(finding/ chain/ exploit/ poc/)+ body 填满攻击链
  • 可交付 findingsrecord_vulnerability(标题、严重程度、类型、目标、POC、影响、修复);记前可用 list_vulnerabilities 查重

强制节奏:边渗透边记录

勿等会话结束再批量写入。

  1. 确认一条新认知(开放端口/服务版本、入口路径、认证态或凭据特征、可利用点或攻击面变化)→ 立即 upsert_project_fact(同 key 覆盖)。
  2. 验证出一条可复现漏洞(含 POC/影响)→ 立即 record_vulnerability;与事实可各记一次。
  3. 继续下一步前优先落库,避免上下文压缩丢细节。
  4. 未绑项目:说明无法写黑板,仍在本轮保留证据摘要。
  5. 协调者:子任务返回新认知/漏洞时由协调者写入,勿假定子代理已记。
  6. 子代理无工具时:交付物末尾给「待落库」条目(建议 fact_key、summary、body/POC 要点),供协调者立即写入。

工具速查

工具用途
upsert_project_fact写入/更新事实(含 body、confidence、links)
get_project_fact按 key 取完整 body(索引不够时必调)
list_project_facts / search_project_facts检索黑板
deprecate_project_fact / restore_project_fact误报废弃 / 恢复
record_vulnerability可交付漏洞
list_vulnerabilities / get_vulnerability查重与详情

前置:当前对话已绑定项目(否则工具报错)。

写入规范

fact_key / category

  • 格式:小写 category/slug(如 target/primary_domainfinding/sqli-login
  • 环境:target | auth | infra | business
  • 发现利用:finding | chain | exploit | poc(另可用 note
  • 同一发现保持同一 fact_key 覆盖,勿拆成多个 key 导致上下文丢失

summary / body / confidence

  • summary(索引用一行):须含「什么 + 在哪 + 如何触发/验证」,禁止只写「存在 SQLi」
  • body:完整可复现上下文(索引不含 body)。发现/利用类必含:入口 → 步骤 → 原始请求/响应或命令 → 现象 → 证据 → related_vulnerability_id(若有)
  • confidence:有证据钉死 → confirmed;仅线索/待验证 → tentative;误报 → deprecate_project_fact(或 deprecated
  • 更新时若省略 body,保留库中已有 body(可只改 summary)

关系边 links(写入 finding/chain/exploit/poc 时必填)

  • 推荐 from:来源 fact → 当前 fact_key
  • 最少:finding 至少 1 条 {from: target/*, type: discovered_on};在 finding 上挂 exploit 用 {from: exploit/*, type: exploits}
  • 常用 type:discovered_on | depends_on | leads_to | enables | exploits | contains | part_of | supports
  • 省略 links = 保留已有边;传入 links = 替换全部入边

工作方式(对齐本产品编排)

不设 Bootstrap/Reason/Explore 磁盘状态机。按当前运行模式推进,但读写黑板的纪律不变

模式黑板用法
单代理 / deep边干边 upsert_project_fact;读索引不够则 get_project_fact
plan_execute计划步骤产出认知后立即落库;重规划前 list/search_project_facts
supervisor协调者汇总子代理「待落库」并写入;子代理无工具则结构化交付

卡住时:换边/换起点/换攻击域;用 search_project_facts 重审已有 Fact,避免重复死路。负结果也要落库(见验证铁律 skill)。

行为触发器(纪律)

每步必检(不检=违反验证铁律):

  1. 识别→搜:识别任何组件/框架/版本/中间件 → 暂停利用 → 立即执行 component-vuln-intel 全部命令(browser_navigate+terminal curl,7 个步骤全做)→ 结果用 tentative Fact 或本轮计划跟踪 → 搜完才继续。不搜就说「无已知漏洞」=幻觉;验证后confirmed / record_vulnerability
  2. 拒绝→换路:收到 403/429/超时/RST/WAF 拦/CDN 502/限流/空响应 → 禁止同条件重试 → 立即换路序列:SOCKS5 代理→换 UA→加 XFF→换协议(WS/DNS)→换端口→编码变异(完整代理获取/验证见 proxy-tool-bootstrap)→ 全换仍不通才写负结果 Fact(confirmed + body 写清已测条件)换面。
  3. 新认知→横向:拿到凭据/域名/IP/路径 → 立即横向喷:凭据全服务复用 / 新域名全端口扫 / IP 反查同站 → 不等人指示自动扩展攻击面,并 upsert_project_fact(如 auth/cred-*target/related-*)。有凭据不喷=遗漏。

违反判定:不搜就说「无已知漏洞」=幻觉;被拦不换路=放弃;有凭据不喷=遗漏 → 均违反验证铁律。

证据 / 战利品 / 改动

原「磁盘」概念本产品做法
evidence/Fact body + record_vulnerability 的证明字段 + 工具执行记录;大文件放会话/项目 workspace
loot/凭据特征写入 auth/ Fact(注意脱敏与授权范围);完整秘密按项目策略处理
changelog.md写入型改动在回复中台账化,并可 note/change-* Fact 记录主机/类型/位置/回滚命令

与验证铁律的衔接

详见 pentest-verification:搜索≠漏洞;无证据不写 confirmed;禁止空泛「可能/疑似」当结论;验证失败写负结果 Fact。

Repository
Ed1s0nZ/CyberStrikeAI
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.