Yakit:面向 Yaklang 引擎的互動式安全測試客戶端
Yakit 是一個圍繞模組化用戶端構建的網路安全工具包,支援安全團隊的漏洞掃描、威脅搜尋、資產分析和操作工作流程。
秒懂
- 它是什麼?
- Yakit 是一個基於 gRPC 連接 Yaklang 引擎的圖形化客戶端,面向安全測試中的 MITM 劫持、Web 模糊測試和反連等場景。
- 適合誰用?
- Yakit 的程式碼倉庫以 TypeScript 實作,採用 AGPL-3.0 授權。README 詳細描述了 MITM、Web Fuzzer、Fuzztag 和反連模組,但未提供具體版本號、系統需求或安裝指令,這些需查閱官方文件或發布頁面。
- 可以商用嗎?
- 可以,但條件嚴格。AGPL-3.0 是網路 copyleft 授權:如果別人透過網路使用你修改過的版本(例如作為託管服務),你必須以同一授權向他們提供原始碼。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 1 天前。
- 用什麼語言寫的?
- 主要是 TypeScript(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。
開源專案深度解析
倉庫定位與基本事實
yaklang/yakit 是 yaklang/yakit 專案的倉庫,描述為「Cyber Security ALL-IN-ONE Platform」,主要語言為 TypeScript。截至本文撰寫時,該倉庫在 GitHub 上有 7664 個星標、820 個復刻和 138 個未關閉問題,專案未標記為已封存。README 使用中文作為主語言,並提供了英文版連結,但英文版內容未包含在本次審查的材料中。倉庫沒有列出首頁 URL,也沒有聲明具體的發行版本或下載量,這些資訊需要從 GitHub 的 releases 頁面單獨取得。
在 yakit 的脈絡中,第 1 個觀察點應與專案 README 的具體名稱一起閱讀。README 將 Yakit is a cybersecurity toolkit built around a modular client that supports vulnerability scanning, threat hunting, asset analysis, and operational workflows for security teams. 列為專案範圍;這能說明設計意圖,卻不能代替對作業系統、語言版本、依賴套件和資料規模的核對。閱讀時可把本節提到的功能拆成輸入、處理和輸出三個部分,逐項對照範例或原始碼路徑,避免把宣告的能力誤當成所有環境都相同的行為。若文件沒有交代錯誤處理、升級策略或效能數字,本文保留這個未知,不補寫推測。對 yakit 而言,實際核對時應記下使用的分支或 release 標籤、執行平台、輸入檔案與輸出位置。若 README 提供命令,逐一觀察成功訊息、錯誤訊息和產生的檔案;若只有 API 名稱或設定鍵,就把它們和原始碼中的宣告互相對照。這樣才能分清文件承諾、目前版本行為和本機環境差異。測試紀錄也要標明資料是否含敏感內容、是否需要網路,以及失敗後能否清理暫存資料。這些條件直接影響 yakit 能否放進你的工作流,不能用倉庫人氣或單一範例代替。
Yakit 與 Yaklang 的關係
Yakit 被描述為客戶端,它通過 gRPC 伺服器與 Yaklang 引擎互動。README 說,為了讓 Yaklang 的安全能力更貼近實際使用,團隊為 Yak 編寫了 gRPC 伺服器,並基於這個伺服器建構了 Yakit 用戶端。使用者透過 Yakit 的 GUI 操控引擎能力,gRPC 伺服器使得部署與平台無關,可以選擇遠端部署或本機啟動。Yaklang 本身被定義為安全領域的垂直語言,README 提到它可以重新編寫無法原生整合的工具,或直接編譯融合生態完整的產品,但具體的語言規範和編譯細節沒有在 README 中展開。
在 yakit 的脈絡中,第 2 個觀察點應與專案 README 的具體名稱一起閱讀。README 將 Yakit is a cybersecurity toolkit built around a modular client that supports vulnerability scanning, threat hunting, asset analysis, and operational workflows for security teams. 列為專案範圍;這能說明設計意圖,卻不能代替對作業系統、語言版本、依賴套件和資料規模的核對。閱讀時可把本節提到的功能拆成輸入、處理和輸出三個部分,逐項對照範例或原始碼路徑,避免把宣告的能力誤當成所有環境都相同的行為。若文件沒有交代錯誤處理、升級策略或效能數字,本文保留這個未知,不補寫推測。對 yakit 而言,實際核對時應記下使用的分支或 release 標籤、執行平台、輸入檔案與輸出位置。若 README 提供命令,逐一觀察成功訊息、錯誤訊息和產生的檔案;若只有 API 名稱或設定鍵,就把它們和原始碼中的宣告互相對照。這樣才能分清文件承諾、目前版本行為和本機環境差異。測試紀錄也要標明資料是否含敏感內容、是否需要網路,以及失敗後能否清理暫存資料。這些條件直接影響 yakit 能否放進你的工作流,不能用倉庫人氣或單一範例代替。
CDSL 與專案架構
README 將 CDSL 定義為 CyberSecurity Domain Specific Language,即網路安全領域的專用程式語言,並說他們編寫了一個堆疊虛擬機來承載這門圖靈完備語言的執行時狀態。專案架構圖展示了 Yaklang 引擎與 Yakit 用戶端之間的關係,但圖片本身無法在本文中呈現。README 聲稱希望透過 CDSL 實現安全能力的融合和底層平台統一,並列舉了 Yakit 的一些能力,包括 MITM 劫持平台、被動掃描 GUI、嵌入 Yaklang 腳本除錯流量、可視化 Web 模糊測試工具和插件商店。這些能力在 README 中以清單形式呈現,但沒有提供效能基準或與其他產品的對比數據。
在 yakit 的脈絡中,第 3 個觀察點應與專案 README 的具體名稱一起閱讀。README 將 Yakit is a cybersecurity toolkit built around a modular client that supports vulnerability scanning, threat hunting, asset analysis, and operational workflows for security teams. 列為專案範圍;這能說明設計意圖,卻不能代替對作業系統、語言版本、依賴套件和資料規模的核對。閱讀時可把本節提到的功能拆成輸入、處理和輸出三個部分,逐項對照範例或原始碼路徑,避免把宣告的能力誤當成所有環境都相同的行為。若文件沒有交代錯誤處理、升級策略或效能數字,本文保留這個未知,不補寫推測。對 yakit 而言,實際核對時應記下使用的分支或 release 標籤、執行平台、輸入檔案與輸出位置。若 README 提供命令,逐一觀察成功訊息、錯誤訊息和產生的檔案;若只有 API 名稱或設定鍵,就把它們和原始碼中的宣告互相對照。這樣才能分清文件承諾、目前版本行為和本機環境差異。測試紀錄也要標明資料是否含敏感內容、是否需要網路,以及失敗後能否清理暫存資料。這些條件直接影響 yakit 能否放進你的工作流,不能用倉庫人氣或單一範例代替。
MITM 互動式劫持
MITM 模組在 README 中被描述為可以替代 BurpSuite 執行下載安裝證書、劫持請求和回應、編輯資料包等操作,並提供從劫持到 History 再到 Repeater/Intruder 的工作流。其原理是啟動一個 HTTP 代理,自動轉發流量,手動劫持時停止轉發、阻塞請求,並對請求做解 Gzip、處理 chunk、解碼等處理,使其可讀。使用者可以對請求進行查看、修改或重放,重放時 Yakit 會修復使用者建構的 HTTP 請求封包以保持有效性。README 特別指出 Yak 引擎手動實作了 HTTP 函式庫,因此使用者可以自訂畸形的請求封包和回應封包,用於特殊場景的漏洞利用。
在 yakit 的脈絡中,第 4 個觀察點應與專案 README 的具體名稱一起閱讀。README 將 Yakit is a cybersecurity toolkit built around a modular client that supports vulnerability scanning, threat hunting, asset analysis, and operational workflows for security teams. 列為專案範圍;這能說明設計意圖,卻不能代替對作業系統、語言版本、依賴套件和資料規模的核對。閱讀時可把本節提到的功能拆成輸入、處理和輸出三個部分,逐項對照範例或原始碼路徑,避免把宣告的能力誤當成所有環境都相同的行為。若文件沒有交代錯誤處理、升級策略或效能數字,本文保留這個未知,不補寫推測。對 yakit 而言,實際核對時應記下使用的分支或 release 標籤、執行平台、輸入檔案與輸出位置。若 README 提供命令,逐一觀察成功訊息、錯誤訊息和產生的檔案;若只有 API 名稱或設定鍵,就把它們和原始碼中的宣告互相對照。這樣才能分清文件承諾、目前版本行為和本機環境差異。測試紀錄也要標明資料是否含敏感內容、是否需要網路,以及失敗後能否清理暫存資料。這些條件直接影響 yakit 能否放進你的工作流,不能用倉庫人氣或單一範例代替。
Web Fuzzer 與 Fuzztag
Web Fuzzer 模組支援使用者自訂 HTTP 原文傳送請求,後端會自動修復 CRLF、補全 Content-Type、透過 chunk 方式傳輸、補全 boundary、修復 Content-Length 等資訊。Fuzztag 技術允許透過標籤生成爆破參數,例如使用 {{int(1-10)}} 生成 ID 序列,多參數爆破時使用笛卡爾乘積結果作為參數,也支援匯入外部字典,如 {{file(/tmp/username.txt)}}。對於更複雜的資料場景,可以插入熱載入標籤,直接插入 Yak 腳本生成資料。README 將 Fuzztag 與 BurpSuite 的 Intruder 模組進行了對比,認為它免去了選擇爆破方式和匯入字典等步驟。
在 yakit 的脈絡中,第 5 個觀察點應與專案 README 的具體名稱一起閱讀。README 將 Yakit is a cybersecurity toolkit built around a modular client that supports vulnerability scanning, threat hunting, asset analysis, and operational workflows for security teams. 列為專案範圍;這能說明設計意圖,卻不能代替對作業系統、語言版本、依賴套件和資料規模的核對。閱讀時可把本節提到的功能拆成輸入、處理和輸出三個部分,逐項對照範例或原始碼路徑,避免把宣告的能力誤當成所有環境都相同的行為。若文件沒有交代錯誤處理、升級策略或效能數字,本文保留這個未知,不補寫推測。對 yakit 而言,實際核對時應記下使用的分支或 release 標籤、執行平台、輸入檔案與輸出位置。若 README 提供命令,逐一觀察成功訊息、錯誤訊息和產生的檔案;若只有 API 名稱或設定鍵,就把它們和原始碼中的宣告互相對照。這樣才能分清文件承諾、目前版本行為和本機環境差異。測試紀錄也要標明資料是否含敏感內容、是否需要網路,以及失敗後能否清理暫存資料。這些條件直接影響 yakit 能否放進你的工作流,不能用倉庫人氣或單一範例代替。
反連技術與協定重用
針對漏洞利用中的反連需求,Yaklang 實作了連接埠協定重用技術,可以在一個連接埠上監聽並識別不同協定的請求,然後作出相應回應。README 說這種技術可以建構畸形協定資料封包,或透過 DNS、ICMP 協定攜帶資料,用於權限維持或繞過 TCP 協定不出網的情況。Yakit 基於這項技術實作了反連模組,包括 Reverse Shell、反連利用和反連偵測。Reverse Shell 可以監聽連接埠作為反彈 Shell 的接收端,README 聲稱其使用體驗類似原生 ssh,而傳統 Nc 監聽在處理退格鍵、方向鍵時會有亂碼。反連利用可以為一個連接埠的不同協定設定 Payload,反連偵測提供 TCP、DNSLog、ICMP 偵測。
在 yakit 的脈絡中,第 6 個觀察點應與專案 README 的具體名稱一起閱讀。README 將 Yakit is a cybersecurity toolkit built around a modular client that supports vulnerability scanning, threat hunting, asset analysis, and operational workflows for security teams. 列為專案範圍;這能說明設計意圖,卻不能代替對作業系統、語言版本、依賴套件和資料規模的核對。閱讀時可把本節提到的功能拆成輸入、處理和輸出三個部分,逐項對照範例或原始碼路徑,避免把宣告的能力誤當成所有環境都相同的行為。若文件沒有交代錯誤處理、升級策略或效能數字,本文保留這個未知,不補寫推測。對 yakit 而言,實際核對時應記下使用的分支或 release 標籤、執行平台、輸入檔案與輸出位置。若 README 提供命令,逐一觀察成功訊息、錯誤訊息和產生的檔案;若只有 API 名稱或設定鍵,就把它們和原始碼中的宣告互相對照。這樣才能分清文件承諾、目前版本行為和本機環境差異。測試紀錄也要標明資料是否含敏感內容、是否需要網路,以及失敗後能否清理暫存資料。這些條件直接影響 yakit 能否放進你的工作流,不能用倉庫人氣或單一範例代替。
使用方式、免責聲明與授權
yakit:README 只提供了使用指引:使用者可以進入官網下載安裝,並查看官方文件進行學習,但沒有在 README 中給出具體的安裝指令或系統需求。免責聲明強調工具僅面向合法授權的企業安全建設行為和個人學習行為,使用者應確保測試行為符合當地法律法規並取得授權,禁止對非授權目標掃描,也禁止逆向工程、反編譯、破譯原始碼或植入後門。商業化使用需要獲得官方授權。倉庫採用 AGPL-3.0 授權,授權條款文本說明該授權旨在保證網路伺服器軟體的使用者也能獲得修改後的原始碼,但授權本身不包含任何關於軟體安全性、支援或保證的承諾。
在 yakit 的脈絡中,第 7 個觀察點應與專案 README 的具體名稱一起閱讀。README 將 Yakit is a cybersecurity toolkit built around a modular client that supports vulnerability scanning, threat hunting, asset analysis, and operational workflows for security teams. 列為專案範圍;這能說明設計意圖,卻不能代替對作業系統、語言版本、依賴套件和資料規模的核對。閱讀時可把本節提到的功能拆成輸入、處理和輸出三個部分,逐項對照範例或原始碼路徑,避免把宣告的能力誤當成所有環境都相同的行為。若文件沒有交代錯誤處理、升級策略或效能數字,本文保留這個未知,不補寫推測。對 yakit 而言,實際核對時應記下使用的分支或 release 標籤、執行平台、輸入檔案與輸出位置。若 README 提供命令,逐一觀察成功訊息、錯誤訊息和產生的檔案;若只有 API 名稱或設定鍵,就把它們和原始碼中的宣告互相對照。這樣才能分清文件承諾、目前版本行為和本機環境差異。測試紀錄也要標明資料是否含敏感內容、是否需要網路,以及失敗後能否清理暫存資料。這些條件直接影響 yakit 能否放進你的工作流,不能用倉庫人氣或單一範例代替。
編輯結論
Yakit 的程式碼倉庫以 TypeScript 實作,採用 AGPL-3.0 授權。README 詳細描述了 MITM、Web Fuzzer、Fuzztag 和反連模組,但未提供具體版本號、系統需求或安裝指令,這些需查閱官方文件或發布頁面。
社群筆記