
CyberChef v11.3.0
O Canivete Suíço Cibernético - uma aplicação web para criptografia, codificação, compressão e análise de dados
CyberChef
O Canivete Suíço Cibernético
O CyberChef é uma aplicação web simples e intuitiva para realizar todo o tipo de operações "cibernéticas" dentro de um navegador web. Estas operações incluem codificação simples como XOR e Base64, encriptação mais complexa como AES, DES e Blowfish, criação de binários e hexdumps, compressão e descompressão de dados, cálculo de hashes e checksums, análise de IPv6 e X.509, alteração de codificações de caracteres e muito mais.
A ferramenta foi concebida para permitir que analistas, tanto técnicos como não técnicos, manipulem dados de formas complexas sem terem de lidar com ferramentas ou algoritmos complexos. Foi concebida, projetada, construída e melhorada incrementalmente por um analista no seu tempo de inovação de 10% ao longo de vários anos.
Conteúdos
- Site oficial
- Executar Localmente
- Como funciona
- Funcionalidades
- Deep linking
- Suporte do navegador
- Suporte para Node.js
- Segurança
- Contribuição
- Licenciamento
Site oficial
O site oficial do CyberChef pode ser encontrado aqui - divirta-se!
Executar Localmente
Pode executar o CyberChef com Docker (sem necessidade de toolchain) ou compilá-lo a partir do código-fonte com Node.js.
Com Docker
Pré-requisitos
- Docker
- O Docker Desktop deve estar aberto e em execução na sua máquina
Opção 1: Compilar a Imagem Docker Você Mesmo
- Compile a imagem docker
docker build --tag cyberchef --ulimit nofile=10000 .
- Execute o contentor docker
docker run -it -p 8080:8080 cyberchef
- Navegue até
http://localhost:8080no seu navegador
Opção 2: Utilizar a Imagem Docker Pré-compilada
Se preferir evitar o processo de compilação, pode utilizar a imagem pré-compilada
docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest
Tal como antes, navegue até http://localhost:8080 no seu navegador.
Esta imagem é compilada e publicada através dos nossos GitHub Workflows.
A partir do código-fonte
Se quiser desenvolver o CyberChef ou executá-lo sem Docker, pode compilá-lo diretamente com Node.js.
Pré-requisitos
- Node.js
v24(consulte Suporte para Node.js)
[!NOTE]
Pode utilizar o nvm para gerir versões do Node.js e utilizar a versão de desenvolvimento atual em este projeto para evitar conflitos com outros projetos na sua máquina.
Configuração
git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install
Tarefas comuns
| Comando | Descrição |
|---|---|
npm start | Executa o servidor de desenvolvimento com recarga automática em http://localhost:8080. |
npm run build | Produz uma compilação de produção no diretório build/prod. |
npm test | Executa as suítes de testes do Node.js e das operações. |
npm run testui | Executa os testes do navegador (UI). |
npm run lint | Verifica o código de acordo com as regras de linting. |
npm run newop | Cria uma nova operação através do script interativo de início rápido. |
Se encontrar um erro de falta de memória ao compilar receitas grandes, aumente o tamanho do heap do Node com npm run setheapsize.
Como funciona
Existem quatro áreas principais no CyberChef:
- A caixa input no canto superior direito, onde pode colar, escrever ou arrastar o texto ou ficheiro sobre o qual pretende operar.
- A caixa output no canto inferior direito, onde o resultado do seu processamento será apresentado.
- A lista de operations no extremo esquerdo, onde pode encontrar todas as operações que o CyberChef é capaz de realizar em listas categorizadas, ou através de pesquisa.
- A área recipe no centro, onde pode arrastar as operações que pretende utilizar e especificar argumentos e opções.
Pode utilizar quantas operações quiser, de formas simples ou complexas. Alguns exemplos são:
- Descodificar uma string codificada em Base64
- Converter uma data e hora para um fuso horário diferente
- Analisar um endereço IPv6 Teredo
- Converter dados de um hexdump e depois descomprimir
- Desencriptar e desmontar shellcode
- Apresentar múltiplos timestamps como datas completas
- Realizar diferentes operações em dados de diferentes tipos
- Utilizar partes do input como argumentos para operações
- Realizar a desencriptação AES, extraindo o IV do início do stream cifrado
- Uma forma mais simples de realizar a mesma desencriptação AES
- Detetar automaticamente várias camadas de codificação aninhada
Funcionalidades
- Arrastar e soltar
- As operações podem ser arrastadas para dentro e para fora da lista de receitas, ou reorganizadas.
- Ficheiros até 2GB podem ser arrastados para a caixa de input para serem carregados diretamente no navegador.
- Auto Bake
- Sempre que modifica o input ou a receita, o CyberChef fará automaticamente o "bake" por si e produzirá o output imediatamente.
- Isto pode ser desativado e operado manualmente se estiver a afetar o desempenho (se o input for muito grande, por exemplo).
- Deteção automática de codificação
- O CyberChef utiliza várias técnicas para tentar detetar automaticamente em que codificações os seus dados se encontram. Se encontrar uma operação adequada que dê sentido aos seus dados, apresenta o ícone 'magic' no campo Output, no qual pode clicar para descodificar os seus dados.
- Breakpoints
- Pode definir breakpoints em qualquer operação da sua receita para pausar a execução antes de a executar.
- Também pode percorrer a receita operação a operação para ver o aspeto dos dados em cada fase.
- Guardar e carregar receitas
- Se criar uma receita fantástica que saiba que vai querer utilizar novamente, basta clicar em "Save recipe" e adicioná-la ao seu armazenamento local. Estará à sua espera na próxima vez que visitar o CyberChef.
- Também pode copiar o URL, que inclui a sua receita e o input, para o partilhar facilmente com outras pessoas.
- Pesquisa
- Se souber o nome da operação que pretende ou uma palavra associada a ela, comece a escrevê-la no campo de pesquisa e todas as operações correspondentes serão imediatamente apresentadas.
- Realce
- Quando realça texto no input ou no output, os valores de offset e length serão apresentados e, se possível, os dados correspondentes serão realçados no output ou no input, respetivamente (exemplo: realce a palavra 'question' no input para ver onde aparece no output).
- Guardar em ficheiro e carregar de ficheiro
- Pode guardar o output num ficheiro a qualquer momento ou carregar um ficheiro arrastando-o e soltando-o no campo de input. São suportados ficheiros até cerca de 2GB (dependendo do seu navegador); no entanto, algumas operações podem demorar muito tempo a executar sobre esta quantidade de dados.
- O CyberChef é totalmente client-side
- Deve notar-se que nenhuma da sua configuração de receita ou input (quer sejam textos ou ficheiros) é alguma vez enviada para o servidor web do CyberChef - todo o processamento é realizado dentro do seu navegador, no seu próprio computador.
- Devido a esta funcionalidade, o CyberChef pode ser descarregado e executado localmente. Pode utilizar o link no canto superior esquerdo da aplicação para descarregar uma cópia completa do CyberChef e colocá-la numa máquina virtual, partilhá-la com outras pessoas, ou alojá-la numa rede fechada.
Deep linking
Ao manipular o hash do URL do CyberChef, pode alterar as definições iniciais com as quais a página abre.
O formato é https://gchq.github.io/CyberChef/#recipe=Operation()&input=...
Os argumentos suportados são recipe, input (codificado em Base64) e theme.
Suporte do navegador
O CyberChef foi construído para suportar
- Google Chrome 50+
- Mozilla Firefox 38+
Suporte para Node.js
O CyberChef foi construído para suportar totalmente o Node.js v24 e também é testado contra o Node.js v26 antes de se tornar a versão LTS ativa. Para mais informações, consulte a página wiki "Node API"
Segurança
Consulte a política de segurança do CyberChef.
Contribuição
Contribuir com uma nova operação para o CyberChef é super fácil! O script de início rápido irá guiá-lo pelo processo. Se sabe escrever JavaScript básico, sabe escrever uma operação do CyberChef.
Um tutorial de instalação, guias de como adicionar novas operações e temas, descrições da estrutura do repositório, tipos de dados disponíveis e convenções de codificação podem ser encontrados na página wiki "Contributing".
- Faça push das suas alterações para o seu fork.
- Submeta um pull request. Se estiver a fazer isto pela primeira vez, ser-lhe-á pedido que assine o GCHQ Contributor Licence Agreement através do assistente de CLA no pull request. Isto também perguntará se concorda que a GCHQ o contacte sobre um gesto de agradecimento pela sua contribuição, ou sobre oportunidades de emprego na GCHQ.
Licenciamento
O CyberChef é disponibilizado sob a Licença Apache 2.0 e é abrangido pelo Crown Copyright.