网络厨师
网络瑞士军刀
CyberChef 是一个简单、直观的网络应用程序,用于在网络浏览器中执行各种“网络”操作。这些操作包括 XOR 和 Base64 等简单编码、AES、DES 和 Blowfish 等更复杂的加密、创建二进制和十六进制转储、数据压缩和解压缩、计算哈希值和校验和、IPv6 和 X.509 解析、更改字符编码等等。
该工具旨在使技术和非技术分析师能够以复杂的方式操作数据,而无需处理复杂的工具或算法。它是由分析师在几年内花费 10% 的创新时间构思、设计、构建和逐步改进的。
现场演示
CyberChef 仍在积极开发中。因此,它不应被视为成品。仍然需要进行测试和错误修复,需要添加新功能以及需要编写其他文档。请贡献!
在任何情况下都不应依赖 CyberChef 中的加密操作来提供安全性。不保证其正确性。
可以在这里找到现场演示 - 玩得开心!
集装箱
如果您想在本地尝试 CyberChef,您可以自己构建它:
docker build --tag cyberchef --ulimit nofile=10000 .
docker run -it -p 8080:80 cyberchef
或者您可以直接使用我们的图像:
docker run -it -p 8080:80 ghcr.io/gchq/cyberchef:latest
该图像是通过我们的 GitHub 工作流程构建和发布的
它是如何运作的
CyberChef 有四个主要区域:
- 右上角的输入框,您可以在其中粘贴、键入或拖动要操作的文本或文件。
- 右下角的输出框,将显示处理的结果。
- 最左侧的操作列表,您可以在分类列表中或通过搜索找到 CyberChef 能够执行的所有操作。
- 中间的配方区域,您可以在其中拖动要使用的操作并指定参数和选项。
您可以通过简单或复杂的方式使用任意数量的操作。一些示例如下:
- 解码 Base64 编码的字符串
- 将日期和时间转换为不同的时区
- 解析 Teredo IPv6 地址
- 从十六进制转储转换数据,然后解压缩
- 解密和反汇编shellcode
- 将多个时间戳显示为完整日期
- 对不同类型的数据进行不同的操作
- 使用部分输入作为操作的参数
- 执行 AES 解密,从密码流的开头提取 IV
- 自动检测多层嵌套编码
特征
- 拖放
- 操作可以拖入或拖出配方列表,或重新组织。
- 最大2GB的文件可以拖动到输入框上,直接加载到浏览器中。
- 自动烘烤
- 每当您修改输入或配方时,CyberChef 都会自动为您“烘焙”并立即生成输出。
- 如果它影响性能(例如,如果输入非常大),可以将其关闭并手动操作。
- 自动编码检测
- CyberChef 使用多种技术来尝试自动检测您的数据所采用的编码。如果它找到适合您的数据的操作,它会在“输出”字段中显示“魔法”图标,您可以单击该图标来解码数据。
- 断点
- 您可以在配方中的任何操作上设置断点,以在运行之前暂停执行。
- 您还可以一次逐步执行一个操作,以查看每个阶段的数据是什么样的。
- 保存和加载食谱
- 如果您想出了一个很棒的食谱,并且知道自己想再次使用,只需单击“保存食谱”并将其添加到本地存储中即可。下次您访问 CyberChef 时,它将等待您。
- 您还可以复制包含您的食谱和输入的 URL,以便轻松与其他人共享。
- 搜索
- 如果您知道所需操作的名称或与之关联的单词,请开始在搜索字段中输入它,任何匹配的操作都会立即显示。
- 突出显示
- 当您突出显示输入或输出中的文本时,将显示偏移量和长度值,如果可能,相应的数据将分别在输出或输入中突出显示(例如:突出显示输入中的单词“question”以查看其位置)它出现在输出中)。
- 保存到文件并从文件加载
- 您可以随时将输出保存到文件或通过将文件拖放到输入字段来加载文件。支持高达约 2GB 的文件(取决于您的浏览器),但是,某些操作可能需要很长时间才能运行这么多数据。
- CyberChef 完全是客户端
- 应该注意的是,您的任何食谱配置或输入(文本或文件)都不会发送到 CyberChef 网络服务器 - 所有处理都在您自己的计算机上的浏览器中进行。
- 由于此功能,CyberChef 可以在本地下载并运行。您可以使用应用程序左上角的链接下载 CyberChef 的完整副本并将其放入虚拟机中、与其他人共享或将其托管在封闭网络中。
深层链接
通过操纵 CyberChef 的 URL 哈希,您可以更改页面打开的初始设置。格式为https://gchq.github.io/CyberChef/#recipe=Operation()&input=...
支持的参数包括recipe
、 input
(以 Base64 编码)和theme
。
浏览器支持
CyberChef 旨在支持
Node.js 支持
CyberChef 旨在完全支持 Node.js v16
。有关更多信息,请参阅“Node API”wiki 页面
贡献
向 CyberChef 贡献新操作非常简单!快速入门脚本将引导您完成整个过程。如果您可以编写基本的 JavaScript,则可以编写 CyberChef 操作。
安装演练、添加新操作和主题的操作指南、存储库结构的描述、可用数据类型和编码约定都可以在“贡献”wiki 页面中找到。
- 将您的更改推送到您的分支。
- 提交拉取请求。如果您是第一次执行此操作,系统将提示您通过拉取请求上的 CLA 助理签署 GCHQ 贡献者许可协议。它还会询问您是否愿意让 GCHQ 与您联系以感谢您的贡献,或者了解 GCHQ 的工作机会。
许可
CyberChef 根据 Apache 2.0 许可证发布,并受皇家版权保护。