Introduzione all'exploiting

Linux x86 stack buffer overflows

Layout della memoria in uno stack overflow

Nell'ambito della sicurezza software, questa tesina introduce i concetti di assessment ed exploiting delle vulnerabilità.

Fatto ciò, approfondisce il problema degli stack buffer overflows, senza dare per scontata alcuna conoscenza dell'argomento e fornendo degli esempi minimali di codice C.

Argomenti discussi:

  • preparazione del payload (shellcode)
  • layout di un programma in memoria
  • chiamate a funzione e loro utilizzo dello stack
  • la tecnica di exploiting dello "stack smashing"
  • contromisure introdotte per mitigare il problema (ASLR, ProPolice, NX stack)

Infine, si analizza un esemplio completo di esecuzione remota di codice in un programma vulnerabile.


Codice sorgente, testo completo e slides sono disponibili per il download:

testo completo slides slides (per la stampa) archivio codice sorgente