Cos’è lo sfruttamento del software? Come si dovrebbe iniziare ad impararlo?

Software Exploitation è fondamentalmente trovare difetti come Buffer Overflows, Use After Free e così via, nei prodotti software e sfruttarli.

Per esempio, VLC Media Player, è un famoso lettore multimediale per la riproduzione di vari tipi di media.

Una vulnerabilità potrebbe esistere durante la riproduzione di file multimediali con dati non validi/ o nomi di file lunghi (nomi di file lunghi 1000 caratteri).
Se non viene fatta una corretta gestione delle eccezioni nel software, si verificherebbe un crash.

Quindi, una volta che si blocca, il vostro obiettivo dovrebbe essere quello di scoprire il valore dei registri sovrascritti, e modificare EIP in modo tale che punti al vostro shellcode.

Alcune risorse, vi suggerirei di dare un'occhiata al sito del Corelan Team's exploit writing tutorial, così come i tutorial su The Grey Corner. Ci sono anche ottimi documenti su Packet Storm e Exploits Database di Offensive Security. Dategli un'occhiata se volete.

Nel caso in cui non abbiate una precedente comprensione del linguaggio assembly e del debugging, dovete vedere il sito di Vivek'Welcome to SecurityTube.net iniziando dal Megaprimer nel seguente modo:

  1. Assembly Language Primer per Linux
  2. Assembly Language Primer per Windows
  3. Buffer Overflow MegaPrimer
  4. Format String Vulnerabilities
  5. Ricerca Exploit.

Una volta che avete completato con successo la pratica di tutti i video, siete ora pronti a saltare nell'Exploit Software con il già citato Corelan Team. Inoltre, potresti controllare The ShellCoder's Handbook - hanno un approccio abbastanza buono sull'intero Software Exploitation su vari obiettivi.

Buona fortuna!