← Tutti i video

Introduzione alla Binary Exploitation (ft. "Smashing The Stack For Fun And Profit")

Guarda su YouTube → 3:10:03 22 febbraio 2022
Cybersecurity

Descrizione

In questo video introduco la prima tematica di binary exploitation affrontata sul canale. In particolare mostro i buffer overflow sulle architetture intel x86 a 32 bit andando a leggere l'articolo storico "smashing the stack for fun and profit", scritto da Aleph One. ------------------------ RIFERIMENTI ESTERNI: http://phrack.org/issues/49/14.html ------------------------ TIMESTAMPS: 00:00:00 introduzione alla binary exploitation 00:03:10 phrack magazine vol. 49 00:05:50 introduzione all'articolo "smashing the stack for fun and profit" 00:15:10 definizioni iniziali: buffer, variabili dinamiche e overflow 00:21:45 come è organizzata la memoria dei processi 00:24:12 esempio #1: perché ci sono i segmentation fault? 00:28:46 introduzione alla stack (pila) e proprietà LIFO 00:32:10 perché utilizziamo la stack? 00:39:20 esempio #2: come si implementa la chiamata a funzione? 00:43:00 linguaggio assembly 00:48:35 registri della CPU e il trade-off fondamentale della memoria 00:51:00 struttura della stack, stack pointer (SP) e istruzioni push/pop 00:57:00 instruction pointer (IP) 01:05:30 base pointer (BP) 01:14:15 function prolog e call 01:23:00 esempio #3: esecuzione con debugger gdb 01:37:00 function epilogue: ret e leave 01:45:05 buffer overflow #1: segmentation fault 01:50:30 buffer overflow #2: cambiare flusso di esecuzione sovrascrivendo indirizzo sullo stack 02:07:30 introduzione allo shellcode 02:14:50 esempio #3: shellcode in C 02:21:50 rimuovere i bytes nulli (\x00) dallo shellcode 02:24:12 come scrivere un exploit completo 02:28:10 ASLR e la randomizzazione della memoria 02:32:38 esempio #4: scrittura programma vulnerabile 02:35:30 exploit #1: NOP sled + shellcode + RET addr 02:52:08 gestire il caso di buffer piccoli tramite le variabili di ambiente 02:56:18 exploit #2: env variable + NOP sled + shellcode 03:06:30 come trovare i buffer overflows ------------------------------------ PER CONTATTI: - Email: leonardotamiano95@gmail.com - Website: https://leonardotamiano.xyz

Commenti 35

I commenti vengono da YouTube e sono aggiornati periodicamente.

  1. @ROBZ-t1i 3 settembre 2022 4
    grandissimo ti ho appena scoperto ma sei tipo l'unico italiano a portare questo tipo di contenuti continua cosi!
  2. @0xbro 22 febbraio 2022 5
    Preparo i popcorn e ci sono!
  3. @seba675 23 febbraio 2022 1
    non l’ho ancora finito ma mi hai aperto la mente GG
  4. @mirkodistefano117 26 giugno 2022
    Video fantastico. A trovarne altri così in italiano. Hai tutto il mio supporto.
  5. @Fex25 6 marzo 2022 1
    Ottimo video, sempre chiaro. Complimenti!
    1 risposta
    1. @Fex25 13 marzo 2022
      Ciao Leonardo, potresti fare anche un video sulla binary exploitation dei sistemi a 64 bit?
  6. @davidebonati342 24 febbraio 2022 1
    Mi interessava molto questo argomento grazie, mi organizzo e me lo studio tutto il video :)
  7. @the.ciabat 4 marzo 2025
    quel doc è una pietra miliare.. ahhh come si ownava di brutto a quei tempi :D
    1 risposta
    1. @esadecimale Autore 6 marzo 2025
      Provo nostalgia per quei tempi, anche se ero piccolo all'epoca
  8. @giuliotac1662 4 marzo 2022 1
    Gran bel video fai sempre contenuti molto interessanti. Magari potresti fare anche dei video sulla reverse engineering
    1 risposta
    1. @esadecimale Autore 4 marzo 2022
      Assolutamente, sarà una tematica che vorrò affrontare sul canale. È solo una questione di tempo: creare contenuti del genere è molto dispendioso in termine di energie, e soprattutto richiede molta conoscenza. Considerando il fatto che molte delle cose che voglio trattare ancora le devo studiare bene. Ripeto: solo una questione di tempo :p
  9. @mirkodistefano4964 19 novembre 2022 1
    Ciao Leonardo, innanzitutto BRAVO, i tuoi video sono una sorta di Sacro Graal per chiunque voglia imparare la sicurezza informatica. Vado al dunque: Le macchine su HTB, su cui ci esercitiamo, sono delle macchine pensate ad-hoc per poter essere attaccate, ovviamente con vari gradi di difficoltà. Mi riferisco a macchine con: S.O. non aggiornato all’ultima versione, configurazioni malfatte, password deboli, ecc. Mi viene da pensare che, forse, la ‘sicurezza informatica’ su cui ci esercitiamo si basa su delle IPOTESI NON REALISTICHE. Ovvero, secondo me un utente che sia in grado di completare tutte le macchine in HTB, non sarà poi comunque in grado di intrufolarsi (non parliamo di etica al momento) in un computer di un utente medio che non ospita siti web e che, anche non capendo niente di informatica, abbia l’accortezza di aggiornare sempre il tutto, non usare password deboli, non cliccare su link malevoli. Secondo me, la vera sicurezza informatica alla fine si riduce alla binary exploitation. Tu cosa ne pensi a riguardo? Un saluto.
    1 risposta
    1. @esadecimale Autore 19 novembre 2022 2
      Ho letto ciò che hai scritto, e secondo me in questo contesto il termine “vero” è un po’ ambiguo. Nel senso, capisco ciò che stai dicendo: le macchine di HackTheBox sono fatte per essere vulnerabili, e quindi, sorpresa delle sorprese: sono effettivamente vulnerabili! La differenza che vedi tra il mondo di HackTheBox e il mondo al di fuori di HackTheBox è una differenza assolutamente reale e tangibile. Secondo me però questa differenza non rende una cosa più vera e l’altra meno vera. Sono vere entrambe, ma in modo diverso. Ti faccio un esempio per spiegarmi meglio. Prendi qualsiasi sport, tipo il nuoto, o il calcio, o qualsiasi altro sport. In questi sport ci sono sia gli allenamenti effettuati in contesti controllati, e sia le competizioni. Secondo me HTB e cose simili vanno visti sotto questa ottica: permettono di allenare quelle tecniche che poi si ritrovano in altri contesti. Vedila come una palestra in cui hai il vantaggio di trovarti in un ambiente controllato. Il mondo al di fuori ovviamente è molto più vasto, e c’è tantissimo che non può essere imparato da cose come HTB. Ma ripeto, ciò non rende l’esperienza ottenuta da tali piattaforme meno vere, almeno secondo me. L’importante infatti non è fare le macchine di HTB e basta. L’importante è capire i meccanismi tecnologici che stanno dietro alle macchine. Perché quei meccanismi non hanno a che fare con HTB nello specifico ma più in generale con la tecnologia. Comunque ottima domanda, ti ringrazio per averla fatta (e per i complimenti), ci si potrebbe fare un video di risposta così ho più spazio per spiegare meglio cosa intendo.
  10. @angelonunziolombardi 3 marzo 2022 1
    Come fai a leggere un documento da terminale? che comando/programma usi?
    1 risposta
    1. @esadecimale Autore 4 marzo 2022
      Allora, tecnicamente non è che leggo un documento da terminale, in quanto utilizzo Emacs per fare tutto, e Emacs nasce come text editor. L’idea quindi è che tramite Emacs posso sia leggere dei file, che eseguire dei comandi come un terminale. Se guardi sul canale c’è una playlist con scritto emacs, altrimenti puoi andare qui e scrivere “emacs”: https://academy.leonardotamiano.xyz/
  11. @angelonunziolombardi 10 giugno 2022 1
    Ho fatto delle ricerche in autonomia, ma il segmentation fault e il core dump error sono la stessa cosa ?
    1 risposta
    1. @esadecimale Autore 10 giugno 2022 3
      Se non sbaglio sì. Quando succede un segmentation fault, il kernel prende uno snapshot (fotografia) dello stato della memoria e lo scrive su un file particolare. Questo snapshot è chiamato proprio “core dump”, e viene utilizzato per debuggare il programma e capire dove è avvenuto il seg fault e altre cose del genere. Comunque grande, fai bene a fare ricerche per conto tuo! Continua così :D
  12. @franecsconicoletti1194 10 gennaio 2023 1
    Ciao, che distribuzione linux stai usando e che setup del terminale usi ? Vedo che non usi una semplice gui. Bel video !
    3 risposte
    1. @esadecimale Autore 11 gennaio 2023
      Allora nel video utilizzavo kali linux, ma non è così importante, anzi praticamente per niente. Per quanto riguarda il setup, utilizzo Emacs. È un software molto figo, ci ho fatto una playlist di video sul canale a nome “Emacs”
    2. @franecsconicoletti1194 11 gennaio 2023
      Per caso usi pure Sway ?
    3. @esadecimale Autore 11 gennaio 2023 1
      @franecsconicoletti1194 no utilizzo i3 con x11
  13. @gregandark8571 23 febbraio 2022
    Ma youtube cancella i miei commenti ??? Avevo scritto una domanda qui sotto è già non c'è niente.
    5 risposte
    1. @gregandark8571 23 febbraio 2022
    2. @esadecimale Autore 23 febbraio 2022
      Mi dispiace ma hai proprio ragione: anche se ho messo “allow all comments” a quanto pare certi commenti vengono eliminati da soli 🤷🏻‍♂️
    3. @gregandark8571 23 febbraio 2022
      @esadecimale Questo è molto strano,anche perchè avevo scritto il seguente : Ma come fai a far girare il terminale dentro Emacs GUI?
    4. @esadecimale Autore 23 febbraio 2022
      @gregandark8571 se premi M-x e poi "shell" ti dovrebbe far partire una shell se stai su linux. Su windows invece è un casino fare funzionare la shell, anche se un'altra shell che funziona sempre è "eshell", e per farla partire puoi sempre fare M-x e poi "eshell" (dove M sta per alt). Quella che utilizzo io invece è vterm: https://github.com/akermu/emacs-libvterm
    5. @gregandark8571 23 febbraio 2022
      @esadecimale Io uso linux e Haiku os sul laptop secondario. Ultimamente sto prendendo in seria considerazione di passare definitivamente su Haiku.
  14. @angelonunziolombardi 15 giugno 2022
    Piú avanti nel video mostrerai come creare la shell mediante la binary exploitation giusto?
    2 risposte
    1. @esadecimale Autore 15 giugno 2022 1
      Non ho ben capito la domanda. Dici come scrivere lo shellcode per spawnare una shell? Nel video mostro un esempio con uno shellcode già scritto, in futuro farò anche vedere come scriverlo.
    2. @angelonunziolombardi 16 giugno 2022
      @esadecimale sisi intendevo proprio quello
  15. @angelonunziolombardi 21 giugno 2022 1
    Ho finito oggi di vedere il video, ho solo una piccola da farti ossia che alcune parti del video erano un pelo ambiguo (nello specifico alcune parti di gdb), ma fa nulla, sei stato bravissimo a fare un video di 3 ore su binary exploitation, mi hai trasmesso tanto, ho trascritto 79 pagine di word, se hai voglia posso mandartelo via email e magari gli dai un occhiata al mio operato hahahahaha
    4 risposte
    1. @esadecimale Autore 21 giugno 2022 1
      Si hai assolutamente ragione sulla parte di gdb. Ti ricordi per caso i particolari timestamps? Così mi segno le cose e nei prossimi video di binary le spiego meglio. Anche perché i prossimi saranno più limitati e si affronteranno specifiche challenges di video in video. Per il word, se vuoi me lo puoi inviare via email, purtroppo adesso sono incasinato con il lavoro e altre cose (tra cui youtube xD), quindi ci metterò un po' di tempo a leggerlo. Ah, e grande! Complimenti per aver visto e studiato tutto il video :D
    2. @angelonunziolombardi 21 giugno 2022 1
      @esadecimale grazie a te per essere un ottimo prof hahahahhaha, se mi giri l'email te lo mando il word (pdf )
    3. @esadecimale Autore 21 giugno 2022
      @angelonunziolombardi la trovi in descrizione l'email :p
    4. @angelonunziolombardi 21 giugno 2022 1
      no comunque solo alcune parti in generale di gdb e altre dove magari hai scritto del codice un pó di fretta, peró dopo molto ci sta che la stanchezza si faccia sentire e non si é ottimali. Comunque il grosso é stato spiegato bene