mcpField
Y
yakit-basic

yakit-basic

github.com/yaklangセキュリティ10107 回インストール15 週間前に更新
リポジトリ

yakit-basic について

Yakit は、ペネトレーションテスト担当者やセキュリティ実務者向けのグラフィカルなセキュリティテストプラットフォームです。このスキルでは、画面構成、エンジン接続、プロジェクトデータ、テスト・スキャン・プラグイン・監査の流れを紹介します。

主な機能

  1. 01MITM によるトラフィックの確認と変更
  2. 02Web と WebSocket のファジング
  3. 03ポートスキャンと脆弱性検査
  4. 04プラグインのインストールと管理
  5. 05トラフィック、リスク、資産の記録
  6. 06ローカルまたはリモートエンジンへの接続

活用シーン

  1. 01テスト中の HTTP トラフィックの確認と変更
  2. 02Web Fuzzer によるリクエストの再送
  3. 03スキャンの実行と検出リスクの確認
  4. 04プロジェクト切り替えによるセキュリティデータの分離

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/yakit-basicを入力して読み込まれたか確認します。

同梱ファイルexamples/basic-plugin-skeleton.yak

詳細

スキル:Yakit 基本使用

AI 読み込み指示:Yakit は Yak Project のグラフィカルなセキュリティテストプラットフォームで、Electron フロントエンドと yaklang エンジンバックエンドで構成され、 両者は gRPC で通信します。このページは「Yakit の画面に何があり、各機能エリアが何を行い、エンジンをどう接続するか」を案内する入門ガイドです。プラグインやホットロード スクリプトを作成する場合は、該当する専門スキルに案内してください(第 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. 3 種類の画面モード

Yakit コミュニティ版には 3 種類のモードがあり、左側のメニューの形状で区別します(yakit/app/renderer/src/main/src/routes/newRoute.tsx の YakitModeEnum で定義されています):

モードメニューの形状対象ユーザー固定 Tab
セキュリティエキスパート左側にアイコンバー、右側に「その他」の折りたたみメニュー熟練したペネトレーションテスターMITM / Web Fuzzer / History
クラシック左側にツリー形式の折りたたみメニュー初心者/従来のメニューに慣れている方ホーム / History
スキャン左側にツリー形式のメニュー(簡易版)一括スキャンのみが必要な方-

モードは「システム設定」で切り替えます。切り替えると、左側のメニューと固定 Tab も変わります。

3. コア機能エリアのルーティング表

フロントエンドの YakitRouteToPageInfo と RouteToPage から抽出した主要ページです(機能別に分類):

3.1 ペネトレーションテスト
機能ルート key画面の用途関連スキル
MITM インタラクティブ傍受mitm-hijackMITM プロキシを起動し、HTTP トラフィックをリアルタイムで確認/変更/転送し、ホットロード hook を読み込みますmitm-hotpatch
Web FuzzerhttpFuzzer単一 Tab でのパケット送信とデバッグに対応し、fuzztag、ホットロード、連続パケット送信、データ抽出をサポートしますwebfuzzer-hotpatch
Websocket Fuzzerwebsocket-fuzzerWebSocket プロトコルのパケット送信と fuzz を行います-
Codeccodecエンコード/デコードツールです。base64/url/hex/hash などを内蔵し、カスタム codec プラグインにも対応しますyakit-rightclick-plugin
データ比較dataCompare2 つのデータの差分を比較します-
Yak RunneryakScriptオンラインで yak スクリプトを作成/実行します。IDE と同等ですyaklang-syntax
3.2 セキュリティツール
機能ルート key画面の用途関連スキル
ポート/フィンガープリントスキャンscan-portポートスキャンとフィンガープリント識別を行います-
脆弱性の個別検出pocPoC プラグインに基づいて一括検出を行います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画面の用途関連スキル
プラグインリポジトリ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)

コメント