Ir para conteúdo

HTB - Find the Secret Flag nunca retorna o esperado


Vira

Posts Recomendados

Bom dia Galera,

 

Sou bem novo aqui no Fórum, procurei as regras mas não encontrei. Então usarei apenas do bom senso! ?
 

Eu estou a mais ou menos dois meses cutucando um CTF do hack the box, minha experiência com reversing não é muito grande, mas estou procurando aprimora-la cada vez mais. Terminei semana passada o CERO que o Fernando ministrou no Papo Binário, consegui certos progressos mas ainda assim não consigo retornar a flag.

 

Segue o enunciado do CTF:

Find the secret flag and get the name of the creators of this challenge!

o arquivo do CTF esta em anexo, mas tambem pode ser baixado em https://www.hackthebox.eu/home/challenges/Reversing na opção Find The Secret Flag

Senha do arquivo ZIP: hackthebox

 

Identifiquei alguns pontos sobre o desafio:

As 4 primeiras strings ascii são parte do programa normal, e não são produtivas pra nada, pelo que eu vi, as duas ultimas dentro do data são stirngs encodadas:

image.thumb.png.d9ba7e81d79a1f95dbe42b61a58297b4.png

Mesmo sabendo das strings, não encontrei referencias dela em nenhuma parte do código.

A unica referencia a string encodada é na função sub.printf_400a5b, e o fluxo do código tabém não cai na área dela por padrão

image.thumb.png.531449d0c27fb58b3d714f8331d85b54.png

 

Eu fiz todo os tipos de direcionamentos que aprendi, procurei fazer com que as entradas do que as funções necessitam fossem sempre válidas, mas sempre que entro nestas funções recebo um seg fault, ou uma saida aleatória que não é útil pra  nada.

As funções que destaquei abaixo são as que não identifiquei como sendo chamadas de forma nennhuma na execução do binário.

image.png.43e7b2dadbb1f2487d8a86b50f45cc56.png

 

Alguém mais experiente poderia me auxiliar com este desafio? Honestamente estou a tanto tempo nele que nem estou mais preocupado com a pontuação em si, mas quero entender que pontos estou errando para melhorar minhas habilidades. tenho certeza que isso me ajudará a reverter strings ofuscadas em malwares!!

 

Obrigado desde já!
 

 

image.png

secret_flag.zip

Link para o comentário
Compartilhar em outros sites

Bem vindo, @Vira!

As regras da comunidade estão aqui (Home -> Regras, no menu). ?

Eu não baixei o arquivo mas na função tmp_secret() tem um comentário gerado pelo seu disassembler: CALL XEF from main (0x40098f), que significa que existe uma chamada para esta função neste endereço. Eu iria lá checar pra ver o que está pegando hehe

Grande abraço e boa sorte!

Link para o comentário
Compartilhar em outros sites

Vira, segue abaixo algumas dicas pra tentar ajudar:

Spoiler

• Pra chegar nessa função tmp_secret você pode fazer um patch no binário ou então criar o arquivo /tmp/secret com o conteúdo que ele espera (foi o que fiz depois de ler o programa no disassembler).

• Passando isso você vai receber uma string nada a ver como retorno no programa. Olhando novamente no disassembler você vai ver que o programa pega o primeiro parâmetro argv[1] e transforma num inteiro com a função atoi. Se você continuar lendo vai entender pra que esse número é usado e como descobrir seu valor correto.

Eu achei melhor não postar direto a solução pra poder tentar, mas se quiser posso te mandar.

Abs! 

Link para o comentário
Compartilhar em outros sites

@rcimatti Obrigado pelas dicas, eu vou tentar reler o código novamente no disassembler!

Lembro de ter relido algumas vezes pra identificar o que precisaria ter no secret pra ele seguir, mas não entendi o que era!

Eu vou dar uma olhada hoje nessa parte do atoi que você citou.

Apesar de conhecer um pouco de linux creio que eu esteja com dificuldade de debugar fora do gráfico!!
Obrigado pelo auxilio, chegando em casa vejo isso!!

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...