[Linux-Biella] Fw: Exploitation: Returning into libc

Emanuele Aina linux@ml.bilug.linux.it
Tue, 27 Jan 2004 17:58:43 +0100


Andrea Ferraris riportò:

> Io non  ho tempo di leggerlo, ma se a qualcuno puo`
> interessare ha voglia di farcene un riassunto?

[NB: è il mio primo approccio a tali techiche, quindi prendete le mie 
parole con molta cautela]

Riassumendo: le tecniche buffer overflow richiedono che lo stack sia 
eseguibile per contenere le istruzioni che l'attaccante vuole eseguire 
ma, recentemente, l'uso di stack non eseguibili (PaX, propolice, etc...) 
rende impossibile ciò.

In questo documento si propone che l'attaccante, invece che fornire del 
proprio codice, usi il buffer overflow per lanciare una funzione di 
libreria, passandole attraverso lo stack parametri opportuni.

La tecnica qui esposta consiste nel mettere gli argomenti della funzione 
nello stack (usando variabili d'ambiente e appositi programmini), 
sovrascrivere l'indirizzo che andrà messo nell'EIP al ritorno dalla 
funzione con l'indirizzo della funzione system() della libc e ottenere 
in questo modo una shell (con i privilegi del programma bucato).

Conclusione: gli stack non eseguibili non sono la panacea di tutti i 
buffer overflow.


-- 
Buongiorno.
Complimenti per l'ottima scelta.