十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

用 Fabric create_command 模式让 AI 生成渗透测试命令行:原理与实战

用 Fabric create_command 模式让 AI 生成渗透测试命令行:原理与实战 用 Fabric create_command 模式让 AI 生成渗透测试命令行原理与实战【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS导读在渗透测试中工具众多、参数繁杂记错开关是常事。create_command是 Fabric 模式库中的一款 命令生成器 模式它让 AI 仅凭一句目标描述和工具自带的-h帮助文档就为你拼出参数准确、可直接执行的命令行。本文以本仓库 LifeOS/install/skills/Fabric 中的 create_command 模式文档 为主体结合 system.md 的系统提示词与仓库内 ExecutePattern 工作流 的调用链完整讲解该模式的使用前提、四个官方示例、prompt 构造技巧以及如何在 LifeOS 中原生执行这一模式。一、为什么需要 create_command从查帮助到让 AI 查帮助渗透测试penetration test过程中会用到大量工具例如 sqlmap、nmap、gobuster、dirsearch、nuclei 等。这些工具数量众多且往往需要根据目标与场景的不同切换不同的参数和开关switch。原文档明确指出正因为工具太多很容易忘记某个工具应该怎么跑、各个参数开关是什么含义。大多数工具都提供了-h帮助开关来给出这些细节但反复人工查阅帮助文档效率很低。create_command模式的思路是由 AI 来替你理解帮助文档并拼出正确的命令你只需要提供一段简短的目标描述即可。这正是 pattern_explanations.md 中对它的定位Helps determine the correct parameters and switches for penetration testing tools based on a brief description of the objective根据目标的一句话描述帮助确定渗透测试工具的正确参数和开关。在 LifeOS 的 Fabric 技能体系中create_command属于 Creation创建类别的 50 个模式之一见 ExecutePattern.md同类的还有create_threat_model、create_sigma_rules、create_prd等。二、使用前提Requirements原文档对使用该模式提出了两条明确要求本地必须已安装目标工具需要 Fabric 为其生成命令的那个工具必须已经安装在你本地环境中工具必须支持-h帮助输出该工具需要有 tool -h 形式的帮助文档且帮助内容能被命令捕获大多数工具都满足这一条件。这两条前提是模式正确性的基础因为模式的核心机制是把工具的-h帮助文本直接喂给 AI帮助文本成为 AI 唯一的事实来源。如果工具未安装或帮助输出为空AI 就没有可依据的文档只能靠猜而这正是模式明令禁止的行为。三、Prompt 构造方法一段命令的解剖原文档所有示例都采用同一种 prompt 构造手法——把目标描述与帮助文档拼接通过管道送入 Fabrictoolnmap;echo -e use $tool to target all hosts in the host.lst file even if they dont respond to pings. scan the top 10000 ports and save the output to a text file and an xml file\n\n$($tool -h 21) | fabric --pattern create_command这段命令的构成可以拆解为四个部分部分内容作用toolnmap定义 shell 变量统一工具名避免重复书写也便于替换成其他工具echo -e ...输出提示文本-e让\n\n转义为换行把目标描述和帮助文档分隔开$($tool -h 21)命令替换捕获帮助运行nmap -h21把 stderr 一并捕获确保帮助文本完整进入管道\| fabric --pattern create_command送入 Fabric指定使用create_command模式处理拼接后的输入这里有一个关键设计输入的第一行是目标描述后续行是工具帮助文档。这一约定与 system.md 中 The input will include the prompt on the first line and then the tool documentation for the command will be provided on subsequent lines 的说明完全对应——即系统提示词要求 AI 按首行目标 后续帮助文本的结构解析输入。在 LifeOS 中~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Fabric/目录下存在用户定制时会优先加载其中的配置覆盖默认行为见 SKILL.md若不存在则使用技能默认行为。四、四个官方实战示例原文档提供了四个覆盖不同场景的完整示例以下逐一保留并展开讲解。4.1 sqlmapSQL 注入扫描prompttoolsqlmap;echo -e use $tool target https://example.com?testid url, specifically the test parameter. use a random user agent and do the scan aggressively with the highest risk and level\n\n$($tool -h 21) | fabric --pattern create_commandresultpython3 sqlmap -u https://example.com?testid --random-agent --level5 --risk3 -p test逐参数解析参数含义python3 sqlmap以 Python3 解释器运行 sqlmap-u https://example.com?testid指定目标 URL--random-agent随机 User-Agent对应use a random user agent--level5扫描等级最高值对应aggressively--risk3风险等级最高值对应highest risk-p test指定测试参数为test精确锁定目标描述中的参数点4.2 nmap主机列表扫描prompttoolnmap;echo -e use $tool to target all hosts in the host.lst file even if they dont respond to pings. scan the top 10000 ports and save the output to a text file and an xml file\n\n$($tool -h 21) | fabric --pattern create_commandresultnmap -iL host.lst -Pn --top-ports 10000 -oN output.txt -oX output.xml逐参数解析参数含义-iL host.lst从文件读取目标主机列表对应 host.lst-Pn跳过主机发现、即使主机不响应 ping 也扫描--top-ports 10000只扫描最常用的 10000 个端口-oN output.txt普通文本格式输出-oX output.xmlXML 格式输出一次扫描同时保存两种格式4.3 gobuster子域名枚举prompttoolgobuster;echo -e use $tool to target example.com for subdomain enumeration and use a wordlist called big.txt\n\n$($tool -h 21) | fabric --pattern create_commandresultgobuster dns -u example.com -w big.txt逐参数解析dns子命令启用 DNS 模式子域名枚举-u指定目标域名-w指定字典文件big.txt。这条命令展示了模式能正确处理子命令式工具结构。4.4 dirsearch递归目录枚举prompttooldirsearch;echo -e use $tool to enumerate https://example.com. ignore 401 and 404 status codes. perform the enumeration recursively and crawl the website. use 50 threads\n\n$($tool -h 21) | fabric --pattern create_commandresultdirsearch -u https://example.com -x 401,404 -r --crawl -t 50逐参数解析参数含义-u https://example.com目标 URL-x 401,404忽略 401、404 状态码-r递归枚举--crawl爬取网站跟随页面链接继续发现-t 50使用 50 个线程4.5 nuclei模板化漏洞扫描prompttoolnuclei;echo -e use $tool to scan https://example.com. use a max of 10 threads. output result to a json file. rate limit to 50 requests per second\n\n$($tool -h 21) | fabric --pattern create_commandresultnuclei -u https://example.com -c 10 -o output.json -rl 50 -j逐参数解析参数含义-u https://example.com扫描目标-c 10并发线程上限 10-o output.json输出到指定文件-rl 50请求速率限制为每秒 50 个请求-j以 JSON 格式输出结果从五个示例可以总结出模式的核心能力能够理解自然语言目标描述如 aggressively with the highest risk、将其映射为正确的开关组合并同时处理输出格式、并发/速率限制、字典文件、递归行为等多种维度。五、底层原理system.md 如何约束 AI 生成命令模式的行为完全由 system.md 定义。这份系统提示词是本模式事实准确性的核心保障可分为四个约束层次1. 身份与任务IDENTITY and PURPOSEAI 被设定为极其擅长阅读和理解命令行帮助文档的渗透测试人员任务是根据给出的文档为各种工具生成可执行的 CLI 命令。system.md 要求 AI Take a step back and analyze the help instructions thoroughly——先全面分析帮助说明确保生成的命令能实现预期动作。2. 事实边界只许用文档中的开关这是整个模式最重要的安全阀原话如下见 system.mdIt is crucial that you only use switches and options that are explicitly listed in the documentation passed to you. Do not attempt to guess. Instead, use the documentation passed to you as your primary source of truth. It is very important the commands you generate run properly and do not use fake or invalid options and switches.即只允许使用传入文档中明确列出的开关和选项禁止猜测帮助文档是唯一的事实来源。这一约束直接决定了文章开头提到的两条使用前提为何必要——帮助文本不完整AI 就无从生成可靠命令。3. 输出指令OUTPUT INSTRUCTIONS不得添加未被明确要求的额外开关只使用帮助文档中明确写明的开关输出完整、包含所有相关参数和开关的 bash 命令。4. 输出格式OUTPUT FORMAT只输出命令本身不输出任何警告或说明文字不输出 Markdown 或其他格式——保证结果可直接复制进终端运行。值得注意的细节仓库中的 user.md 为空文件说明该模式的用户侧提示完全由命令行输入承载即首行目标描述 后续帮助文档的拼接文本模式逻辑全部收敛在 system.md 中。六、在 LifeOS 中原生执行无需 fabric CLI在 LifeOS 的 Fabric 技能中create_command等 240 模式默认原生执行不必每次都调用 fabric CLI。根据 SKILL.md 的定义原生执行路径为读取Patterns/{pattern_name}/system.md将模式指令直接作为提示词应用无需外部 CLI 调用即返回结果。对应地ExecutePattern 工作流 中说明了执行流程用户请求 → 选择模式 → 读取 system.md → 按 STEPS 与 OUTPUT INSTRUCTIONS 应用 → 按模式规范返回结构化输出。fabricCLI 在 LifeOS 中仅用于两种特殊场景见 SKILL.mdfabric -y URLYouTube 字幕提取fabric -u URLURL 内容抓取原生抓取失败时的回退方案。也就是说对create_command这类本地文档驱动的模式原生执行已经足够把目标描述 $($tool -h 21)捕获的帮助文本直接交给 AI 应用 system.md 即可得到命令。也可以按原文档方式通过fabric --pattern create_command管道调用两种方式共享同一份 system.md 逻辑。七、最佳实践与注意事项综合原文档与 system.md使用create_command时有以下几点实践建议确保帮助文本完整进入输入prompt 中务必使用$($tool -h 21)形式捕获输出21不能省略——很多工具如部分版本 nmap的帮助信息走 stderr遗漏会导致 AI 拿到不完整文档而无法生成准确命令。用\n\n分隔目标与文档echo -e的换行分隔既符合 system.md 对输入结构的约定首行目标、后续文档也让模型清晰区分用户意图与参考资料。目标描述要具体从五个官方示例看描述中通常包含目标URL/文件/域名、要执行的动作枚举/扫描/爬取、边界条件忽略状态码、跳过 ping、性能参数线程数、速率限制、输出要求格式与文件名等多个维度。描述越精确命令与意图的匹配度越高。验证生成结果虽然模式内置只使用文档中明确开关的约束但不同版本工具的-h输出会有差异建议生成后仍以目标版本帮助文档为准核对一遍——这正是模式选择以传入文档为事实来源的原因。注意模式名精确匹配SKILL.md 明确提醒 Pattern names are exact——create_command不能写成createcommand不确定时可用fabric --list或浏览Patterns/目录确认。八、小结create_command是一个小而精的 Fabric 模式它把读-h帮助 → 匹配目标意图 → 拼出命令这一重复劳动交给 AI而把必须使用真实存在的开关作为不可逾越的约束。配合 LifeOS 的原生模式执行机制你只需一句目标描述即可在几秒内得到 sqlmap、nmap、gobuster、dirsearch、nuclei 等工具的准确命令行——既可用于日常渗透测试提效也适合作为安全团队统一命令规范、减少记忆负担的辅助手段。若想深入了解模式库全貌与执行工作流可在本仓库继续阅读 Fabric SKILL.md含模式分类统计、触发路由与使用注意、ExecutePattern.md模式选择决策树与原生执行流程以及 pattern_explanations.md全部 240 模式的逐条说明。【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表