Le développement de code d'exploitation a énormément évolué ces dernières années. Les protections comme l'ASLR ou le DEP permanent ont chamboulé la façon de penser l’écriture d'« exploit ». Écraser l'EIP et exécuter un payload sur la pile est désormais de l'histoire ancienne, place à l’écriture d'exploit fonctionnel sur Windows 7 !
1. Introduction
Ahh… bien loin le temps des systèmes d'exploitation et logiciels sans protection mémoire. Je me souviens encore d'un « crash » exploitable sous AOL 3.0 lors de l'ouverture d'un mail contenant une image au nom excessivement long (AAAAA[..]AAAA.jpg). À l’époque, la sécurité n'existait tout simplement pas et les strcpy() sur la pile sans aucune protection étaient légion. Les développeurs n’étaient pas sensibilisés et les remote code execution étaient « courants ».
Petit à petit, des protections ont fait leur apparition afin de rendre l'exploitation des bugs plus difficile, voire impossible. C'est ainsi que nous avons vu apparaître sur Windows les protections comme le GS Cookie, SafeSEH, DEP, ASLR, … (voir le dossier Windows de MISC n°55).
Nous allons nous concentrer sur les deux protections permettant de compliquer l'exploitation d'une faille de sécurité : le DEP (Data Execution Prevention) et l'ASLR (Adress Space Layout...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première