Ultimamente sto imparando la sicurezza del computer e ho riscontrato un paio di problemi, e sto avendo qualche problema con questo in particolare.Utilizzo dell'overflow del buffer per l'esecuzione del codice shell
Mi viene assegnata una funzione con un buffer fisso che è necessario eseguire l'overflow per eseguire shellcode nel file shellcode. La funzione è molto semplice:
void vuln(char *str) {
char buf[64];
strcpy(buf, str);
//function provided to display stack on command prompt
dump_stack((void **) buf, 21, (void **) &str);
}
La mia ipotesi iniziale era quello di modificare l'indirizzo di ritorno, il EIP, della funzione al fine di individuare ed eseguire ciò che si trova nel file shellcode, ma mi resi conto che non ho indirizzo al file che posso rappresentare in un valore esadecimale. Sto abbastanza sicuro ho bisogno di manipolare l'indirizzo di ritorno, quindi attualmente quello che sto chiamando è:
//the string is passed as a command line arg
./buffer_overflow_shellcode $(python -c "print 'A'*72 + '\x41\xd6\xff\xff' ")
la mia uscita è:
Stack dump:
0xffffd600: 0xffffd7fd (first argument)
0xffffd5fc: 0x08048653 (saved eip)
0xffffd5f8: 0xffffd641 (saved ebp)
0xffffd5f4: 0x41414141
0xffffd5f0: 0x41414141
0xffffd5ec: 0x41414141
0xffffd5e8: 0x41414141
0xffffd5e4: 0x41414141
0xffffd5e0: 0x41414141
0xffffd5dc: 0x41414141
0xffffd5d8: 0x41414141
0xffffd5d4: 0x41414141
0xffffd5d0: 0x41414141
0xffffd5cc: 0x41414141
0xffffd5c8: 0x41414141
0xffffd5c4: 0x41414141
0xffffd5c0: 0x41414141
0xffffd5bc: 0x41414141
0xffffd5b8: 0x41414141
0xffffd5b4: 0x41414141
0xffffd5b0: 0x41414141 (beginning of buffer)
Segmentation fault
lo script Python stampa semplicemente 72 lettera A di a overflow del buffer al punto del edp e eip, dopo aver sostituito l'indirizzo di edp con l'indirizzo aggiuntivo e arrivare all'indirizzo di ritorno, pronto a manipolarlo. Qualsiasi aiuto è molto apprezzato, grazie!
Hai compilato il codice con le bandiere '-really-no-protection' e' -make-me-vulnerable-to-everything'? Questo è al giorno d'oggi necessario per questo exploit. –
@Daniel Fischer sì, ho compilato correttamente i precedenti programmi di sicurezza del computer e sono stato in grado di sovrasfruttarli senza problemi. So che il mio programma funzionerà come previsto –
Ok, controllando l'ovvio sospetto. –