Vira Posted April 29, 2019 at 12:51 PM Share Posted April 29, 2019 at 12:51 PM 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: 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 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. 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á! secret_flag.zip Link to comment Share on other sites More sharing options...
Fernando Mercês Posted April 29, 2019 at 01:25 PM Share Posted April 29, 2019 at 01:25 PM 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 to comment Share on other sites More sharing options...
Vira Posted April 29, 2019 at 01:47 PM Author Share Posted April 29, 2019 at 01:47 PM Valeu @Fernando Mercês, Obrigado por aquele CERO cara, me ajudou muito a aumentar meus conhecimentos!! Essa função do tmp_secret é um beco sem saida,ele pede um arquivo com um conteudo X, mas ainda assim não retorna nada quando o arquivo existe!! apenas sai sem erro! Mas muito grato pela dica! Abraço! Link to comment Share on other sites More sharing options...
rcimatti Posted May 3, 2019 at 01:55 PM Share Posted May 3, 2019 at 01:55 PM 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 to comment Share on other sites More sharing options...
Fernando Mercês Posted May 3, 2019 at 03:19 PM Share Posted May 3, 2019 at 03:19 PM Acho perfeito o uso da tag spoiler neste caso , @rcimatti, porque dá a oportunidade da pessoa tentar e, caso precise de dicas, usar. ? Link to comment Share on other sites More sharing options...
Vira Posted May 7, 2019 at 05:31 PM Author Share Posted May 7, 2019 at 05:31 PM @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 to comment Share on other sites More sharing options...
Vira Posted May 22, 2019 at 05:58 PM Author Share Posted May 22, 2019 at 05:58 PM Pra quem acompanhou a saga, graças a ajuda do @rcimatti consegui entender os pontos que faltavam pra retornar a informação que eu precisava!! Caso tenham duvida neste desafio, contem comigo pra ajudar!!! Abraço!! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.