UNIVERSITÀ DI PERUGIA
DIPARTIMENTO DI MATEMATICA E INFORMATICA
Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione
Linux examples of
Buffer overflow attacks
Prof. Stefano Bistarelli
Università “G. d’Annunzio”
Dipartimento di Scienze, Pescara
C
Consiglio Nazionale delle
Ricerche
Iit
Istituto di Informatica e Telematica - Pisa
Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione
Stack based overflow

Vedi 0x270 Stack-Based Overflows
memoria
bassa
buffer
flag
SFP*
Indirizzo di ritorno (ret)
EBP'
nuovo
EBP
a
b
memoria
alta
S. Bistarelli - Metodologie di Secure
Programming
2
Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione


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)
A che indirizzo ??
NOP sled
bytecode
Indirizzo di ritorno ripetuto
S. Bistarelli - Metodologie di Secure
Programming
3
Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione

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
esp
ret = esp - offset;
// We want to overwrite the ret
address
S. Bistarelli - Metodologie di Secure
Programming
4
Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazione
NOP sled
bytecode
Indirizzo di ritorno ripetuto
ESP ESP
Ambiente
procedura che
chiama
programma da
attaccare
Ambiente programma da attaccare
S. Bistarelli - Metodologie di Secure
Programming
5
Scarica

ex-linux-bof-attacks - Dipartimento di Matematica e Informatica