Linux examples of Buffer overflow attacks Prof. Stefano BistarelliC Consiglio Nazionale delle Ricerche
Iit Istituto di Informatica e Telematica - Pisa Università “G. d’Annunzio”Dipartimento di Scienze, Pescara
Linux examples of Buffer overflow attacks Prof. Stefano Bistarelli
C Consiglio Nazionale delle Ricerche
Iit Istituto di Informatica e Telematica - Pisa Università “G. d’Annunzio”Dipartimento di Scienze, Pescara
Stack based overflow
buffer flag SFP* Indirizzo di ritorno (ret) a b memoriaalta memoriabassa EBP' nuovoEBP Vedi 0x270 Stack-Based Overflows
NOP sled bytecode Indirizzo di ritorno ripetuto A che indirizzo ?? Uno dei problemi da risolvere nello stack based overflow attack e’ capire dove far saltare il programma attaccato (scrivendo l’indirizzo nello stack (che verra’ poi copiato nel ret address).
Infatti i programmi vengono caricati dinamicamente in memoria e non so a che indirizzo dello stack sara’ memorizzato il mio buffer (con la shell code)
In gcc e’ possibile conoscere indirizzo inizio stack (valore esp) cosi:
unsigned long sp(void) // This is just a little function { __asm__("movl %esp, %eax");} // used to return the stack pointer
offset = 0; // Use an offset of 0 esp = sp(); // Put the current stack pointer into espret = esp - offset; // We want to overwrite the ret address
NOP sled bytecode Indirizzo di ritorno ripetuto Ambiente procedura che chiama programma da attaccare ESP Ambiente programma da attaccare ESP
Comments