mcpField
Y
yakit-basic

yakit-basic

github.com/yaklangSecurity10107 installsUpdated 15w ago
Repository

About yakit-basic

A basic-use skill for Yakit, a graphical security testing platform for penetration testers and security practitioners. It maps the interface, engine connection, project data, and workflows across testing, scanning, plugins, and auditing.

Key features

  1. 01MITM traffic inspection and modification
  2. 02Web and WebSocket fuzzing
  3. 03Port scanning and vulnerability checks
  4. 04Plugin installation and management
  5. 05Traffic, risk, and asset records
  6. 06Local or remote engine connection

Use cases

  1. 01Inspect and modify HTTP traffic during testing
  2. 02Replay requests with Web Fuzzer
  3. 03Run scans and review detected risks
  4. 04Switch projects to separate security data

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/yaklang/yak-skills --skill yakit-basic

After installing, type/yakit-basicin Claude Code to confirm it loaded.

Bundled filesexamples/basic-plugin-skeleton.yak

Details

From the project README

SKILL: Yakit 基本使用

AI LOAD INSTRUCTION: Yakit 是 Yak Project 的图形化安全测试平台,由 Electron 前端 + yaklang 引擎后端组成, 两者通过 gRPC 通信。本页是"Yakit 界面上有什么、各功能区干什么、引擎怎么连"的入口指南。要写插件/热加载 脚本请路由到对应专题 skill(见第 6 节路由表),本页只讲 UI 与基本使用。

0. 相关路由

1. 架构概览(先理解三层结构)

flowchart LR
    subgraph Frontend["Yakit 前端 (Electron + React)"]
        UI["界面交互<br/>MITM/Fuzzer/Codec/扫描/插件..."]
    end
    subgraph Engine["yaklang 引擎 (本地进程)"]
        GRPC["gRPC Server<br/>yakgrpc"]
        Lang["Yaklang 脚本引擎<br/>common/yak"]
        Libs["内置库<br/>poc/codec/db/risk/synscan..."]
    end
    UI <-->|"gRPC 双向流<br/>ExecResult / 请求响应"| GRPC
    GRPC --> Lang
    Lang --> Libs
    Libs -->|"SQLite/GORM"| DB[("项目数据库<br/>profile/project")]

关键理解:

  • 引擎是独立进程:yaklang 引擎是本地启动的 gRPC 服务(默认端口由引擎自动选择),前端 Electron 应用 通过 gRPC 双向流与之通信。引擎负责执行所有 yak 脚本、扫描、MITM 代理、发包等"重活"。
  • 前端是展示与交互层:Yakit 前端(React + Electron)不执行安全逻辑,它把用户操作翻译成 gRPC 请求, 把引擎返回的 ExecResult 流渲染成日志、表格、图表、风险卡片等 UI 组件。
  • 数据库有两层:
    • profile 数据库:全局配置、插件脚本(YakScript)、Payload 字典、全局 KV、指纹库等。
    • project 数据库:随项目切换的历史流量(HTTPFlow)、风险(Risk)、端口资产、域名资产等。

源码定位:引擎入口 yaklang/common/yakgrpc/;前端 gRPC 流消费 yakit/app/renderer/src/main/src/hook/useHoldGRPCStream/;前端路由定义 yakit/app/renderer/src/main/src/routes/newRoute.tsx。

2. 三种界面模式

Yakit 社区版有三种模式,通过左侧菜单形态区分(yakit/app/renderer/src/main/src/routes/newRoute.tsx 中 YakitModeEnum 定义):

模式菜单形态适合人群固定 Tab
安全专家左侧图标条 + 右侧"更多"折叠熟练渗透测试人员MITM / Web Fuzzer / History
经典左侧树形折叠菜单入门/习惯传统菜单首页 / History
扫描左侧树形菜单(精简)只需批量扫描-

模式切换在"系统设置"里,切换后左侧菜单和固定 Tab 随之变化。

3. 核心功能区路由表

从前端 YakitRouteToPageInfo 和 RouteToPage 提取的核心页面(按功能分组):

3.1 渗透测试
功能路由 key界面用途关联 skill
MITM 交互式劫持mitm-hijack启动 MITM 代理,实时查看/修改/转发 HTTP 流量,加载热加载 hookmitm-hotpatch
Web FuzzerhttpFuzzer单 Tab 发包调试,支持 fuzztag、热加载、序列发包、数据提取webfuzzer-hotpatch
Websocket Fuzzerwebsocket-fuzzerWebSocket 协议发包与 fuzz-
Codeccodec编解码工具,内置 base64/url/hex/hash 等 + 自定义 codec 插件yakit-rightclick-plugin
数据对比dataCompare两段数据差异对比-
Yak RunneryakScript在线编写/运行 yak 脚本,等同 IDEyaklang-syntax
3.2 安全工具
功能路由 key界面用途关联 skill
端口/指纹扫描scan-port端口扫描 + 指纹识别-
专项漏洞检测poc基于 PoC 插件批量检测yakit-native-plugin
弱口令检测brute弱口令爆破-
空间引擎space-engine空间测绘引擎搜索(Fofa/Hunter/Quake 等)-
子域名收集plugin-op(内置)调用"子域名收集"插件yakit-native-plugin
基础爬虫plugin-op(内置)调用"基础爬虫"插件yakit-native-plugin
目录扫描plugin-op(内置)调用"综合目录扫描与爆破"插件yakit-native-plugin
3.3 插件
功能路由 key界面用途关联 skill
插件仓库plugin-hub在线插件商店,一键下载安装-
批量执行batch-executor-page-ex批量执行多个插件yakit-native-plugin
插件管理plugin-audit管理已安装插件(启用/禁用/编辑/审核)-
新建插件add-yakit-script创建新插件(yak/mitm/codec 类型)yakit-native-plugin
3.4 反连
功能路由 key界面用途
DNSLogdnslogDNS 反连检测
ICMP-SizeLogicmp-sizelogICMP 回显检测
TCP-PortLogtcp-portlogTCP 端口回连检测
Yso-Java HackPayloadGenerater_NewJava 反序列化 payload 生成
反连服务器ReverseServer_New统一反连服务器管理
端口监听器shellReceiver反弹 Shell 监听
3.5 数据库(项目数据)
功能路由 key界面用途关联 skill
Historydb-http-requestMITM/Fuzzer 产生的全部历史流量yakit-data-extract-plugin
流量分析器db-http-request-analysis历史流量高级分析-
漏洞与风险db-risks扫描产出的漏洞/风险列表-
报告db-reports-results扫描报告查看-
端口db-ports端口资产列表-
域名db-domains域名资产列表-
指纹库fingerprint-manageWeb 指纹规则管理-
CVE 管理cveCVE 数据查询-
字典管理payload-managerPayload 字典管理(与 db.SavePayload 联动)yaklang-database
配置管理config-management全局配置(代理/Payload/热加载模板)global-hotpatch
3.6 AI 功能
功能路由 key界面用途
AIAgentai-agentAI 对话与自动化任务
知识库ai-repositoryAI 知识库管理
工具库ai-toolAI 工具管理
技能库ai-forgeAI 技能(Forge)管理
记忆库ai-memoryAI 记忆库
3.7 代码审计
功能路由 key界面用途
代码扫描yakrunner-code-scan基于 SyntaxFlow 规则扫描代码
代码审计yakrunner-audit-code代码审计
AI代码审计irify-ai-code-auditAI 辅助代码审计
审计漏洞yakrunner-audit-hole代码审计发现的漏洞
规则管理rule-management自定义审计规则
项目管理yakrunner-project-manager审计项目管理
Java 反编译yak-java-decompilerJava 类文件反编译

4. 引擎连接与项目切换

4.1 引擎连接

首次启动 Yakit 前端时需要连接引擎:

  1. 本地引擎:在前端"引擎连接"页面选择本地引擎,前端会自动拉起 yaklang 引擎进程。
  2. 远程引擎:输入远程引擎的 gRPC 地址(host:port),前端通过 gRPC 连接。

引擎启动入口:yaklang/common/yakgrpc/,gRPC 服务端口由引擎自动选择并通过 IPC 通知前端。 前端 gRPC 客户端封装:yakit/app/renderer/src/main/src/services/electronBridge.ts。

4.2 项目切换

Yakit 的"项目"概念对应一个独立的 project 数据库:

  • 切换项目 = 切换 project 数据库,History/Risk/Port/Domain 等数据随之隔离。
  • profile 数据库不随项目切换(插件、Payload 字典、全局配置始终共享)。
  • 在脚本中用 db.SetProjectKey / db.GetProjectKey 存取的项目级配置也随项目切换。 详见 yaklang-database。

5. 新手快速上手路径

flowchart TD
    A[安装 Yakit + 连接引擎] --> B[MITM 劫持: 配置代理, 浏览流量]
    B --> C[Web Fuzzer: 重放/修改请求]
    C --> D[Codec: 编解码/数据变换]
    D --> E[插件仓库: 下载社区插件]
    E --> F[写自己的插件: yak/mitm/codec]
    F --> G[热加载: 内联改流量]
步骤操作对应功能区
1. 连接引擎启动 Yakit → 连接本地/远程引擎引擎连接页
2. MITM 抓包打开 MITM → 设置代理 → 浏览器配置代理 → 浏览目标MITM 交互式劫持
3. 重放/修改在 History 或 MITM 中右键 → 发送到 Web FuzzerWeb Fuzzer
4. 编解码选中数据 → 右键编码/解码,或打开 Codec 页面Codec
5. 装插件打开插件仓库 → 搜索 → 安装插件仓库
6. 写插件新建插件 → 选类型(yak/mitm/codec) → 写代码 → 保存新建插件
7. 热加载MITM 配置 → 热加载窗口粘贴代码 → 启用MITM 热加载

6. 完整路由表(到各专题 skill)

需求进入 skill
MITM 代理劫持/修改请求响应mitm-hotpatch
Web Fuzzer 单 Tab 发包加解密/签名/重试webfuzzer-hotpatch
全局热加载(MITM + Fuzzer 共享)global-hotpatch
写/读懂 Yaklang 语法yaklang-syntax
数据持久化与查询yaklang-database
写带参数表单的 yak/mitm 插件yakit-native-plugin
写右键 codec 插件yakit-rightclick-plugin
从 History 提取数据驱动扫描yakit-data-extract-plugin
验证插件/热加载脚本yaklang-toolchain
yak 脚本如何与 Yakit UI 交互yakit-ui-binding

参考来源

  • 前端路由定义:yakit/app/renderer/src/main/src/routes/newRoute.tsx(YakitRouteToPageInfo / RouteToPage)
  • 前端 gRPC 流消费:yakit/app/renderer/src/main/src/hook/useHoldGRPCStream/useHoldGRPCStream.ts
  • 引擎 gRPC 服务:yaklang/common/yakgrpc/
  • 脚本引擎注入:yaklang/common/yak/yaklib/yakit_client.go(SetEngineClient 覆写 yakit 全局变量)
  • 模式枚举:yakit/app/renderer/src/main/src/store/softMode.ts(YakitModeEnum)

Comments

Markdown supported