ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

VulnClaw builtin_tools源码走读:2200行内置工具全景导览

VulnClaw builtin_tools源码走读:2200行内置工具全景导览 VulnClaw builtin_tools源码走读2200行内置工具全景导览【免费下载链接】VulnClaw基于 AI Agent MCP 工具链 渗透 Skill 编排 配合大语言模型 自然语言输入 → 自动完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。项目地址: https://gitcode.com/GitHub_Trending/vu/VulnClawVulnClaw 是一款基于 AI Agent MCP 工具链的自动化渗透测试工具而 vulnclaw/agent/builtin_tools.py 正是它内置工具层的总装车间超过 2200 行代码定义了 Agent 在渗透全流程中可调用的全部内置工具、执行逻辑与安全护栏。读完本文你将完整看懂这个 AI 渗透 Agent 的武器库是如何注册、执行与防失控的。为什么值得读这 2200 行对新手来说VulnClaw 的 Agent 之所以能自动完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」靠的不是魔法而是一套结构清晰的工具系统。builtin_tools.py同时扮演三个角色角色说明关键入口 工具注册表把内置工具 MCP 工具组装成模型可识别的 function schemabuild_openai_tools⚡ 执行引擎每个工具的异步执行逻辑跑 nmap、发 HTTP 请求、爆破登录……各execute_*函数️ 安全护栏沙箱检测、目标范围约束、角色可见性过滤constraint_policy 集成一句话模型看见哪些工具、能执行什么、被拦住什么都在这一个文件里定生死。先分清四个文件阅读难度减半很多人一上来就钻 2279 行大文件其实内置工具链被拆成了四个文件建议按此顺序读vulnclaw/agent/tool_schemas.py— 22 个内置工具 schema 的唯一声明源通过 append_builtin_tool_schemas 回调式注册只描述工具长什么样名称、参数、必填项不含执行逻辑vulnclaw/agent/builtin_tools.py— 执行逻辑 安全约束 工具组装schema 与实现彻底分离这是 S5 重构后的设计意图见 文件头注释vulnclaw/intel/tools.py— 8 个情报类工具CVE 查询、OSINT 侦察、拓扑构建、合规映射、发现项报告与 diff、修复建议、攻击面地图vulnclaw/traffic/tools.py— 4 个流量工具traffic_list/traffic_view/traffic_repeat/traffic_sitemap再加上 subagent 集成模块 提供的agent_run/agent_job两个派生子 Agent工具Agent 一共掌握36 个静态内置工具 若干动态 MCP 工具相关单元测试见 tests/agent/test_builtin_tools.py。22 个内置工具按用途分六类速览这是走读中信息量最大的部分。把 22 个工具按渗透工作流归类后结构一目了然分类工具干什么用 证据与记忆evidence_list/evidence_view/evidence_search、memory_search、vault_archive/vault_restore/vault_search/vault_status给大输出存证支持分页、正则检索与上下文归档防止超长输出撑爆上下文窗口⌨️ 执行shell_command、python_execute、http_probe_batch受控跑命令、沙箱内执行 Python、批量发探测请求 侦察nmap_scan、dir_enum、subdomain_enum、space_search、js_recon、unauth_test端口扫描、目录枚举、子域名爆破、JS 端点提取、未授权访问测试 分析source_extract、runtime_diff_probe、crypto_decode从噪声 HTML 里提取高危面表单/eval sink/unserialize、过滤器与解析器差异探测、加解密辅助 攻击brute_force_login表单登录爆破自动处理 CSRF token 轮换 技能load_skill_reference按需加载 skills/ 目录下的专项参考文档CTF、内网、客户端逆向等schema 定义可对照 tool_schemas.py 中的注册顺序逐个查看每个 schema 的description字段其实都是写给模型看的使用说明书——工具的 prompt 工程就藏在这些描述里。安全设计是精华三层护栏让 Agent 不越界渗透工具最怕失控builtin_tools.py把安全设计写成了显式代码这也是全文最值得一读的 ~400 行第一层Python 沙箱双重检测。python_execute不是简单跑代码——先用正则黑名单 BLOCKED_PATTERNS 拦截os.system、subprocess.Popen、shutil.rmtree等危险调用正则抓不住动态绕过时再由 _ast_check_sandbox_bypass 做 AST 级检查识别importlib.import_module(os)、exec/eval隐藏代码、getattr动态取属性、__builtins__直接访问等绕过手法。第二层目标范围约束。任何涉及主机/端口的工具执行前都会先过 enforce_host_path_constraints 与 enforce_port_constraints确保 Agent 只攻击授权范围内的目标。nmap_scan还额外通过 is_reserved_ip 识别保留/内网地址并主动跳过避免在私有网段浪费轮次。第三层优雅降级而非报错。execute_nmap 在没有管理员权限时会自动降级SYN 扫描-sS→ connect 扫描-sT、OS 指纹-O→ 服务探测-sV并在输出中附带降级说明——Agent 拿到的是可用的次优结果而不是任务失败。角色可见性同一个工具不同角色看到不同菜单build_openai_tools 组装工具列表时每个工具都要过 role_allows_tool 这道关卡——它委托给 roles.py 判断当前团队角色是否允许看见并调用该工具。也就是说多 Agent 团队协作场景下每个角色拿到的是裁剪过的专属工具菜单这是权限最小化原则在工具层的直接落地。一个精彩细节爆破工具如何与 fetch 工具接力execute_brute_forcebrute_force_login不只是简单试密码它会从登录页自动提取 CSRF token并在每次失败后从响应中刷新新 token爆破成功拿到密码后还通过 _sync_cookies_to_shared_jar 把会话 Cookie 同步到共享 cookie 罐——后续 Agent 调用的每一次fetch请求都自动携带已认证会话。工具之间能互相传递战果这种设计让多工具协同真正可用。走读路线建议新手友好版从 build_openai_tools 入手5 分钟看懂工具是怎么注册的对照 tool_schemas.py 过一遍 22 个工具的参数定义理解给模型的说明书精读沙箱与约束部分L72-L132 L1019-L1068挑一个感兴趣的执行函数跟到底推荐nmap_scan逻辑完整、降级策略典型扩展阅读vulnclaw/agent/network_scan.pynmap 计划与 XML 解析、vulnclaw/agent/constraint_policy.py工具动作校验、tests/agent/test_builtin_tools.py行为规格总结builtin_tools.py是 VulnClaw 从聊天机器人变成渗透执行者的关键一跳2200 行代码里一半是能力36 个工具的执行实现另一半是克制沙箱、范围约束、角色过滤。如果你想给自己的 AI Agent 项目添加工具系统这套「schema 与执行分离 注册时过滤 执行前校验」的三层架构非常值得抄作业。【免费下载链接】VulnClaw基于 AI Agent MCP 工具链 渗透 Skill 编排 配合大语言模型 自然语言输入 → 自动完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。项目地址: https://gitcode.com/GitHub_Trending/vu/VulnClaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进