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:

  1. Narcelio
  2. Vinicius Rodrigues
  3. Pedro Nogueira
  4. Пуленепробиваемы Решалс
  5. Lucas Buozi
  6. Erick Eberhardt

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! :)