Posizionamento del shellcode di overflow del buffer

1

Scusa se questo post è nella sezione sbagliata Sono abbastanza nuovo per il campo della sicurezza e sono nuovo per stackexchange se questo post è nella sezione sbagliata sarebbe bello se fosse spostato per me, scusa anche se domande simili è stato chiesto prima di ciò che hanno, ma non sono riuscito a trovare una risposta che chiarisca le cose per me. I digress.

Ho studiato buffer overflow negli ultimi giorni e ho trovato un tutorial un link !

se guardi alla fine l'attaccante mette alcuni caratteri casuali nel buffer fino a quando lui / lei colpisce l'indirizzo di ritorno il programma dà un errore di seg, così lui / lei successivamente inserisce caratteri casuali seguiti da un indirizzo (che è il indirizzo di memoria dell'istruzione JMP ESP all'interno della DLL allegata al programma) seguita dal payload o dal codice shell.

quindi la mia domanda è: perché e come funziona questo attacco dal momento che inserisce lo shellcode dopo l'indirizzo di ritorno e non nello spazio del buffer come gli usuali attacchi di overflow del buffer su macchine a 32 bit. In altri attacchi lo shellcode verrebbe inserito nello spazio del buffer senza ops che lo precedono, l'indirizzo di ritorno verrebbe sovrascritto per passare a un indirizzo all'interno del buffer e lo shellcode verrebbe infine eseguito.

In questo esempio come detto lo shellcode è dopo l'indirizzo di ritorno, come funzionerebbe? All'interno della DLL c'è un asm __ (JMP ESP) quindi l'indirizzo di ritorno andrà prima in quella posizione di memoria dove si trova quell'istruzione nella dll, quindi eseguirà l'istruzione JMP ESP, ma dove è il puntatore ESP che non L'ESP punta sull'indirizzo di ritorno in questa fase o addirittura sull'indice EBP?

scusa se non ho spiegato questa domanda molto bene, fare domande non è il mio strong seme.

    
posta irishmaniac 05.12.2018 - 00:41
fonte

0 risposte

Leggi altre domande sui tag