CyberChef
网络瑞士军刀
CyberChef是一个简单、直观的网页应用,用于在网络浏览器中执行各种"网络"操作。这些操作包括简单的编码如XOR和Base64,更复杂的加密如AES、DES和Blowfish,创建二进制和十六进制转储,数据压缩和解压缩,计算哈希值和校验和,IPv6和X.509解析,更改字符编码等等。
该工具旨在使技术和非技术分析人员能够以复杂的方式操作数据,而无需处理复杂的工具或算法。它是由一位分析师在多年的10%创新时间内构思、设计、构建和逐步改进的。
在线演示
CyberChef仍在积极开发中。因此,不应将其视为成品。仍有测试和错误修复要做,新功能要添加,以及更多文档要编写。请贡献!
CyberChef中的加密操作不应被依赖来提供任何情况下的安全性。不保证其正确性。
[在线演示可以在这里找到][1] - 玩得开心!
容器
如果你想在本地试用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编码的字符串][2]
- [将日期和时间转换为不同的时区][3]
- [解析Teredo IPv6地址][4]
- [从十六进制转储转换数据,然后解压缩][5]
- [解密和反汇编shellcode][6]
- [将多个时间戳显示为完整日期][7]
- [对不同类型的数据执行不同的操作][8]
- [使用输入的部分作为操作的参数][9]
- [执行AES解密,从密文流的开头提取IV][10]
- [自动检测多层嵌套编码][12]
特性
- 拖放
- 操作可以拖入和拖出配方列表,或重新组织。
- 最大2GB的文件可以拖到输入框上直接加载到浏览器中。
- 自动烘焙
- 每当你修改输入或配方时,CyberChef会自动为你"烘焙"并立即产生输出。
- 如果影响性能(例如,如果输入非常大),可以关闭此功能并手动操作。
- 自动编码检测
- CyberChef使用多种技术尝试自动检测你的数据使用的编码。如果找到能够理解你数据的合适操作,它会在输出字段显示"魔法"图标,你可以点击它来解码数据。
- 断点
- 你可以在配方中的任何操作上设置断点,以在运行前暂停执行。
- 你还可以一次执行一个操作,逐步查看每个阶段的数据情况。
- 保存和加载配方
- 如果你想出了一个很棒的配方,知道以后会再次使用,只需点击"保存配方"并将其添加到本地存储。下次访问CyberChef时,它会等着你。
- 你还可以复制URL,其中包含你的配方和输入,以便轻松与他人分享。
- 搜索
- 如果你知道想要的操作的名称或与之相关的单词,开始在搜索字段中输入,任何匹配的操作都会立即显示。
- 高亮显示
- 当你在输入或输出中高亮显示文本时,会显示偏移量和长度值,如果可能,相应的数据会在输出或输入中高亮显示(例如:[在输入中高亮显示"question"一词,看它在输出中出现的位置][11])。
- 保存到文件和从文件加载
- 你可以随时将输出保存到文件,或通过将文件拖放到输入字段中来加载文件。支持最大约2GB的文件(取决于你的浏览器),但是,某些操作可能需要很长时间才能处理这么多数据。
- CyberChef完全在客户端运行
- 应该注意的是,你的配方配置或输入(无论是文本还是文件)都不会发送到CyberChef网络服务器 - 所有处理都在你的浏览器中,在你自己的计算机上进行。
- 由于这个特性,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"维基页面
贡献
为 CyberChef 贡献新操作非常简单!快速入门脚本将引导您完成整个过程。只要您会编写基本的 JavaScript,就能创建 CyberChef 操作。
安装步骤说明、添加新操作和主题的指南、仓库结构描述、可用数据类型和编码约定等内容都可以在"贡献"维基页面中找到。
- 将您的更改推送到您的分支。
- 提交拉取请求。如果这是您第一次提交,系统会提示您通过拉取请求上的 CLA 助手签署 GCHQ 贡献者许可协议。这还会询问您是否愿意让 GCHQ 就感谢您贡献的礼物或 GCHQ 的工作机会与您联系。
许可
CyberChef 根据 Apache 2.0 许可证发布,并受王室版权保护。 [1]: https://gchq.github.io/CyberChef [2]: https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)&input=VTI4Z2JHOXVaeUJoYm1RZ2RHaGhibXR6SUdadmNpQmhiR3dnZEdobElHWnBjMmd1 [3]: https://gchq.github.io/CyberChef/#recipe=Translate_DateTime_Format('Standard%20date%20and%20time','DD/MM/YYYY%20HH:mm:ss','UTC','dddd%20Do%20MMMM%20YYYY%20HH:mm:ss%20Z%20z','Australia/Queensland')&input=MTUvMDYvMjAxNSAyMDo0NTowMA [4]: https://gchq.github.io/CyberChef/#recipe=Parse_IPv6_address()&input=MjAwMTowMDAwOjQxMzY6ZTM3ODo4MDAwOjYzYmY6M2ZmZjpmZGQy [5]: https://gchq.github.io/CyberChef/#recipe=From_Hexdump()Gunzip()&input=MDAwMDAwMDAgIDFmIDhiIDA4IDAwIDEyIGJjIGYzIDU3IDAwIGZmIDBkIGM3IGMxIDA5IDAwIDIwICB8Li4uLi6881cu/y7HwS4uIHwKMDAwMDAwMTAgIDA4IDA1IGQwIDU1IGZlIDA0IDJkIGQzIDA0IDFmIGNhIDhjIDQ0IDIxIDViIGZmICB8Li7QVf4uLdMuLsouRCFb/3wKMDAwMDAwMjAgIDYwIGM3IGQ3IDAzIDE2IGJlIDQwIDFmIDc4IDRhIDNmIDA5IDg5IDBiIDlhIDdkICB8YMfXLi6%2BQC54Sj8uLi4ufXwKMDAwMDAwMzAgIDRlIGM4IDRlIDZkIDA1IDFlIDAxIDhiIDRjIDI0IDAwIDAwIDAwICAgICAgICAgICB8TshObS4uLi5MJC4uLnw [6]: https://gchq.github.io/CyberChef/#recipe=RC4(%7B'option':'UTF8','string':'secret'%7D,'Hex','Hex')Disassemble_x86('64','Full%20x86%20architecture',16,0,true,true)&input=MjFkZGQyNTQwMTYwZWU2NWZlMDc3NzEwM2YyYTM5ZmJlNWJjYjZhYTBhYWJkNDE0ZjkwYzZjYWY1MzEyNzU0YWY3NzRiNzZiM2JiY2QxOTNjYjNkZGZkYmM1YTI2NTMzYTY4NmI1OWI4ZmVkNGQzODBkNDc0NDIwMWFlYzIwNDA1MDcxMzhlMmZlMmIzOTUwNDQ2ZGIzMWQyYmM2MjliZTRkM2YyZWIwMDQzYzI5M2Q3YTVkMjk2MmMwMGZlNmRhMzAwNzJkOGM1YTZiNGZlN2Q4NTlhMDQwZWVhZjI5OTczMzYzMDJmNWEwZWMxOQ [7]: https://gchq.github.io/CyberChef/#recipe=Fork('%5C%5Cn','%5C%5Cn',false)From_UNIX_Timestamp('Seconds%20(s)')&input=OTc4MzQ2ODAwCjEwMTI2NTEyMDAKMTA0NjY5NjQwMAoxMDgxMDg3MjAwCjExMTUzMDUyMDAKMTE0OTYwOTYwMA [8]: https://gchq.github.io/CyberChef/#recipe=Fork('%5C%5Cn','%5C%5Cn',false)Conditional_Jump('1',false,'base64',10)To_Hex('Space')Return()Label('base64')To_Base64('A-Za-z0-9%2B/%3D')&input=U29tZSBkYXRhIHdpdGggYSAxIGluIGl0ClNvbWUgZGF0YSB3aXRoIGEgMiBpbiBpdA [9]: https://gchq.github.io/CyberChef/#recipe=Register('key%3D(%5B%5C%5Cda-f%5D*)',true,false)Find_/_Replace(%7B'option':'Regex','string':'.*data%3D(.*)'%7D,'$1',true,false,true)RC4(%7B'option':'Hex','string':'$R0'%7D,'Hex','Latin1')&input=aHR0cDovL21hbHdhcmV6LmJpei9iZWFjb24ucGhwP2tleT0wZTkzMmE1YyZkYXRhPThkYjdkNWViZTM4NjYzYTU0ZWNiYjMzNGUzZGIxMQ [10]:https://gchq.github.io/CyberChef/#recipe=Register('(.%7B32%7D)',true,false)Drop_bytes(0,32,false)AES_Decrypt(%7B'option':'Hex','string':'1748e7179bd56570d51fa4ba287cc3e5'%7D,%7B'option':'Hex','string':'$R0'%7D,'CTR','Hex','Raw',%7B'option':'Hex','string':''%7D)&input=NTFlMjAxZDQ2MzY5OGVmNWY3MTdmNzFmNWI0NzEyYWYyMGJlNjc0YjNiZmY1M2QzODU0NjM5NmVlNjFkYWFjNDkwOGUzMTljYTNmY2Y3MDg5YmZiNmIzOGVhOTllNzgxZDI2ZTU3N2JhOWRkNmYzMTFhMzk0MjBiODk3OGU5MzAxNGIwNDJkNDQ3MjZjYWVkZjU0MzZlYWY2NTI0MjljMGRmOTRiNTIxNjc2YzdjMmNlODEyMDk3YzI3NzI3M2M3YzcyY2Q4OWFlYzhkOWZiNGEyNzU4NmNjZjZhYTBhZWUyMjRjMzRiYTNiZmRmN2FlYjFkZGQ0Nzc2MjJiOTFlNzJjOWU3MDlhYjYwZjhkYWY3MzFlYzBjYzg1Y2UwZjc0NmZmMTU1NGE1YTNlYzI5MWNhNDBmOWU2MjlhODcyNTkyZDk4OGZkZDgzNDUzNGFiYTc5YzFhZDE2NzY3NjlhN2MwMTBiZjA0NzM5ZWNkYjY1ZDk1MzAyMzcxZDYyOWQ5ZTM3ZTdiNGEzNjFkYTQ2OGYxZWQ1MzU4OTIyZDJlYTc1MmRkMTFjMzY2ZjMwMTdiMTRhYTAxMWQyYWYwM2M0NGY5NTU3OTA5OGExNWUzY2Y5YjQ0ODZmOGZmZTljMjM5ZjM0ZGU3MTUxZjZjYTY1MDBmZTRiODUwYzNmMWMwMmU4MDFjYWYzYTI0NDY0NjE0ZTQyODAxNjE1YjhmZmFhMDdhYzgyNTE0OTNmZmRhN2RlNWRkZjMzNjg4ODBjMmI5NWIwMzBmNDFmOGYxNTA2NmFkZDA3MWE2NmNmNjBlNWY0NmYzYTIzMGQzOTdiNjUyOTYzYTIxYTUzZg [11]:https://gchq.github.io/CyberChef/#recipe=XOR(%7B'option':'Hex','string':'3a'%7D,'Standard',false)To_Hexdump(16,false,false)&input=VGhlIGFuc3dlciB0byB0aGUgdWx0aW1hdGUgcXVlc3Rpb24gb2YgbGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgZXZlcnl0aGluZyBpcyA0Mi4 [12]:https://gchq.github.io/CyberChef/#recipe=Magic(3,false,false)&input=V1VhZ3dzaWFlNm1QOGdOdENDTFVGcENwQ0IyNlJtQkRvREQ4UGFjZEFtekF6QlZqa0syUXN0RlhhS2hwQzZpVVM3UkhxWHJKdEZpc29SU2dvSjR3aGptMWFybTg2NHFhTnE0UmNmVW1MSHJjc0FhWmM1VFhDWWlmTmRnUzgzZ0RlZWpHWDQ2Z2FpTXl1QlY2RXNrSHQxc2NnSjg4eDJ0TlNvdFFEd2JHWTFtbUNvYjJBUkdGdkNLWU5xaU45aXBNcTFaVTFtZ2tkYk51R2NiNzZhUnRZV2hDR1VjOGc5M1VKdWRoYjhodHNoZVpud1RwZ3FoeDgzU1ZKU1pYTVhVakpUMnptcEM3dVhXdHVtcW9rYmRTaTg4WXRrV0RBYzFUb291aDJvSDRENGRkbU5LSldVRHBNd21uZ1VtSzE0eHdtb21jY1BRRTloTTE3MkFQblNxd3hkS1ExNzJSa2NBc3lzbm1qNWdHdFJtVk5OaDJzMzU5d3I2bVMyUVJQ