gchq/CyberChef
GitHub: gchq/CyberChef
Stars: 34215 | Forks: 3859
# CyberChef
[](https://github.com/gchq/CyberChef/actions?query=workflow%3A%22Master+Build%2C+Test+%26+Deploy%22)
[](https://www.npmjs.com/package/cyberchef)
[](https://github.com/gchq/CyberChef/blob/master/LICENSE)
[](https://gitter.im/gchq/CyberChef?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
#### *网络瑞士军刀*
CyberChef 是一个简单、直观的 Web 应用程序,用于在 Web 浏览器中执行各种“网络”操作。这些操作包括简单的编码(如 XOR 和 Base64),更复杂的加密(如 AES、DES 和 Blowfish),创建二进制和十六进制转储,数据的压缩和解压缩,计算哈希值和校验和,IPv6 和 X.509 解析,更改字符编码等等。
该工具旨在让技术人员和非技术人员分析师都能以复杂的方式处理数据,而无需应对复杂的工具或算法。它是由一名分析师在几年的 10% 创新时间内构思、设计、构建并逐步改进的。
## 在线演示
CyberChef 仍在积极开发中。因此,它不应被视为成品。仍有测试和错误修复工作要做,新功能有待添加,额外的文档有待编写。请贡献力量!
不应依赖 CyberChef 的加密操作在任何情况下提供安全保障。不对其正确性提供任何保证。
[可以在这里找到在线演示][1] - 祝你玩得开心!
## 使用 Docker 在本地运行
**前置条件**
- [Docker](hhttps://www.docker.com/products/docker-desktop/)
- Docker Desktop 必须在你的机器上打开并运行
#### 选项 1:自行构建 Docker 镜像
1. 构建 Docker 镜像
```
docker build --tag cyberchef --ulimit nofile=10000 .
```
2. 运行 Docker 容器
```
docker run -it -p 8080:80 cyberchef
```
3. 在浏览器中访问 `http://localhost:8080`
#### 选项 2:使用预构建的 Docker 镜像
如果你更喜欢跳过构建过程,可以使用预构建的镜像
```
docker run -it -p 8080:80 ghcr.io/gchq/cyberchef:latest
```
和之前一样,在浏览器中访问 `http://localhost:8080`。
此镜像通过我们的 [GitHub Workflows](.github/workflows/releases.yml) 构建并发布。
## 工作原理
CyberChef 有四个主要区域:
1. 右上角的 **输入** 框,你可以在其中粘贴、输入或拖放要操作的文本或文件。
2. 右下角的 **输出** 框,处理结果将在此显示。
3. 最左侧的 **操作** 列表,你可以通过分类列表或搜索找到 CyberChef 能够执行的所有操作。
4. 中间的 **配方** 区域,你可以将要使用的操作拖到这里,并指定参数和选项。
你可以以简单或复杂的方式使用任意数量的操作。以下是一些示例:
- [解码 Base64 编码的字符串][2]
- [将日期和时间转换为不同的时区][3]
- [解析 Teredo IPv6 地址][4]
- [从十六进制转储转换数据,然后解压][5]
- [解密并反汇编 shellcode][6]
- [将多个时间戳显示为完整日期][7]
- [对不同类型的数据执行不同的操作][8]
- [使用输入的一部分作为操作的参数][9]
- [执行 AES 解密,从密文流的开头提取 IV][10]
- [自动检测多层嵌套编码][12]
## 功能特性
- 拖放
- 操作可以拖入或拖出配方列表,或重新排序。
- 高达 2GB 的文件可以拖到输入框上,直接加载到浏览器中。
- 自动烘焙
- 每当你修改输入或配方时,CyberChef 会自动为你“烘焙”并立即生成输出。
- 如果这影响性能(例如输入非常大),可以关闭此功能并手动操作。
- 自动编码检测
- CyberChef 使用 [多种技术](https://github.com/gchq/CyberChef/wiki/Automatic-detection-of-encoded-data-using-CyberChef-Magic) 尝试自动检测你的数据处于哪种编码下。如果它找到了能合理解释你数据的操作,它会在输出字段中显示“魔法”图标,你可以点击它来解码你的数据。
- 断点
- 你可以在配方中的任何操作上设置断点,以便在运行之前暂停执行。
- 你还可以逐个操作单步执行配方,以查看数据在每个阶段的样子。
- 保存和加载配方
- 如果你想出了一个很棒的配方并且知道以后还会用到,只需点击“保存配方”并将其添加到本地存储。下次访问 CyberChef 时,它会在那里等你。
- 你还可以复制 URL,其中包含你的配方和输入,以便轻松与他人分享。
- 搜索
- 如果你知道想要的操作名称或与其相关的单词,开始在搜索字段中输入,任何匹配的操作将立即显示。
- 高亮显示
- 当你在输入或输出中高亮显示文本时,将显示偏移量和长度值,并且如果可能,相应的数据将分别在输出或输入中高亮显示(例如:[在输入中高亮显示单词 'question' 以查看它在输出中出现的位置][11])。
- 保存到文件和从文件加载
- 你可以随时将输出保存到文件,或者通过将文件拖放到输入字段来加载文件。支持高达 2GB 左右的文件(具体取决于你的浏览器),但是,在这么多数据上运行某些操作可能需要很长时间。
- CyberChef 完全是客户端的
- 应该注意的是,你的配方配置或输入(文本或文件)都不会发送到 CyberChef Web 服务器 - 所有处理都在你自己的计算机上的浏览器中进行。
- 由于此功能,CyberChef 可以下载并在本地运行。你可以使用应用程序左上角的链接下载 CyberChef 的完整副本,并将其放入虚拟机、与他人共享或在封闭网络中托管。
## 深度链接
通过修改 CyberChef 的 URL 哈希,你可以更改页面打开时的初始设置。
格式为 `https://gchq.github.io/CyberChef/#recipe=Operation()&input=...`
支持的参数有 `recipe`、`input`(以 Base64 编码)和 `theme`。
## 浏览器支持
CyberChef 旨在支持
- Google Chrome 50+
- Mozilla Firefox 38+
## Node.js 支持
CyberChef 完全支持 Node.js `v16`。更多信息,请参阅 ["Node API" wiki 页面](https://github.com/gchq/CyberChef/wiki/Node-API)
## 许可
CyberChef 根据 [Apache 2.0 许可证](https://www.apache.org/licenses/LICENSE-2.0) 发布,并受 [皇家版权](https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/) 保护。
标签:AES, Base64, CMS安全, CTF工具, CyberChef, DES, DNS枚举, Docker, GCHQ, Hexdump, JavaScript, MD5, MITM代理, Rust语言, SHA, Web界面, XOR, 二进制分析, 二进制文件分析, 云安全运维, 代码示例, 函数图谱, 加密, 压缩与解压, 哈希计算, 字符串处理, 安全防御评估, 数字取证, 数据分析, 数据可视化, 暗色界面, 漏洞扫描器, 漏洞搜索, 离线使用, 编码转换, 网络安全工具, 自动化脚本, 自定义脚本, 自定义脚本, 解密, 解码工具, 请求拦截, 进制转换