Vous êtes sur la page 1sur 37

HERV SCHAUER CONSULTANTS

Cabinet de Consultants en Scurit Informati ue de!uis "#$# S!cialis sur Uni%& 'indo(s& TC)*I) et Internet

GS Days 2010

Return Oriented Programming


<Jean-Baptiste.Aviat !s".#r$

Jean-Baptiste Aviat

%erv& S"!auer 'onsu(tants


Socit de conseil en scurit informatique depuis 1989 Prestations intellectuelles d'expertise en toute indpendance
Pas de distribution, ni intgration, ni infogrance, ni investisseurs, ni dlgation de personnel

Prestations conseil, tudes, audits, tests d'intrusion, formations !omaines d'expertise


Scurit "indo#s $ %nix et &inux $ embarqu Scurit des applications Scurit des rseaux
'(P$)P, tlp*onie, rseaux oprateurs, rseaux avionique, +o)P, etc,

-rganisation de la scurit

(ertifications
()SSP, )S- 2....-1 &ead /uditor, )S- 20..1 &ead /uditor, )S- 20..1 &ead )mplementor, )S- 20..1 2is3 4anager, )')&, Pro(SS), 5)/( 5(6/
-2Copyright Herv Schauer Consultants 2009 - Reproduction Interdite

Bu##er over(o) * (e prin"ipe


)l s8agit d8une erreur de programmation 9 'ouc*e les langages bas niveau,,, ,,,ou les +i+(iot!,-ue des langages *aut niveau 9
:ou leur coeur,,,, par exemple P;P *ttp $$###,suspe3t,org$<

%ne mmoire de capacit n octets est rserve -n crit = plus de n octets -n empi>te sur la mmoire voisine 9 !es donnes alentour sont crases,

7$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

.ne mena"e r&e((e


(ode 2ed :2..1<, ))S 1,. Slammer :2..7<, 4SS@& 2... '#ilig*t ;ac3 :2..8<, Aintendo "ii iP*one Bailbrea3 :2.1.<, Cailbrea3me,com Dt de nombreuses vulnrabilits dans la nature,,,

?$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

/0&"ution (&gitime

1$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

/0&"ution (&gitime

E$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

/0&"ution (&gitime

0$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

/0&"ution (&gitime

8$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

/0&"ution (&gitime

9$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

/0&"ution (&gitime

1.$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

/0&"ution (&gitime

11$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

Si le fic*ier contient plus de 1. octets,,,

1ue se passe-t-i( 2

12$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

-n crase l8adresse de retour 9 &e programme plante,,,


17$70
Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

De (3&"rasement 4 (3e0&"ution

)nsertion du code excutable :compil< dans le fic*ier &a sauvegarde d8D)P est cras par l8adresse de ce code
c8est F dire le dbut du tableau b

/u retour de la fonction,,,
D)P reGoit l8adresse de b

/t notre "ode est e0&"ut& 5


1?$70
Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

11$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

1E$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

10$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

'ontres-mesures au0 +u##ers over#(o)s


/Couter des H canaris I
+aleurs alatoires prsentes sur la pile +rifies avant le retour de la fonction, &e programme s8arrJte si elles ont t crases

2endre la pile non excutable 9


&e processeur refusera d8excuter du code situ dans une Kone mmoire correspondant F une pile

18$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

'ontournement
/ppeler des fonctions du binaire
S=stem:< "inDxec:< L

Possibilit d8excuter des commandes 9 Dn n8crivant que les arguments sur la pile Dt l8adresse de la fonction F appeler

M H return into libc I


19$70
Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

return into (i+"

2.$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

return into (i+"

21$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

return into (i+"

22$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

'ontres-mesures au ret-into-(i+"
(ompiler les librairies sans les fonctions dangereuses
(omplexe, pas touCours possible

)nclure des .x.. dans les adresses des fonctions dangereuses


Ae prot>ge pas dans tous les cas

4eilleure solution
2endre alatoire l8adresse des fonctions 9

Pour ce faire, les librairies sont c*arges avec une adresse alatoire &8attaquant ne connaNt plus l8adresse de la fonction
27$70
Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

.ti(it& de (3AS6R

2?$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

'ontournement * ROP
2eturn -riented Programming 9 :enfin< Principe
%tiliser des bouts de code en mmoire
Aomms H gadgets I

'ermins par des RET POP EIP

Acessite
au moins une librairie sans /S&2 suffisamment grande

21$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

ROP * /0emp(e de #on"tionnement

(opie du s*ellcode en Kone non excutable


Simplement l8overfo#

'ransformation d8une Kone AO en Kone O


/vec +irtual/lloc:<

(opie du s*ellcode dans cette Kone Dxcution du s*ellcode 9


VirtualAlloc(0, 0x200, MEM_COMMIT, PAGE_EXECUTE_READWRITE !"

2E$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

ROP * /0emp(e de #on"tionnement

20$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

ROP * /0emp(e de #on"tionnement

28$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

ROP * /0emp(e de #on"tionnement

29$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

ROP * /0emp(e de #on"tionnement

7.$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

ROP * "ara"t&risti-ues
Permet d8introduire des conditions ou des boucles
!ans le code inCect Preuve qu8il est inutile de minimiser les bibliot*>ques

/utorise l8excution avec


AO :-S H rcents I< Kones mmoires signes :iP*one<

Acessite
!e la place sur la pile %ne construction plus ou moins complexe

71$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

Re"!er"!e des gadgets


Pesoin de lister les instructions 2D' Q .x(7 Puis les instructions prcdentes Puis les ordonner afin de pouvoir les c*oisir

72$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

'om+ien de gadgets 2
Pour une instruction 2D'

entrypoint_0: or al, ch imul eax, [esi], 0 add al, ch cli push es add [eax], al call 0f775h dec eax add esp, 8 ret

; ; ; ; ; ; ; ; ; ;

@0 08e8 @2 6b0600 @5 00e8 @7 fa @8 06 @9 0000 @0bh e865f70000 x:0f775h @10h 48 @11h 83c408 @14h c3 x:unknown

77$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

'om+ien de gadgets 2
Pas 1 S<

7?$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

Re"!er"!e des gadgets


-util interne ;S(
2ub=
Pas sur 4etasm :*ttps $$git*ub,com$CC=g$metasm$<

4ulti-arc*itectures
(omme 4etasm D&6, PD, 4ac*-,,,

Profondeur de rec*erc*e arbitraire

/utres outils
2ope4D, ###,vnsecurit=,net$2.1.$.8$ropeme-rop-exploit-made-eas=
&inux uniquement

)mmunit= !ebugger plugins, *ttp $$sean*n,#ordpress,com$


non public

4etasploit R
71$70
Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

'!oi0 des gadgets


4t*ode T=namics
%ne t*>se 9 Dt un compilateur de gadgets

4t*ode H standard I
U la main 9 5rep et petits scripts

7E$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite

7er"i 5 Des -uestions 2

70$70

Copyright Herv Schauer Consultants 2000-2010 - Reproduction Interdite