Desembrulhando o Blob de Config: Revertendo Camadas de XOR e Base64
O desafio
Recuperado do arquivo de config de um malware: o blob base64 abaixo. As notas do analista dizem que ele foi cifrado com XOR usando a chave 'acme' antes de ser codificado em base64. Monte a receita na bancada para reverter as duas camadas e envie o flag (HDNA{...}).
O que você vai aprender
- Reverter transformações empilhadas na ordem correta (inversa)
- Reconhecer o base64 como camada externa de transporte pelo conjunto de caracteres e padding
- Aplicar um XOR de chave repetida com uma chave conhecida para recuperar o texto puro
- Descartar transformações-isca verificando se o formato de entrada é compatível
Habilidades testadas
Pré-requisitos
- Familiaridade com base64
- Entender que XOR é sua própria inversa
Como funciona
Autores de malware raramente usam criptografia forte para esconder uma config - eles usam ofuscação barata e reversível, geralmente um XOR de chave repetida envolto em base64 para que os bytes sobrevivam ao armazenamento como texto. Para um analista, a tarefa é reconhecer as camadas e removê-las na ordem certa.
As camadas saem na ordem inversa em que foram aplicadas. Aqui o autor pegou a config em texto puro, aplicou XOR com uma chave curta e repetida, e depois codificou o resultado em base64. Então você decodifica o base64 primeiro (transformando o blob imprimível de volta nos bytes brutos cifrados com XOR), depois desfaz o XOR. O XOR é conveniente para os dois lados: como A XOR B XOR B = A, reaplicar a mesma chave com a mesma operação cancela tudo exatamente, sem necessidade de um passo separado de "descriptografar".
A bancada modela isso como uma receita: cada operação alimenta sua saída na próxima, e o resultado é atualizado em tempo real. Adicione From Base64, depois adicione XOR e digite a chave acme, e o flag em texto puro aparece no painel de saída. As outras operações na paleta (ROT, Vigenere, hex, atbash, reverse) são iscas - parte da habilidade é perceber que seus formatos de entrada não correspondem ao que você tem em mãos.
Erros comuns
- Remover as camadas na ordem errada. Tentar aplicar XOR diretamente no texto base64 imprimível. Base64 é a camada externa; decodifique-a primeiro.
- Tentar adivinhar a chave. A chave foi fornecida (acme), leia o briefing antes de tentar força bruta.
- Recorrer às iscas. ROT ou Vigenere parecem criptografia, mas não combinam com bytes brutos; verifique o formato dos dados antes de adicionar uma operação.
- Esquecer que o XOR é simétrico. Não existe um passo separado de descriptografar, o mesmo XOR com a mesma chave reverte tudo.
Como se proteger
Para defensores, a lição é que XOR mais base64 é ofuscação, não criptografia: barra um strings casual, mas não um analista. Ao caçar ameaças, normalize e decodifique blobs suspeitos automaticamente; ao construir sistemas, nunca confunda esse padrão com proteção real dos seus próprios segredos.
- Decodifique e faça varredura de XOR em blobs base64 suspeitos durante a triagem para revelar config oculta e dados de C2.
- Use criptografia autenticada de verdade com uma chave gerenciada quando os dados realmente precisarem ser confidenciais.
- Trate qualquer XOR de chave curta e repetida como recuperável, inclusive pelos seus adversários.