Failles applicatives et exploits
Pré-requis et techniques de base
Nous voici dans la section qui reste ma préférée : l'exploitation système et applicative. De mon point de vue,
elle reste très importante, que ce soit dans l'optique exploit, pentest ou audit. Elle reste cependant
plus difficile à suivre et nécessite plus de prérequis comme la connaissance du langage C et des commandes basiques du shell.
Ceci dit, j'ai essayé de commenter les sources de façon adéquate
et pour qu'une majorité de personnes puisse comprendre le maximum.
Articles
Les premiers articles sont dédiés à la compréhension de mécanismes de base sous Unix et de la gestion de la
mémoire dans les architectures Intel, puis l'apprentissage de notre premier exploit.
Je me suis notamment appuyé sur la section introductive du livre "Hacking: The Art of Exploitation" de Jon Ericksson.
- Tout d'abord, une petite introduction aux exploits applicatifs
- Une vue globale de la mémoire, son organisation et son utilisation
- Les buffer overflows : comment un bug peut permettre de détourner une application
- Les strings formatées, l'interprétation des chaînes de caractères par un programme
Challenges
Pour mettre en pratique ces connaissances, vous pouvez notamment vous tester sur différents wargames et épreuves :
De manière annexe, je vous invite à rejoindre la section dédiée au shellcode, destinée à
l'apprentissage des bases de l'écriture de shellcode, ce qui me semble aussi très important, bien que pas forcément facile.
Exploitations avancées et spécifiques
Ensuite, nous allons entrevoir certains mécanismes d'exploitation plus avancés. En effet, les OS et compilateurs ont intégré des
mécanismes de défense : PaX, DEP, stack cookies. L'arrivée des architectures 64-bits a également changé la donne. L'exploitation kernel
est un exercice à part que j'essaie également d'aborder ici.
Articles
Challenges
Toujours dans l'optique de s'exercer, je vous invite à essayer :
- la suite des épreuves du wargame w3challs (dont deux épreuves kernel)
- deux épreuves du Plaid CTF 2012
- les remote et hardened binary du wargame root-me
- l'ancien wargame BlackSun de OverTheWire
- l'épreuve kernel servr du plaid CTF 2013
Si je vous propose ces épreuves, c'est surtout car je les ai testées. Pour certaines, j'ai écrit des write-ups.
Pour les autres, vous pouvez me contacter ou contacter les communautées concernées qui sont toujours présentes pour aider.