{"id":13416857,"url":"https://github.com/yaklang/yakit","last_synced_at":"2026-04-02T15:08:12.780Z","repository":{"id":37043319,"uuid":"416151847","full_name":"yaklang/yakit","owner":"yaklang","description":"Cyber Security ALL-IN-ONE Platform","archived":false,"fork":false,"pushed_at":"2025-12-19T11:34:21.000Z","size":92381,"stargazers_count":6953,"open_issues_count":172,"forks_count":782,"subscribers_count":250,"default_branch":"master","last_synced_at":"2025-12-22T00:27:41.188Z","etag":null,"topics":["blueteam","burpsuite","exploit","golang","hacking","hacking-tools","pentest","redteam","redteam-tools","scanner","security"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yaklang.png","metadata":{"files":{"readme":"README-EN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-10-12T02:15:42.000Z","updated_at":"2025-12-21T05:49:50.000Z","dependencies_parsed_at":"2024-02-26T03:25:21.250Z","dependency_job_id":"ff66abd6-5f9b-4233-afd9-71b794c8b581","html_url":"https://github.com/yaklang/yakit","commit_stats":null,"previous_names":[],"tags_count":398,"template":false,"template_full_name":null,"purl":"pkg:github/yaklang/yakit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaklang%2Fyakit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaklang%2Fyakit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaklang%2Fyakit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaklang%2Fyakit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yaklang","download_url":"https://codeload.github.com/yaklang/yakit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaklang%2Fyakit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28055972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-26T02:00:06.189Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blueteam","burpsuite","exploit","golang","hacking","hacking-tools","pentest","redteam","redteam-tools","scanner","security"],"created_at":"2024-07-30T22:00:23.918Z","updated_at":"2025-12-26T14:18:47.387Z","avatar_url":"https://github.com/yaklang.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://yaklang.io/\"\u003e\u003cimg src=\"imgs/head.jpg\" style=\"width: 400px\"/\u003e\u003c/a\u003e \n \u003ch2 align=\"center\"\u003e YAKIT-A Cyber Security ALL-IN-ONE Platform based on Yak language\u003c/h2\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/github/issues-pr/yaklang/yakit\"\u003e\n\u003ca href=\"https://github.com/yaklang/yakit/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/yaklang/yakit/total\"\u003e\n\u003ca href=\"https://github.com/yaklang/yakit/graphs/contributors\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors-anon/yaklang/yakit\"\u003e\n\u003ca href=\"https://github.com/yaklang/yakit/releases/\"\u003e\u003cimg src=\"https://img.shields.io/github/release/yaklang/yakit\"\u003e\n\u003ca href=\"https://github.com/yaklang/yakit/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-raw/yaklang/yakit\"\u003e\n\u003ca href=\"https://github.com/yaklang/yakit/discussions\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/yaklang/yakit\"\u003e\n\u003ca href=\"https://github.com/yaklang/yakit/blob/master/LICENSE.md\"\u003e\u003cimg src=\"https://img.shields.io/github/license/yaklang/yakit\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://yaklang.oss-cn-beijing.aliyuncs.com/yakit-technical-white-paper.pdf\"\u003eWhitepaper\u003c/a\u003e •\n  \u003ca href=\"https://yaklang.io/products/intro/\"\u003eOfficial documentation\u003c/a\u003e •\n  \u003ca href=\"https://github.com/yaklang/yakit/issues\"\u003eIssue feedback\u003c/a\u003e •\n  \u003ca href=\"https://yaklang.io/\"\u003eOfficial website\u003c/a\u003e •\n  \u003ca href=\"#Community\"\u003eCommunity\u003c/a\u003e •\n  \u003ca href=\"#Architecture\"\u003eArchitecture\u003c/a\u003e \n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n :book:Language： \u003ca href=\"https://github.com/yaklang/yakit/blob/master/README-EN.md\"\u003eEnglish\u003c/a\u003e • \n  \u003ca href=\"https://github.com/yaklang/yakit/blob/master/README.md\"\u003e中文\u003c/a\u003e \n\u003c/p\u003e\n\n---\n# Introduction\n\nSecurity integration is a reform of security operations and management for enterprises in the new normal. It is also a top priority for enterprises in the new normal.\n\nBased on the concept of security integration, the Yaklang.io team has developed Yaklang, a vertical language in the security field. For some products/tools that cannot be natively integrated into the Yak platform, Yaklang can be used to rewrite their \"high-quality substitutes.\" For ecologically complete and widely recognized products, Yaklang can directly compile and integrate them, making necessary modifications to the source code for better compatibility with the Yaklang language. For security practitioners who do not want to write code, Yakit provides a suitable GUI for all capabilities in Yaklang. As the versions evolve, the GUI will become more mature.\n\u003ch3 align=\"center\"\u003e\n  \u003cimg src=\"imgs/yakit-cdsl.png\" style=\"width: 500px\" alt=\"yakit-cdsl.png\" \u003e\u003c/a\u003e\n\u003c/h3\u003e\n\nIn order to make Yaklang's security capabilities more relevant to practical use, we have developed a gRPC server for Yak and built a client called Yakit using this server.\n\n## Architecture\n\n\n\u003ch3 align=\"center\"\u003e\n  \u003cimg src=\"imgs/yakit-arch.jpg\" style=\"width: 600px\" alt=\"yakit-arch.jpg\" \u003e\u003c/a\u003e\n\u003c/h3\u003e\n\n\n## Core technologies: CDSL\n\nCDSL, which stands for CyberSecurity Domain Specific Language, is a specialized programming language in the field of cybersecurity. We have developed a stack virtual machine to handle the runtime state of this Turing-complete language. Our aim is to integrate security capabilities and achieve a unified underlying platform through the use of CDSL.\n\nTo make our self-developed CDSL language more aligned with practical usage scenarios, we have created a gRPC server for Yaklang. Using this gRPC server as a foundation, we have built the Yakit client.\n\nIn practice, Yakit's graphical user interface (GUI) allows users to control the capabilities of the engine. The gRPC server of Yakit enables convenient and efficient deployment options. It is platform-agnostic, providing users with the flexibility to choose between remote deployment or running it directly on their local machines.\n\n\u003ch3 align=\"center\"\u003e\n  \u003cimg src=\"imgs/yakit-gongneng.png\" style=\"width: 700px\" alt=\"yakit-gongneng.png\" \u003e\u003c/a\u003e\n\u003c/h3\u003e\n\n1. It can completely replace BurpSuite as a MITM interception platform.\n2. It provides a unique and user-friendly GUI for difficult-to-replicate MITM passive scanning.\n3. It allows embedding Yaklang scripts for dynamic debugging of traffic and executing code on the fly.\n4. It is the world's first visual Web Fuzzer, a powerful tool for conducting comprehensive web vulnerability testing.\n5. Yakit Plugin Store: A marketplace where users can find and install various Yakit plugins.\n6. It enables the execution of custom Yaklang scripts or plugins at any step of penetration testing.\n   ... ...\n\nOverview of Security Capabilities：\n\n\u003ch3 align=\"center\"\u003e\n  \u003cimg src=\"imgs/yaklang-caps.jpg\" style=\"width: 700px\" alt=\"yaklang-caps.jpg\" \u003e\u003c/a\u003e\n\u003c/h3\u003e\n\n\n## Specialized Technologies\n\n### MITM Interactive Hijacking.\n\nThe MITM (Man-in-the-Middle) Console in Yakit can fully replace BurpSuite and perform all operations, including downloading and installing certificates, hijacking requests and responses, and editing intercepted packets. It provides a smooth workflow that involves hijacking, history tracking, and using tools like Repeater and Intruder. Users can intercept data, view historical data in the history section, select packets for further analysis, and send them to the Web Fuzzer for Repeater or Intruder operations. In addition to these typical use cases, the MITM module in Yakit offers more flexible features such as plugin-based passive scanning, hot reloading, packet substitution, and tagging.\n\nThe underlying principle of Yakit's MITM module is to start an HTTP proxy that automatically forwards traffic. When a user initiates a manual hijack, the automatic forwarding is stopped, and the request is blocked and popped out of the stack. The module then performs tasks such as Gzip decoding, chunk processing, and decoding to make the request human-readable, which is then displayed to the user. Users can view, modify, or replay requests as needed. During replay, the Yakit engine repairs the user-constructed HTTP request to ensure its validity. Yak's engine has a custom-built HTTP library, allowing users to customize malformed requests and responses, which can be useful in exploiting vulnerabilities in specific scenarios.\n\n\u003ch3 align=\"center\"\u003e\n  \u003cimg src=\"imgs/yakit-mitm.png\" style=\"width: 700px\" alt=\"yakit-mitm.png\" \u003e\u003c/a\u003e\n\u003c/h3\u003e\n\n\n### Web Application Interactive Traffic Replay and Fuzz Testing.\n\nThe Web Fuzzer module supports user-defined HTTP raw request sending. To make it user-friendly and intuitive, Yakit's backend performs several tasks. It ensures that the necessary information for data transmission and parsing in the HTTP raw request is repaired and completed. For example, Yakit fixes CRLF, completes the Content-Type, handles chunked transfer encoding, adds the missing boundary, corrects the Content-Length, and so on. This allows users to focus on the data-related information without worrying about the underlying intricacies of the HTTP protocol.\n\u003ch3 align=\"center\"\u003e\n  \u003cimg src=\"imgs/webfuzzer.png\" style=\"width: 600px\" alt=\"webfuzzer.png\" \u003e\u003c/a\u003e\n\u003c/h3\u003e\n\n\n### Fuzztag \n\nThe Web Fuzzer module supports seamless integration of functionalities such as Host collision, Intruder, and directory brute-forcing through Fuzz tags. For example, in a single parameter brute-forcing scenario, let's take the user ID as an example. You can use the {{int(1-10)}} tag to automatically generate a range of IDs for brute-forcing. In scenarios where multiple parameters need to be brute-forced, the Cartesian product of the parameters is used for the brute-forcing. This eliminates the need to select the brute-forcing method and import dictionaries, reducing user operation steps and aligning with user habits compared to BurpSuite's Intruder module.\n\nIn addition to generating parameters using tags, the Web Fuzzer module also supports importing external dictionaries. For example: {{file(/tmp/username.txt)}}. In more complex data scenarios, the Web Fuzzer module allows the insertion of hot-loaded tags. For example, if you need to brute-force ID numbers from a specific region, you can directly insert Yak scripts in the Web Fuzzer module to generate the data for brute-forcing. In contrast, BurpSuite's Intruder module would require writing code to generate dictionaries and then importing them into the Intruder module.\n\u003ch3 align=\"center\"\u003e\n\u003cimg src=\"imgs/fuzztag.png\" style=\"width: 600px\" alt=\"fuzztag.png\" \u003e\u003c/a\u003e\n\u003c/h3\u003e\n\nYou can refer to the following for more information about Fuzztag： [Fuzztag ](https://yaklang.com/docs/newforyak/fuzztag)\n\n### Reverse Connection Technique and Application Protocol Multiplexing Technique.\n\nMany vulnerability exploitation scenarios require reverse connections to different protocol services. Traditional exploitation tools require setting up separate ports for each service on a public-facing server. For example, in the case of LDAP-based vulnerabilities, one would need to start an HTTP service, an LDAP service, and then send the attack request to complete the exploitation process. Traditional services require unique ports for each service. However, Yaklang's Port Protocol Multiplexing technique allows listening on a single port and identifying the protocol of incoming requests to respond accordingly. The advantage of Yaklang's Port Protocol Multiplexing is not only resource-saving and convenient for manual testing, but also the ability to manually implement various protocols by handcrafting protocol headers. This allows flexible construction of different protocol packets, including the ability to create malformed protocols for vulnerability exploitation or carry data through protocols such as DNS or ICMP, which can be used for backdoor persistence or bypassing certain TCP-based vulnerabilities without going out to the network.\n\nMeanwhile, Yakit implements a reverse connection module based on the Port Protocol Multiplexing technique, which includes features such as Reverse Shell, reverse connection exploitation, and reverse connection detection. The Reverse Shell feature allows listening on a specified port as the receiver for reverse shells. Once a reverse shell is received, it can be used to control the remote server, similar to SSH. In traditional penetration testing scenarios, tools like Nc are used to listen on ports, but they may encounter issues with certain keys like backspace or arrow keys. The reverse shell experience provided by Yakit is similar to native SSH, addressing these limitations. The reverse connection exploitation feature allows setting payloads for different protocols based on a listening port. When a request is received, the protocol is automatically identified, and the corresponding payload is returned to achieve vulnerability exploitation. The reverse connection detection feature provides detection for TCP, DNSLog, and ICMP reverse connections, which can be used for command execution detection.\n\u003ch3 align=\"center\"\u003e\n\u003cimg src=\"imgs/reverse.png\" style=\"width: 600px\" alt=\"reverse.png\" \u003e\u003c/a\u003e\n\u003c/h3\u003e\n\n## How to Use\n\n- You can visit the [official website](https://yaklang.com/) to download and install Yakit.\n\n- You can refer to our [official documentation](https://yaklang.io/products/intro/) to learn and use Yakit.\n\nFor more technical content, you can check:\n\n[Technical articles](https://yaklang.io/products/article/yakit-technical-study/methodology)\n\n[Whitepaper](https://yaklang.oss-cn-beijing.aliyuncs.com/yakit-technical-white-paper.pdf)\n\n## Development Setup\n\nPrerequisites:\n\n- Node.js 18.x (recommended) and Yarn 1.x\n- Git\n- Windows, macOS, or Linux\n\nSteps:\n\n1. Install dependencies at repo root\n     \n     ```bash\n     yarn\n     ```\n\n2. Install renderer dependencies\n     \n     ```bash\n     yarn install-render\n     ```\n\n3. Start development (starts React renderer and Electron)\n     \n     ```bash\n     yarn dev\n     ```\n\nUseful scripts (from package.json):\n\n- Build renderer only: `yarn build-render`\n- Start Electron only (after renderer runs on 3000): `yarn start-electron`\n- Package (Windows example): `yarn pack-win`\n\n## Community\n\nIf you have any constructive feedback or bug reports regarding our product, we welcome everyone to raise an issue.\n\nYou can also contact us through our official WeChat account for inquiries or to explore business licensing and partnership opportunities.\n\nIf you would like to join our community for discussions or have questions to communicate with our technical team, please contact us and add our operations WeChat ID.\n\n\n\u003ch3 align=\"left\"\u003e\n  WeChat ID of the staff member:\u003cimg src=\"imgs/wechat2.png\" style=\"width: 200px\" alt=\"wechat2.png\" \u003e\u003c/a\u003e        WeChat official account：\u003cimg src=\"imgs/wechat1.jpeg\" style=\"width: 200px\" alt=\"wechat1.jpeg\" \u003e\u003c/a\u003e\n\u003c/h3\u003e\n\n\n## Stargazers over time\n\n[![Stargazers over time](https://starchart.cc/yaklang/yakit.svg)](https://starchart.cc/yaklang/yakit)\n\n\n## Disclaimer\n\n1. This tool is only for legally authorized enterprise security construction behaviors and personal learning behaviors. If you need to test the usability of this tool, please build a virtual environment by yourself.\n\n2. When using this tool for pentesting, you should ensure that the behavior complies with local laws and regulations and has obtained sufficient authorization. Do not scan unauthorized targets.\n\n3. Reverse engineering, decompiling, attempting to decipher the source code, implanting backdoors to spread malware, etc. on this software are prohibited.\n\n4. If you need to use Yakit for commercial purposes, please ensure that you have obtained official authorization; otherwise, we will hold you accountable for any related responsibilities.\n\n\nIf you have any illegal behavior when using this tool, you shall bear the corresponding consequences by yourself, and we will not bear any legal and joint responsibility.\n\nBefore installing and using this tool, please read carefully and fully understand the terms\n\nUnless you have fully read, fully understood, and accepted all the terms of this agreement, please do not install and use this tool. Your use behavior or your acceptance of this Agreement in any other express or implied manner shall be deemed to have been read and agreed to be bound by this Agreement\n\n","funding_links":[],"categories":["Popular","TypeScript","HarmonyOS","其他_安全与渗透","security"],"sub_categories":["Windows Manager","网络服务_其他"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaklang%2Fyakit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyaklang%2Fyakit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaklang%2Fyakit/lists"}