Você abre um desafio de CTF e o enunciado inteiro é uma linha sem sentido: SGFja2VyRE5Be2ZpcnN0X3JlY2lwZX0=. Sem dica, sem arquivo, sem mais nada. Aprender a usar o CyberChef é o que transforma essa linha em texto legível em cerca de oito segundos, e o que torna legíveis as versões mais cruéis, com cinco camadas.
O CyberChef é uma ferramenta de navegador que encadeia transformações de dados no que ele chama de receita. Você cola alguma coisa, empilha algumas operações e vê a saída se atualizar enquanto trabalha. É a ferramenta que a maioria dos jogadores de CTF abre antes de qualquer outra, e assim que você entende os quatro painéis e a operação Magic já cobriu talvez 80 por cento do que um iniciante realmente precisa. Se a diferença entre Base64 e AES ainda está confusa, o capítulo sobre codificação versus criptografia do nosso curso Hacking 101 vale dez minutos antes de começar.
Resumo: o CyberChef é um aplicativo web gratuito e de código aberto do GCHQ que decodifica, descriptografa, analisa e transforma dados inteiramente dentro do seu navegador. Arraste operações para o painel de receita, cole seus dados na entrada e leia o resultado na saída. Comece pela operação Magic para identificar dados desconhecidos e depois monte receitas explícitas quando já souber o que tem em mãos. Ele roda offline como um único arquivo HTML e nunca envia sua entrada para lugar nenhum.
O que é o CyberChef?
O CyberChef é um aplicativo web gratuito e de código aberto para codificação, decodificação, criptografia, compressão e análise de dados, criado pelo GCHQ do Reino Unido e publicado sob a licença Apache 2.0. Ele reúne centenas de operações em uma única página e permite encadeá-las em sequências chamadas receitas. O apelido do projeto, o canivete suíço do cyber, desta vez é preciso.
O ponto que mais importa para a forma como você o usa: tudo roda localmente. O README do projeto é explícito ao dizer que "nenhuma das suas configurações de receita nem das suas entradas (texto ou arquivos) é enviada ao servidor web do CyberChef, todo o processamento é feito dentro do seu navegador, no seu próprio computador". Carregue a página uma vez, desligue a conexão de rede e continue trabalhando.
A versão 11.4.0 é a atual. Não existe conta, plano pago nem limite de uso. Você abre gchq.github.io/CyberChef e começa.
Um enquadramento honesto antes de você se empolgar com as operações de criptografia: o CyberChef é uma ferramenta espetacular de manipulação de dados e uma ferramenta medíocre de criptoanálise. Ele decodifica, neutraliza, analisa, extrai e reformata mais rápido do que qualquer script que você escreveria. Ele não vai quebrar criptografia moderna, e os iniciantes que procuram um botão "AES Decrypt" capaz de descobrir a chave por mágica vão se decepcionar.
Os quatro painéis, em sessenta segundos
A interface parece mais carregada do que é. Quatro painéis, e você só interage com três.
- Operations (extrema esquerda). Todas as operações disponíveis, agrupadas em categorias como Data format, Encryption / Encoding, Hashing, Forensics e Flow control. Ignore as categorias. Use a caixa de busca no topo, porque digitar "base" leva você até
From Base64mais rápido do que qualquer rolagem. - Recipe (no meio). Sua cadeia de operações, executada de cima para baixo. Arraste operações da esquerda, reordene arrastando e remova arrastando para fora.
- Input (canto superior direito). Cole texto aqui ou arraste um arquivo direto para cima. Arquivos de até 2 GB carregam direto no navegador.
- Output (canto inferior direito). O resultado. Ele se atualiza automaticamente a cada mudança, um comportamento que o aplicativo chama de Auto Bake.
Dois controles se pagam logo cedo. O ícone de desativar em cada operação permite desligá-la sem apagá-la, que é como você testa se uma camada é realmente necessária. O ícone de ponto de parada pausa a receita antes daquela operação, então você inspeciona a saída intermediária em vez de adivinhar qual passo quebrou a cadeia.
Na prática, o ponto de parada é o recurso que separa quem briga com o CyberChef de quem o usa. Quando uma receita de cinco passos devolve lixo, colocar um ponto de parada no passo três diz em um clique se o problema está antes ou depois.
Sua primeira receita: Base64 em três cliques
Pegue aquela string do início. Cole SGFja2VyRE5Be2ZpcnN0X3JlY2lwZX0= no painel de entrada, digite "base64" na busca de operações e dê um duplo clique em From Base64. A saída mostra imediatamente:
HackerDNA{first_recipe}
O = no final é preenchimento, e é uma das formas mais rápidas de reconhecer Base64 a olho nu. Uma string com letras maiúsculas, minúsculas e dígitos terminando em um ou dois sinais de igual, com comprimento divisível por quatro, é quase sempre Base64.
Agora a versão que realmente aparece nos desafios. Cole isto:
NjY2YzYxNjc3YjZjNjE3OTY1NzI3MzVmNjE2YzZjNWY3NDY4NjU1Zjc3NjE3OTVmNjQ2Zjc3NmU3ZA==
Rode From Base64 e a saída não é uma flag, é outra parede de caracteres:
666c61677b6c61796572735f616c6c5f7468655f7761795f646f776e7d
Isso é hexadecimal: apenas os caracteres de 0 a 9 e de a a f, e comprimento par. Arraste From Hex para baixo da operação existente e a receita passa a rodar os dois passos em ordem:
flag{layers_all_the_way_down}
A ideia toda é essa. Cada operação entrega sua saída para a seguinte, então descascar quatro camadas de codificação custa quatro duplos cliques em vez de quatro chamadas separadas de ferramentas. Assim que a receita funciona, a URL na barra de endereço contém tanto a receita quanto a entrada, então copiar essa URL compartilha a solução exata com um colega de equipe. Guarde esse detalhe, porque ele tem uma consequência de segurança tratada mais adiante.
Magic: a operação que adivinha por você
Magic é uma operação do CyberChef que examina sua entrada, deduz qual é provavelmente a codificação e sugere a receita que a decodifica. Coloque-a em uma receita vazia com dados desconhecidos na entrada e ela devolve uma lista ordenada de decodificações candidatas, cada uma como um link clicável que carrega aquela receita para você.
Vale entender o que ela faz, porque isso diz quando confiar nela. Segundo o wiki do próprio GCHQ sobre a operação, a Magic combina vários sinais:
- Expressões regulares escritas para cada operação cuja entrada tem formato previsível, que é como ela identifica Base64, hexadecimal e Gzip.
- Execução especulativa. Ela de fato roda as operações candidatas e pontua se os resultados parecem dados válidos.
- Bytes mágicos. As assinaturas de arquivo no início dos dados decodificados, que é como um blob Base64 acaba identificado como um ZIP ou PNG escondido.
- Entropia de Shannon. Entropia mais baixa significa mais estrutura, e estrutura significa que a decodificação provavelmente funcionou.
- Análise de frequência de bytes usando o teste qui-quadrado de Pearson contra as frequências de caracteres esperadas em um idioma, para julgar se a saída parece texto real.
Dois argumentos mudam bastante o comportamento. Depth define quantos níveis de recursão ela tenta, então aumentá-lo encontra codificações aninhadas que uma única passagem deixa escapar. Intensive mode liga os métodos lentos: força bruta em mais de 40 codificações de caracteres, além de tentativas de XOR e rotação de bits. Depth 3 com Intensive mode marcado é um bom padrão quando você trava.
Minha opinião firme: use a Magic primeiro e pare de usá-la em segundo lugar. É a jogada de abertura correta em dados desconhecidos e é um péssimo hábito como fluxo permanente. A Magic falha com chaves XOR de vários bytes, com Base64 de alfabeto customizado, com qualquer coisa de entropia realmente alta e com dados que decodificam para um idioma que ela não verifica por padrão. Os jogadores que estagnam são os que rodam a Magic, não obtêm nada e não têm uma segunda ideia. Aprenda a reconhecer as codificações sozinho e a Magic vira um atalho em vez de uma muleta.
As receitas que vale memorizar
A maioria dos desafios para iniciantes se reduz a um punhado de padrões. Esta tabela é a que vale deixar aberta ao lado do quadro de desafios.
| O que você está vendo | Operação para rodar |
|---|---|
Letras e dígitos terminando em = ou == |
From Base64 |
| Apenas 0-9 e a-f, comprimento par | From Hex |
%41%42%43 ou + onde deveriam estar espaços |
URL Decode |
Estrutura legível, letras erradas (Gur synt vf) |
ROT13, ou ROT13 Brute Force para outros deslocamentos |
Três blocos separados por pontos começando com eyJ |
JWT Decode |
| Uma string hexadecimal de 32, 40 ou 64 caracteres | Analyse hash |
Longas sequências de 01000001 |
From Binary |
| Nada reconhecível | Magic, Depth 3, Intensive mode ligado |
Três desses casos merecem mais do que uma linha de tabela.
XOR Brute Force
XOR de um byte é a "criptografia" mais comum em desafios de cripto para iniciantes, e não é criptografia coisa nenhuma. Pegue este hexadecimal:
624b49414f586e646b515245587543597544455e754f444958535a5e43454457
Rode From Hex e depois adicione XOR Brute Force. Ela testa todas as 256 chaves possíveis de um byte e imprime o resultado de cada uma, então você percorre a lista atrás da linha que parece inglês. Aqui é a chave 2a, que devolve HackerDNA{xor_is_not_encryption}.
O argumento que economiza tempo de verdade é o Crib. Se você sabe que o formato da flag começa com HackerDNA{ ou flag{, coloque essa string no campo Crib e o CyberChef mostra apenas as chaves cuja saída a contém. Em um desafio com 256 linhas candidatas, isso transforma a varredura em um único resultado.
Analyse hash
Jogue um hash na entrada, rode Analyse hash e o CyberChef informa o comprimento em bits e os algoritmos que produzem hashes desse tamanho. Uma string hexadecimal de 32 caracteres é MD5 ou um dos candidatos menos comuns, 40 caracteres é SHA-1 e 64 é SHA-256. O CyberChef identifica o hash, não o quebra, então este é um ponto de passagem e não uma solução. Nosso guia sobre quebra de hashes de senha cobre as ferramentas que assumem daí em diante.
Detect File Type e Extract Files
Quando um desafio entrega um arquivo com extensão errada ou ausente, arraste-o para o painel de entrada e rode Detect File Type. Ele lê os bytes mágicos e diz o que você realmente tem. Em seguida use Extract Files e o CyberChef puxa os arquivos embutidos que encontrar lá dentro, o equivalente no navegador a rodar binwalk -e e muitas vezes mais rápido para uma amostra única.
Essa dupla é onde o CyberChef cruza para a perícia digital. Se o arquivo acabar sendo uma imagem e a flag não estiver nos metadados, nosso guia de detecção de esteganografia continua a partir daí.
Três operações que iniciantes nunca acham
Elas ficam na categoria Flow control, que quase ninguém abre, e são o que separa quem conheceu o CyberChef há cinco minutos de quem resolve os desafios que todos os outros abandonaram.
Fork divide sua entrada por um delimitador e roda o resto da receita em cada pedaço de forma independente. Cole cem strings Base64, uma por linha, adicione Fork com quebra de linha como delimitador e depois From Base64, e você decodifica as cem de uma vez em vez de uma a uma. É a maior economia de tempo da ferramenta inteira.
Subsection aplica as operações seguintes apenas às partes da entrada que casam com uma expressão regular. Quando um arquivo de log tem blobs Base64 espalhados em meio a texto legível, a Subsection decodifica só os blobs e deixa as linhas ao redor intactas. Sem ela, você fica copiando fragmentos na mão.
Register captura um valor dos seus dados com uma expressão regular e o guarda para usar como argumento em uma operação posterior. É assim que você lida com um arquivo que carrega a própria chave de descriptografia em um cabeçalho: capture a chave com Register e depois referencie-a no passo de descriptografia. Leva algumas tentativas até ficar confortável, e é a operação que faz o CyberChef parecer programável.
Nenhuma das três é operação de primeiro dia. São aquelas para as quais voltar na terceira semana, quando você esbarrar no problema que elas existem para resolver.
Onde o CyberChef vence o terminal, e onde ele perde
O CyberChef vence na velocidade de iteração. Testar seis hipóteses de decodificação num REPL Python significa seis ciclos de editar e rodar de novo. No CyberChef significa seis duplos cliques com a resposta se redesenhando a cada um, e a cadeia visual deixa você ver onde a hipótese quebrou em vez de deduzir isso de um traceback. Ele também funciona num notebook corporativo travado onde você não pode instalar nada, o que pesa mais do que parece.
Ele perde em três coisas, e perde feio.
- Arquivos grandes. Tudo vive na memória do navegador. Entradas de centenas de megabytes vão deixar a aba arrastada ou derrubá-la, e o Auto Bake reprocessando a cada tecla piora tudo. Desligue o Auto Bake e processe manualmente quando trabalhar com volume.
- Qualquer coisa que você precise rodar duas vezes. Uma receita não é um script. Se uma transformação faz parte de um processo repetível, migre-a para Python ou para um pipeline de shell. O CyberChef é onde você descobre qual é a transformação, não onde ela deve morar depois.
- Lógica sob medida. No momento em que seu problema exige um laço com uma condição para a qual o CyberChef não tem operação, é melhor escrever dez linhas de Python do que brigar com o Conditional Jump.
O fluxo que realmente se sustenta: prototipe no CyberChef e depois reescreva a cadeia validada como script quando souber que ela está correta. A ferramenta é um laboratório, não uma linha de produção.
Rodando o CyberChef offline
O link no canto superior esquerdo do aplicativo baixa uma cópia completa e autônoma como um único arquivo HTML. Salve, abra em qualquer navegador e você tem a ferramenta inteira sem nenhuma conexão de rede. Todas as operações continuam funcionando, porque elas sempre rodaram localmente mesmo.
Há duas situações em que isso deixa de ser conveniência e vira a única opção aceitável.
A primeira é analisar qualquer coisa genuinamente suspeita. Trabalhar a partir de um arquivo local dentro de uma máquina virtual isolada mantém a análise contida e elimina o risco de uma extensão de navegador esquecida estar lendo a página.
A segunda envolve dados de cliente ou do empregador. Mesmo que nada saia da sua máquina, a maioria dos contratos de prestação de serviço e das políticas internas traça a linha em colar dados de clientes em qualquer site de terceiros, e "o processamento é do lado do cliente" não é o argumento que você quer estar defendendo depois do fato. Use a cópia offline e a questão nunca aparece.
Se você prefere uma instância compartilhada para uma equipe em vez de um arquivo por pessoa, o GCHQ publica uma imagem de contêiner oficial:
docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest
Isso serve a ferramenta em http://localhost:8080 sem dependência externa. O arquivo HTML offline também é bom de ter num pendrive antes de um CTF com Wi-Fi duvidoso no local. Isso já poupou uma hora para mais de uma equipe.
Considerações legais e éticas
Lembrete essencial: sempre obtenha autorização escrita explícita antes de testar qualquer sistema. Decodificar dados é passivo, mas a origem desses dados não é, e possuir ou agir sobre dados obtidos sem permissão carrega o mesmo peso legal, independentemente da ferramenta usada para lê-los.
O CyberChef em si não toca no sistema de ninguém, o que o coloca numa posição mais branda do que a da maioria das ferramentas ofensivas. Os riscos estão nos dados que você entrega a ele, e dois deles pegam as pessoas de surpresa.
O primeiro é a URL compartilhável. Quando você copia a barra de endereço para mandar uma receita a um colega, o fragmento da URL contém sua entrada além da receita. Cole esse link num Discord público, num post de fórum ou num relatório e você publicou tudo o que estava no painel de entrada. Essa é a forma mais comum de vazar uma amostra ou uma credencial sem querer com esta ferramenta, e é totalmente evitável quando você sabe que acontece.
O segundo é o que você faz com a saída. Decodificar uma credencial que você encontrou é trivialmente fácil e não torna a credencial sua para usar.
Onde isso é claramente permitido
- Desafios de CTF e plataformas de treino, que é o alvo da maior parte deste guia
- Arquivos e tráfego de sistemas que você possui ou que um contrato assinado cobre por escrito
- Amostras de malware dentro de um ambiente de análise isolado
- Seus próprios dados, incluindo descobrir o que um aplicativo guardou sobre você em um cookie
O limite não é sobre a ferramenta. Se o seu escopo não nomeia o sistema de onde os dados vieram, esses dados não são seus para decodificar.
Perguntas frequentes
Para que serve o CyberChef?
Para codificar e decodificar dados, criptografar e descriptografar com chaves conhecidas, comprimir, gerar hashes, analisar formatos como JWT e X.509 e extrair arquivos de blobs binários. Jogadores de CTF usam em desafios de cripto e perícia, analistas de SOC usam para neutralizar URLs e decodificar scripts ofuscados, e desenvolvedores usam como conversor rápido de formatos.
O CyberChef é seguro com dados sensíveis?
Todo o processamento acontece no seu navegador e nenhuma entrada é enviada ao servidor do CyberChef. Dito isso, use a cópia offline para dados de clientes ou amostras de malware, porque a maioria dos contratos de prestação de serviço proíbe colar dados de clientes em sites de terceiros, independentemente de onde o processamento ocorre.
Como usar a operação Magic no CyberChef?
Cole seus dados desconhecidos no painel de entrada, busque "Magic" na lista de operações e dê um duplo clique. Ela devolve decodificações candidatas ordenadas como links clicáveis que carregam a receita sugerida. Aumente o argumento Depth para encontrar codificações aninhadas e ligue o Intensive mode para forçar codificações de caracteres e chaves XOR.
Dá para rodar o CyberChef offline?
Sim. O link no canto superior esquerdo do aplicativo baixa a ferramenta inteira como um único arquivo HTML. Abra em qualquer navegador sem conexão de rede e todas as operações funcionam normalmente. Você também pode hospedá-lo por conta própria ou rodá-lo em um contêiner Docker.
O CyberChef é gratuito?
Sim. Ele é publicado pelo GCHQ sob a licença Apache 2.0, com o código-fonte no GitHub. Não há conta, plano pago nem limite de uso, e você pode fazer um fork ou rodar sua própria instância.
O CyberChef consegue quebrar criptografia?
Não, e esse é o mal-entendido mais comum sobre ele. O CyberChef descriptografa quando você fornece a chave e faz força bruta em esquemas triviais como XOR de um byte ou cifras de rotação. Ele não tem capacidade alguma contra AES, RSA ou qualquer algoritmo moderno com chave desconhecida.
Seus próximos passos
Saber usar o CyberChef se resume a um ciclo curto que você vai repetir por anos: reconhecer a codificação a olho nu quando der, rodar a Magic com Depth 3 quando não der, encadear as operações que descascam cada camada e usar um ponto de parada assim que a saída deixar de fazer sentido. Fork, Subsection e Register esperam por você quando as receitas simples acabarem.
Ler sobre decodificação não é a mesma coisa que encarar uma string que se recusa a decodificar. Experimente o lab Base64 Detective para codificação em camadas e depois o Caesar Shift Decoder para cifras clássicas. Os dois rodam no navegador no plano gratuito da HackerDNA, sem cartão de crédito e sem instalação, e nosso curso Hacking 101 constrói os fundamentos ao redor se você está partindo do zero.
Artigos relacionados:
- Ferramentas de CTF
- Categorias de CTF
- CTF para iniciantes
- Como usar o CyberChef
- Como usar o ExifTool
- Esteganografia
- Quebra de hashes