No último dia 20 de agosto publicamos o Desafio ESET #1, no qual os participantes deveriam baixar um arquivo, verificar com qual programa poderiam abri-lo e decodificar o conteúdo escondido até conseguir obter a flag. Antes de divulgarmos a resolução do desafio, apresentamos os seis participantes que conseguiram resolver o desafio a tempo e chegar a reposta correta:
Agradecemos a todos que participaram e dedicaram parte do seu tempo para resolver o nosso desafio. Aos que não conseguiram resolver o desafio até o final, segue a resolução do mesmo:
Resolução do desafio #1 da ESET
O primeiro passo é identificar com qual arquivo estamos lidando. Para isso, é possível utilizar o comando file do Linux, usar algo como o cygwin para ter uma interface similar ao Linux no Windows ou alguma solução on-line como o TRID.
Identificação do arquivo no site do TRID
A identificação descreve o arquivo como possivelmente sendo um arquivo de texto. Renomeando-o para .txt nos permite iniciar as investigações sobre como decodificá-lo.
A série de caracteres que aparentemente se repete periodicamente dá uma pista do que se trata, pois em seu final existem dois símbolos de igual (==). A codificação base 64 é a que normalmente usa esses dois símbolos em seu final para identificá-la.
Utilizamos o site Rapidtables para decodificar os caracteres de base64 para ASCII.
O resultado aparenta ser também um base64, sendo assim, basta copiar todo o texto exibido no campo “Text output” e inseri-lo para ser decodificado novamente.
Agora nosso resultado é uma série de números com a estrutura “0x??”.
Fazendo uma breve (brevíssima) pesquisa no Google, o segundo resultado nos dá indicativos de que se trata de um número hexadecimal. Olhando as opções do próprio Rapid Tables encontramos uma que consegue decodificar hexadecimal para caracteres ASCII.
O resultado foi razoavelmente menor e diferente dos resultados anteriores. Como todos os passos anteriores foram conversões de bases, que foram sempre menores que as anteriores, vamos seguir esse mesmo caminho para identificar a próxima decodificação.
As bases mais comuns para tecnologia são 2 (binária), 8 (octal), 10 (decimal), 16 (hexadecimal) e 64, vamos por eliminação, visto que o conjunto de caracteres pode ser tanto octal quando decimal.
A conversão decimal para ascii resultou em uma string aparentemente inválida.
Seguindo a mesma linha de utilização de sites para a conversão de bases, encontramos o site unit-conversion, e o resultado é bem mais promissor - nos traz uma saída binária.
Voltando para o o rapid tables convertemos a string binaria para ASCII e conseguimos obter nossa flag.
E assim é possível concluir o Desafio ESET #01.
Agradecemos a todos os participantes e convidamos a ficarem atentos, pois em breve lançaremos outros desafios com dificuldades diferentes para vocês.
Até o próximo #DesafioESET! :)