vendredi 21 juin 2013

Corelan live: j'y étais!

J'ai participé au training "corelan Live" effectué par le fondateur du blog Corelan et de l’entité Corelan CVG : Peter « corelanc0d3r » Van Eeckhoutte. Ce training proposé par HackInParis durait trois jours, du 17 au 19 juin 2013, et nous étions une vingtaine d'auditeurs.

Au cours de ces trois jours, Peter nous a montré la manière d’écrire des exploits de manière fiable et avec une précision digne d’un horloger suisse: Pas de NOP sled (des chatons meurent lorsqu'un NOP est utilisé), et un placement parfait des shellcodes à l'octet près! Ont été abordés les sujets suivants:
  • L’architecture x86
  • L’exploitation de stack buffer overflow
  • Hotpatching des exploit
  • L’utilisation des SEH pour l’exécution de code
  • L’utilisation de ROP
  • L’écriture de modules metasploit
  • Le bypass d’ASLR et de DEP
  • Le heap spraying et le Use After Free
avec à chaque fois de nombreuses mises en pratique sur des cas concrets et réels: Vrai serveur web, outils SCADA (en version démo), pwnage de wireshark, IE7/8/9/10 fournis en version -1 ou -2 (afin qu'ils soient vulnérables) etc.., avec utilisations de plusieurs CVE récents.

Au final, c’est une formation dense au timing serré, et il n’y a pas eu de temps mort ! Lorsque l’on n’est pas en train d’écrire et fiabiliser un exploit pour en faire un module metasploit, Peter nous détaille les méandres de la mémoire ou de Windows. La formation est tellement compressée que Peter nous demanda de venir à 9h00 plutôt que les 9h30 annoncés, et de finir à 19h au lieu de 17h30. Il nous est même arrivé de sortir à 20h et de continuer l’exercice le soir dans la chambre d’hôtel (où j'ai finalement trouvé la bonne ROP chain qui appelle le VirtualAlloc qui permet de contourner le DEP qui permet d'exécuter l'exploit: Yay \o/ ).
J'ai mangé de l'assembleur 10 heures par jour, du debugger, et exploré la mémoire de nombreux programmes, et ça m'a beaucoup plu. Comme indiqué dans la présentation, c'est une formation qu'on ne peut recommander qu’aux personnes ayant un minimum de bagage dans les buffers overflow, la lecture d’assembleur et l’utilisation de debugger, sans quoi les participants risqueraient à s’y noyer avant la fin de la première matinée.
L’un des gros avantages du training de Peter, c’est la quantité de techniques, tricks, et petites astuces qu’il fournit pour l’écriture d’exploits ou le bypass de certaines protections. Ses années d’expérience dans le domaine ont fait de lui une mine d’or de conseils utiles. Sans compter l’apprentissage des différents tools qu’il utilise comme « mona » (qu’il a lui-même développé). Enfin, Peter est une personne pédagogue qui sait prendre le temps de répondre précisément à toutes les questions, et ça, ça aide beaucoup.

Au bout de ces trois jours de trainings, mélangeant théorie et beaucoup de pratique, on en ressort tous un peu fatigué (je pense), mais finalement très heureux d’y avoir participé. Cette formation m'a aussi fait toucher du doigt la différence entre les chercheurs d'exploit, qui savent trouver des bugs, et les autres personnes qui arrivent à les fiabiliser. Savoir mettre 0x41414141 dans EIP n'est pas forcément simple, mais parvenir à transformer cette info en exploit fiable sur toutes les familles de windows, indépendemment des versions et des défenses (DEP/ASLR, etc..) est un second travail à part entière. 

Aucun commentaire:

Enregistrer un commentaire