+ All Categories
Home > Documents > Bof 1 Slides

Bof 1 Slides

Date post: 13-Apr-2018
Category:
Upload: ioio92
View: 245 times
Download: 0 times
Share this document with a friend

of 71

Transcript
  • 7/26/2019 Bof 1 Slides

    1/71

    COLE

    SUPRIEURE

    DLECTRICIT

    Connaissance de la menace

    Attaques par debordement de buffer

    Frederic Tronel

    Supelec

    Campus de Rennes

    Avenue de la Boulaie

    Cesson-Sevigne

    13 octobre 2014

    Derni er com mi t cb48236 (HEAD, m aster) par Frederi c Tronel a Mon Oct 13 16 :02 :18 2014 +0200

    Modifications non commitees ?? ../2/bof-2-slides.synctex.gz(busy)

    Fichiers .tex biblio.tex bof-1-handout.tex bof-1-slides.tex cours1.tex entete.tex execve.tex exit.tex fork.tex mmap.tex mprotect.tex

    Figures .fig

    stack@50,52-55,57,64.fig stack@50-53,55-56,59-60,62.fig stack@50-53,55-56,59,65,67.fig stack@50-53,55-56,64-65.fig stack@50,53-

    55,57,64.fig stack@50-53,56,59-60,63,66-67.fig stack@50-53,56,59-60,63,66.fig stack@50-53,56,59-62,67.fig stack@50-53,56,59-62.fig

    stack@50,54-55,57,64.fig stack@50,54,57,64.fig stack@50-55,57,64.fig stack@50-56,59,67.fig stack@50,57,64.fig

    Autres figures asmx86.jpg exemple1.png kernel-development.jpg linkers loaders.jpg linux-kernel.jpg OS-tanenbaum.jpg wikipedia.png windows-internals.jpg

    Attaque par debordement de buffer 13 octobre 2014 1 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    2/71

    COLE

    SUPRIEURE

    DLECTRICIT

    Cours 1

    Attaque par debordement de buffer 13 octobre 2014 2 / 56

    http://goforward/http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    3/71

    COLE

    SUPRIEURE

    DLECTRICIT Bibliographie

    Systemes dexploitation, Andrew Tanenbaum, Pearson Education, 3eme Edition, 26 septembre

    2008, ISBN-10 : 2744072990

    Microsoft Windows Internals : Part 1 and 2. Mark E. Russinovich, David A. Soloman et Alex

    Ionescu Microsoft Press, SixiemeEdition, 17 avril 2012, ISBN-10 : 0735648739

    Understanding The Linux Kernel, Daniel P. Bovet et Marco Cesati, OReilly, Troisiemeedition, 15

    decembre 2005, ISBN-10 : 0596005652

    Attaque par debordement de buffer Bibliographie 13 octobre 2014 3 / 56

    http://goforward/http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    4/71

    COLE

    SUPRIEURE

    DLECTRICIT Bibliographie

    Linux Kernel Development, Robert Love, Addison Wesley, TroisiemeEdition, 22 juin 2010, ISBN-

    10 : 0672329468

    Assembleur x86, Irvine, CampusPress, 16 juin 2004, ISBN-10 : 2744015342

    Wikipedia, Lencyclopedie libre.

    Attaque par debordement de buffer Bibliographie 13 octobre 2014 4 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    5/71

    COLE

    SUPRIEURE

    DLECTRICIT Bibliographie

    Linkers and Loaders, John R. Levine, Morgan Kaufmann Publishers In Edition revisee, 25 oc-

    tobre 1999, ISBN-10 : 1558604960

    Attaque par debordement de buffer Bibliographie 13 octobre 2014 5 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    6/71

    COLE

    SUPRIEURE

    DLECTRICIT

    1 Conventions dappels

    2 Appels systeme

    3 Organisation de lespace virtuel dun processus

    4 Organisation de la pile des programmesecrits en C

    Attaque par debordement de buffer Plan du cours 13 octobre 2014 6 / 56

    http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    7/71

    COLE

    SUPRIEURE

    DLECTRICIT Differentes conventions dappels

    Convention Passage Ordre Nettoyage Registresa preserver

    dappels des arguments des arguments de la pile appele appelant

    C declaration call Pile Droite a Appelant %ebx %edi %eax %ecx

    gauche %esi %ebp %edx Standard call Pile Droite Appele %ebx %edi

    a gauche %esi %ebp

    Fast call Pile Droite Appele %ebx %edi

    et registres a gauche %esi %ebp

    Attaque par debordement de buffer Conventions dappels 13 octobre 2014 7 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    8/71

    COLE

    SUPRIEURE

    DLECTRICIT

    Sous Linux les conventions dappels suivantes sont utilisees :

    Standard call : pour les appels de fonctions generees par lescompilateurs C et C++.

    Fast call : pour les appels systemes.

    Attaque par debordement de buffer Conventions dappels 13 octobre 2014 8 / 56

    A l ` d l

    http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    9/71

    COLE

    SUPRIEURE

    DLECTRICIT

    Appels systemes : porte dentree vers le

    systeme dexploitation

    Un appel systeme permet de demander au systeme dexploitation la

    realisation dune tache precise. Par exemple :

    Creation de fichiers/repertoire.

    Lecture/ecriture de donnees dans un fichier.

    Creation/destruction dun processus.

    . . .

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 9 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    10/71

    COLE

    SUPRIEURE

    DLECTRICIT

    Creation de processus

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 10 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    11/71

    COLE

    SUPRIEURE

    DLECTRICIT Page de manuel de fork

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 11 / 56

    http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    12/71

    COLE

    http://find/
  • 7/26/2019 Bof 1 Slides

    13/71

    COLE

    SUPRIEURE

    DLECTRICIT Page de manuel de fork

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 13 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    14/71

    COLE

    http://find/
  • 7/26/2019 Bof 1 Slides

    15/71

    COLE

    SUPRIEURE

    DLECTRICIT Page de manuel de execve

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 15 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    16/71

    COLE

    http://find/
  • 7/26/2019 Bof 1 Slides

    17/71

    SUPRIEURE

    DLECTRICIT Page de manuel de execve

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 17 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    18/71

    http://find/
  • 7/26/2019 Bof 1 Slides

    19/71

    COLE

    P d l d

    http://find/
  • 7/26/2019 Bof 1 Slides

    20/71

    SUPRIEURE

    DLECTRICIT Page de manuel de execve

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 20 / 56

    COLE

    P d l d

    http://find/
  • 7/26/2019 Bof 1 Slides

    21/71

    SUPRIEURE

    DLECTRICIT Page de manuel de execve

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 21 / 56

    COLE

    SUPRIEURE

    http://find/
  • 7/26/2019 Bof 1 Slides

    22/71

    SUPRIEURE

    DLECTRICIT

    Destruction dun processus

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 22 / 56

    COLE

    SUPRIEURE Page de manuel de exit

    http://find/
  • 7/26/2019 Bof 1 Slides

    23/71

    SUPRIEURE

    DLECTRICIT Page de manuel de exit

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 23 / 56

    COLE

    SUPRIEURE Page de manuel de exit

    http://find/
  • 7/26/2019 Bof 1 Slides

    24/71

    SUPRIEURE

    DLECTRICIT Page de manuel de exit

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 24 / 56

    COLE

    SUPRIEURE

    http://find/
  • 7/26/2019 Bof 1 Slides

    25/71

    SU U

    DLECTRICIT

    Gestion de lespace dadressage

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 25 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    26/71

    http://find/
  • 7/26/2019 Bof 1 Slides

    27/71

    http://find/
  • 7/26/2019 Bof 1 Slides

    28/71

    COLE

    SUPRIEURE Page de manuel de mmap

    http://find/
  • 7/26/2019 Bof 1 Slides

    29/71

    DLECTRICIT Page de manuel de mmap

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 29 / 56

    http://find/
  • 7/26/2019 Bof 1 Slides

    30/71

    COLE

    SUPRIEURE

    DLECTRICIT Page de manuel de mmap

    http://find/
  • 7/26/2019 Bof 1 Slides

    31/71

    DLECTRICIT Page de manuel de mmap

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 31 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Page de manuel de mmap

    http://find/
  • 7/26/2019 Bof 1 Slides

    32/71

    D LECTRICIT g p

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 32 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Page de manuel de mmap

    http://find/
  • 7/26/2019 Bof 1 Slides

    33/71

    D LECTRICIT g p

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 33 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Page de manuel de mprotect

    http://goforward/http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    34/71

    D LECTRICIT g p

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 34 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Page de manuel de mprotect

    http://goforward/http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    35/71

    g p

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 35 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Page de manuel de mprotect

    http://find/
  • 7/26/2019 Bof 1 Slides

    36/71

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 36 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Page de manuel de mprotect

    http://goforward/http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    37/71

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 37 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Anatomie dun appel systeme

    http://find/
  • 7/26/2019 Bof 1 Slides

    38/71

    Les appels systeme sont declenches par des interruptions logicielles. Ceci est

    possible via linstructionint. Cette instruction prend un seul parametre dont la

    taille est limiteea un octet. A chaque valeur possible est associe un morceau

    de code (appelevecteur dinterruption). Cest ce code qui sera execute lors du

    declenchement de linterruption. Les interruptions logicielles sont executees

    dans le mode priviliegie du processeur. Cest ce qui permet aux programmes

    utilisateur de passer en mode noyau lors des appels systeme.

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 38 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Anatomie dun appel systeme

    http://find/
  • 7/26/2019 Bof 1 Slides

    39/71

    Sous Linux il y a une seule interruption qui gere lensemble des appels

    systemes (int 0x80). Les appels sont donc multiplexes. Le demultiplexage est

    assure par le vecteur dinterruption. Il redirige lappel vers la portion de code letraitant en se basant sur la valeur contenue dans le registre %eax. Les

    parametres de lappel systeme sont passes dans les registres restants

    (%ebx,%ecx,%edx,%esi,%edi).

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 39 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Liste des appels systeme du noyau Linux

    http://goforward/http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    40/71

    #define N R r e s t a r t s y s c a l l 0

    #define N R e x i t 1#define N R f o r k 2#define NR read 3#define N R w r i t e 4#define NR open 5#define N R cl ose 6#define N R w a i t p i d 7#define N R c r e at 8#define N R l i n k 9

    #define N R u n l i n k 10#define NR execve 11[ . . . ]

    #define N R s e l e c t 82#define NR sym l in k 83#define N R o l d l s t a t 84#define N R r e a d l i n k 85#define N R u s e l i b 86#define NR swapon 87#define NR r eboot 88#define N R r e a d d i r 89#define NR mmap 90#define NR munmap 91#define N R t r u n c a t e 92

    #define NR uname 122

    #define N R m o d i f y l d t 123#define NR ad j t i m ex 124#define NR mpr otect 125#define NR sigprocmask 126#define N R cr eate modul e 127#define NR i n i t m o d u l e 128#define N R del ete modul e 129#define N R g et k er ne l s ym s 130#define N R q u o t a c t l 131

    #define N R g et pgi d 132[ . . . ]

    #define N R f a l l o c a t e 324#define N R t im er fd s et ti me 325#define N R t im er fd g et ti me 326#define N R s i g n a l f d 4 327#define NR ev entf d2 328#define N R e p o l l c r e a t e 1 329#define NR dup3 330

    #define NR pipe2 331#define N R i no t i f y i n i t 1 332#define NR preadv 333#define N R p w r i t e v 334

    Attaque par debordement de buffer Appels systeme 13 octobre 2014 40 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Organisation

    http://find/
  • 7/26/2019 Bof 1 Slides

    41/71

    A la creation dun processus, le noyau met en place dans lespace

    dadressage du nouveau processus les zones suivantes :

    Code executable.

    Tas : zone de memoire virtuelle contigue servanta allouer

    dynamiquement des structures de donnees (via par exemple la fonction

    malloc).

    La pile.

    Attaque par debordement de buffer Espace virtuel 13 octobre 2014 41 / 56

    COLE

    SUPRIEURE

    DLECTRICIT

    Un exemple de programme compile

    statiquement

    http://goforward/http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    42/71

    statiquement

    Debut-fin Protections Offset Peripherique Inode Fichier

    08048000-080c6000 r-xp 00000000 fe :02 498905 /home/ftronel/Enseignement/Telecom/2009-2010/Cours/P

    080c6000-080c7000 rw-p 0007d000 fe :02 498905 /home/ftronel/Enseignement/Telecom/2009-2010/Cours/P080c7000-080eb000 rw-p 00000000 00 :00 0 [heap]

    fffe9000-ffffe000 rw-p 00000000 00 :00 0 [stack]

    Attaque par debordement de buffer Espace virtuel 13 octobre 2014 42 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Avantages

    http://goforward/http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    43/71

    Plus simple a produire pour la chane de compilation.

    Fonctionnement immediat apres installation (toutes les librairies

    necessairesa leur fonctionnement sont contenues dans lexecutable).

    Appels rapides des fonctions situees dans des librairies.

    Attaque par debordement de buffer Espace virtuel 13 octobre 2014 43 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Inconvenients

    http://find/
  • 7/26/2019 Bof 1 Slides

    44/71

    Fichiers binaires tres volumineux

    Consommation disque inutile. Consommation memoire inutile.

    Attaque par debordement de buffer Espace virtuel 13 octobre 2014 44 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Organisation

    http://find/
  • 7/26/2019 Bof 1 Slides

    45/71

    A la creation dun processus, le noyau met en place dans lespace

    dadressage du nouveau processus les zones suivantes :

    Code executable.

    Tas : zone de memoire virtuelle contigue servanta allouer

    dynamiquement des structures de donnees (via par exemple la fonction

    malloc)

    Les librairies.

    Le chargeur dynamique.

    La pile.

    Attaque par debordement de buffer Espace virtuel 13 octobre 2014 45 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Bibliotheques partagees

    http://find/
  • 7/26/2019 Bof 1 Slides

    46/71

    Cette structure de memoire est mise en place par le systeme dexploitation. Si

    le programme est lie dynamiquement a des librairies partagees, la main est

    passee au chargeur/editeur dynamique (ld.so). Celui-ci a pour but de charger

    les librairies dynamiques dans lespace dadressage virtuel du processus.

    Attaque par debordement de buffer Espace virtuel 13 octobre 2014 46 / 56

    COLESUPRIEURE

    DLECTRICITUn exemple de processus lie

    dynamiquement : processus shell

    http://find/
  • 7/26/2019 Bof 1 Slides

    47/71

    dynamiquement : processus shell

    Debut-fin Protections Offset Peripherique Inode Fichier

    08048000-08109000 r-xp 00000000 fe :08 666 /bin/bash

    08109000-0810e000 rw-p 000c1000 fe :08 666 /bin/bash

    0810e000-08113000 rw-p 00000000 00 :00 0

    09a46000-09a80000 rw-p 00000000 00 :00 0 [heap]f74af000-f74b6000 rs 00000000 fe :08 32264 /usr/lib/gconv/gconv-modules.cache

    f74b6000-f74c0000 r-xp 00000000 fe :08 12470 /lib/i686/cmov/libnss files-2.10.2.so

    f74c0000-f74c1000 rp 00009000 fe :08 12470 /lib/i686/cmov/libnss files-2.10.2.so

    f74c1000-f74c2000 rw-p 0000a000 fe :08 12470 /lib/i686/cmov/libnss files-2.10.2.so

    . . .

    f7632000-f7773000 r-xp 00000000 fe :08 12906 /lib/i686/cmov/libc-2.10.2.so

    f7773000-f7775000 rp 00141000 fe :08 12906 /lib/i686/cmov/libc-2.10.2.so

    f7775000-f7776000 rw-p 00143000 fe :08 12906 /lib/i686/cmov/libc-2.10.2.so

    . . .

    f77bf000-f77db000 r-xp 00000000 fe :08 16731 /lib/ld-2.10.2.so

    f77db000-f77dc000 rp 0001b000 fe :08 16731 /lib/ld-2.10.2.so

    f77dc000-f77dd000 rw-p 0001c000 fe :08 16731 /lib/ld-2.10.2.so

    ff955000-ff96a000 rw-p 00000000 00 :00 0 [stack]

    Attaque par debordement de buffer Espace virtuel 13 octobre 2014 47 / 56

    COLESUPRIEURE

    DLECTRICIT Avantages

    http://goforward/http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    48/71

    Fichiers binaires peu volumineux

    Consommation disque reduite.

    Consommation memoire reduite (partage du code des librairies entre

    processus).

    Attaque par debordement de buffer Espace virtuel 13 octobre 2014 48 / 56

    COLESUPRIEURE

    DLECTRICIT Inconvenients

    http://find/
  • 7/26/2019 Bof 1 Slides

    49/71

    Plus complexe a produire pour la chane de compilation.

    Fonctionnement necessitant dinstaller lensemble des librairies

    necessairesa son fonctionnement. Appels plus complexes et plus lents des fonctions situees dans des

    librairies.

    Attaque par debordement de buffer Espace virtuel 13 octobre 2014 49 / 56

    COLESUPRIEURE

    DLECTRICIT Etude dun premier exemple

    http://find/
  • 7/26/2019 Bof 1 Slides

    50/71

    i n t f u n c t i o n (i n t a , i n t b , i n t c){char b u f f e r 1 [ 5 ] ;char b u f f e r 2 [ 1 0 ] ;

    b u f f e r 2 [ 0 ] = a ;

    return( 0 ) ;}

    i n t main(){f u n c t i o n ( 1 , 2 , 3 ) ;

    return( 0 ) ;}

    Attaque par debordement de buffer Pile 13 octobre 2014 50 / 56

    COLESUPRIEURE

    DLECTRICIT Demonstration

    http://find/
  • 7/26/2019 Bof 1 Slides

    51/71

    Attaque par debordement de buffer Pile 13 octobre 2014 51 / 56

    COLESUPRIEURE

    DLECTRICIT Fonction principale

    http://find/http://exemple1.mp4/
  • 7/26/2019 Bof 1 Slides

    52/71

    . g l o b l main

    . type main , @functionmain:

    push ebpmov ebp , espsub esp , 12

    mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o nmov eax , 0leaver e t

    i n t main(){f u n c t i o n ( 1 , 2 , 3 ) ;

    return( 0 ) ;}

    Attaque par debordement de buffer Pile 13 octobre 2014 52 / 56

    COLESUPRIEURE

    DLECTRICIT Fonction principale

    http://goforward/http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    53/71

    . g l o b l main

    . type main , @functionmain:

    push ebpmov ebp , espsub esp , 12

    mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o nmov eax , 0leaver e t

    i n t main(){f u n c t i o n ( 1 , 2 , 3 ) ;

    return( 0 ) ;}

    Attaque par debordement de buffer Pile 13 octobre 2014 53 / 56

    COLESUPRIEURE

    DLECTRICIT Fonction secondaire

    http://find/
  • 7/26/2019 Bof 1 Slides

    54/71

    . g l o b l f u nc t i on

    . type f u n c t i o n , @ fu nc t io nf u n c t i o n :

    push ebpmov ebp , esp

    sub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0leaver e t

    i n t f u n c t i o n (i n t a , i n t b , i n t c){char b u f fe r 1 [ 5 ] ;char b u f f e r 2 [ 1 0 ] ;

    b u f f e r 2 [ 0 ] = a ;

    return( 0 ) ;}

    Attaque par debordement de buffer Pile 13 octobre 2014 54 / 56

    COLESUPRIEURE

    DLECTRICIT Fonction secondaire

    http://find/
  • 7/26/2019 Bof 1 Slides

    55/71

    . g l o b l f u nc t i on

    . type f u n c t i o n , @ fu nc t io nf u n c t i o n :

    push ebpmov ebp , esp

    sub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0leaver e t

    i n t f u n c t i o n (i n t a , i n t b , i n t c){char b u f fe r 1 [ 5 ] ;char b u f f e r 2 [ 1 0 ] ;

    b u f f e r 2 [ 0 ] = a ;

    return( 0 ) ;}

    Attaque par debordement de buffer Pile 13 octobre 2014 55 / 56

    COLESUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    56/71

    Adresses decroissantes

    Adressesdecrois

    santes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLESUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    57/71

    esp

    Adresses decroissantes

    Adressesdecrois

    santes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLESUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    58/71

    ebp

    esp

    Adresses decroissantes

    Adressesdecrois

    santes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLESUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    59/71

    ebp

    esp

    00 00 00 03

    Adresses decroissantes

    Adressesdecrois

    santes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLESUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    60/71

    ebp

    esp

    00 00 00 03

    00 00 00 02

    Adresses decroissantes

    Adressesdecrois

    santes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLESUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    61/71

    ebp

    esp

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecrois

    santes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLESUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    62/71

    esp@ retour

    ebp

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecrois

    santes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLESUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    63/71

    espsaved ebp

    @ retour

    ebp

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecrois

    santes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLESUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    64/71

    esp ,ebpsaved ebp

    @ retour

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecrois

    santes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLESUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    65/71

    esp

    ebpsaved ebp

    @ retour

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecroissantes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    66/71

    97

    esp

    ebpsaved ebp

    @ retour

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecroissantes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    67/71

    97

    esp

    ebpsaved ebp

    @ retour

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecroissantes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/http://goback/
  • 7/26/2019 Bof 1 Slides

    68/71

    97

    esp ,ebpsaved ebp

    @ retour

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecroissantes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Organisation de la pile

    http://find/
  • 7/26/2019 Bof 1 Slides

    69/71

    97

    esp

    saved ebp

    @ retour

    ebp

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecroissantes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Organisation de la pile

    d d i

    http://find/
  • 7/26/2019 Bof 1 Slides

    70/71

    97

    esp

    saved ebp

    @ retour

    ebp

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecroissantes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    COLE

    SUPRIEURE

    DLECTRICIT Organisation de la pile

    Ad d i

    http://find/
  • 7/26/2019 Bof 1 Slides

    71/71

    97

    saved ebp

    @ retour

    ebp

    esp

    00 00 00 03

    00 00 00 02

    00 00 00 01

    Adresses decroissantes

    Adressesdecroissantes

    main:

    push ebpmov ebp , espsub esp , 12mov DWORD PTR [ esp + 8 ] , 3mov DWORD PTR [ esp + 4 ] , 2mov DWORD PTR [ esp ] , 1c a l l f u n c t i o n

    mov eax , 0leaver e t

    f u n c t i o n :

    push ebpmov ebp , espsub esp , 16mov BYTE PTR [ ebp1 5] , 97mov eax , 0

    leaver e t

    Attaque par debordement de buffer Pile 13 octobre 2014 56 / 56

    http://find/http://goback/

Recommended