07
juil.
'16

De retour de la Nuit du Hack 2016

Publié le 07 juillet 2016

La quatorzieme édition de la Nuit du Hack vient tout juste de s'achever, et je dois avouer que c'était juste magique. Magique non pas parce que l'évènement était de retour au pays de Mickey, mais par son organisation, ses contenus et les rencontres que l'on y fait. Petit retour à chaud de cette Nuit du Hack 2016.

Les coulisses du vendredi

Je suis arrivé sur place vendredi soir et j'ai rejoint le staff Hackerzvoice qui s'activait pour tout finir de préparer (badges, tours de cou, etc ...). En tant que conférencier, j'ai passé plus de temps sur le polissage de planches comme on dit à l'ANSSI plutôt que sur les derniers préparatifs, ainsi que sur mes démos bancales. En effet, certaines d'entre elles devaient être testées en conditions réelles, et cela m'a pris quelques heures afin de tout régler (un grand merci à Jonathan pour le coup de main). A 2h30, j'étais couché et fin prêt pour ma présentation.

Enfin, je pensais l'être.

Le Jour J

Samedi matin, après avoir avalé un petit-déjeuner, je me rends au New York Hotel afin de m'imprégner de l'atmosphère du lieu et saluer les premiers arrivés (staff et participants).

C'est l'occasion de se ballader un peu, de découvrir les surprises de l'édition 2016, mais aussi de se poser à nouveau au calme pour repenser un peu les slides. Car après une nuit de réflexion, quelques modifications m'ont semblé utiles. J'apporte ainsi les dernières corrections et boucle la version finale de la présentation.

Je commence à suivre les conférences, bien qu'ayant loupé la keynote de Louis Pouzin. Le talk de Thomas Aubin et Paul Hernault sur la sécurité de Windows 10 et les aspects protection de la vie privée était sympa, avec en prime la démonstration d'une preuve de concept nommée CortaSpoof permettant de limiter la capacité de Microsoft à profiler les utilisateurs de la dernière version de son système d'exploitation. J'ai suivi celui d'Antonio Blanchi sur la participation de l'équipe Shellphish aux différents CTFs d'assez loin, mais les quelques bribes que j'ai pu comprendre m'ont semblé plutôt intéressantes: stratégies de CTF et outils dédiés étaient au programme. Puis ce fut au tour de mon collègue Renaud Lifchitz de démontrer la faiblesse des télécommandes radio employées sur une Set-Top-Box: très instructif et les possibilités offertes sont originales !

Je n'ai pas pu assister à la présentation sur Ethereum, par contre celle sur le piratage des interphones était intéressante: Sébastien Dudek a ainsi démontré que l'on pouvait prendre le contrôle de ceux-ci en abusant du GSM à l'aide de SDR et de fausse station GSM. Les démonstrations sous forme de vidéo étaient funs et démontraient bien les risques encourus. Toutefois, les bons vieux passes PTT ou le vieillissant système Vigik peuvent être des vecteurs d'intrusion tout aussi efficace, et nécessitant moins de moyens.

La conférence suivante consacrée au crochetage improvisé était tout bonnement impressionnante: c'est exactement ce que j'attendais de celle-ci. Ouverture de cadenas avec des shims fait maison (à la MacGyver), forçage de porte au ceintre, les moyens rudimentaires y étaient et ça fait plaisir de voir une approche pragmatique de l'ouverture de portes et serrures ! C'est la dernière conférence que j'ai pu voir, car je suis allé manger assez tôt afin de terminer les préparatifs matériels de ma présentation (prévue à 21h15). Celle-ci s'est déroulée sans encombre, et j'ai eu plusieurs retours positifs ce qui fait toujours plaisir.

Les workshops

J'ai enchainé rapidement mon talk avec un workshop intitulé "Pimp My Badge", présentant le badge électronique de l'année dernière (à défaut d'en avoir un cette année) et les moyens de le bidouiller. Ca a été l'occasion de mettre un peu à jour la bibliothèque standard et d'ajouter quelques exemples.

Comme chaque année, l'atelier de crochetage de serrures a rencontré un franc succès et nombreux étaient ceux voulant s'y essayer. Didier Stevens, l'auteur de OleDump notamment, animait un workshop sur l'analyse de documents malveillants à l'aide (certainement) de ses outils. Je n'ai pas pu le suivre malheureusement, mais il semblait très intéressant.

La NDH Kids

Contrairement aux années précédentes, je n'ai pas animé d'atelier durant la NDH Kids. Mais j'en ai eu de très bons échos: des collègues et amis ayant participé ou ayant des enfants qui y ont participé en sont revenus ravis. Les ateliers étaient diversifiés: initiation à la cryptographie, programmation de Lego Mindstorms, Initiation à l'électronique et à la soudure électronique, architecture d'un ordinateur, ... Avec en plus des bean bags et une borne d'arcade !

Un grand merci

J'ai passé un excellent moment, à la fois en tant que participant mais aussi en tant que conférencier. Il est bon de retrouver une organisation comme celle de cette édition, fluide et sans accrocs, malgré la paranoia sécuritaire que l'on a pu observer lors de l'arrivée (scans aux rayons X, détecteurs de métaux, fouille de sacs). Et il y avait du Club Mate ! Bref, on remet ça l'année prochaine, et il y aura du lourd, du très très lourd (© Michel & Michel)

24
avril
'15

NDH 2015 is coming !

Publié le 24 avril 2015

La treizième édition de la Nuit du Hack, évènement annuel visant à réunir les passionnés de bidouilles en tout genre, c'est du 20 au 21 juin 2015 à l'Académie Fratellini.

Tout frais et tout neuf

Changement de lieu pour cet évènement en cette nouvelle année 2015, c'est désormais à l'Académie Fratellini que la NDH a posé ses valises. Après plusieurs années passées dans le gentil monde de Mickey, on retourne aux racines et aux endroits atypiques, car les talks se dérouleront dans un cirque aménagé pour l'occasion. Ceux qui ont participé à l'édition 2007 sauront de quoi je parle (cela s'était déroulé dans une ancienne grange).

L'Académie Fratellini, ça ressemble juste à ça:

Outre le changement de lieu, il y a aussi du neuf côté programmation, avec dans le désordre:

Les premiers talks annoncés

Cette année encore, plusieurs conférenciers ont d'ores et déjà été annoncés, avec entre autres:

C'est assez varié, et j'attends en particulier les talks de Karsten Nohl et de Stéfan Le Berre, habitués des talks intéressants et techniques. La keynote est assurée par Guillaume Poupard, de l'Agence Nationale pour la Sécurité des Systèmes d'Information (ANSSI).

Des challenges pour tous

Les challenges habituels seront présents, à savoir:

Les deux premiers sont des concours à destination des afficionados de la sécurité informatique, dont seul le second est ouvert au public. Le wargame public est constitué de problèmes et casse-têtes informatiques qu'il faut résoudre le plus rapidement possible.

Le challenge de lockpicking demande du doigté, de bons outils et de l'expérience: il s'agit de crocheter différents types de serrures dans un temps record, le tout supervisé par une équipe de crocheteurs expérimentés.

Enfin, le petit nouveau de cette édition est le challenge de désamorçage, qui consiste à désamorcer un compte à rebours comme ceux que l'on voit dans de nombreux films, à l'aide d'outils relativement simples et cela dans un temps fixé par le mécanisme. Des notions d'électronique sont requises pour pouvoir s'y frotter, mais aussi de la logique et une bonne résistance au stress.

Workshops

Encore une fois, de nombreux ateliers pratiques (ou workshops) sont proposés:

Il y en a pour tous les goûts, attention toutefois certains ateliers nécessitent une préinscription et dans certains cas une participation: c'est le cas par exemple de celui permettant de réaliser une station de soudage ou encore le pendentif geek animé.

Badge électronique

A nouveau, un badge électronique collector conçu par l'Electrolab (encore un grand merci à vous les gars) est proposé sur lequel se trouve un challenge permettant de remporter une place à vie à la Nuit du Hack (Black Badge). Les ventes de ce badge électronique sont ouvertes jusqu'au 10 mai, et le nombre d'exemplaires est limité !

Comment venir ?

C'est relativement simple: il suffit d'aller sur la boutique de l'évènement et de sélectionner un ou plusieurs tickets d'entrée ainsi que des goodies au besoin, et de régler par CB/Paypal/Bitcoin. Vous recevrez par courriel un QR code qu'il faudra imprimer et présenter sur place, un peu comme les billets électroniques de la SNCF quoi.

06
mars
'15

Frida, la nouvelle amie des reversers et hackers

Publié le 06 mars 2015

Il y a peu de temps, j'ai découvert Frida, un outil permettant de faire de l'instrumentation minimaliste de binaire sous Windows, Linux, iOS et Android. Rien que cela. Moi qui suis habitué du reverse à l'ancienne et de l'attaque à coup d'injection de code via des DLLs, ça m'a de suite intéressé.

Tante Frida aime le JavaScript

Frida repose sur l'injection d'un module dynamique dans un processus actif, et crée un canal de communication avec celui-ci. L'outil propose ensuite d'interagir en Python, à l'aide de bindings relativement bien conçus.

Le point intéressant (mais toutefois limitant) est que l'on peut pratiquer le détournement de fonctions et l'appel de fonctions en scriptant cela en JavaScript. Car oui, le module injecté embarque un moteur JavaScript reconnu (v8, merci Google) qui sera utilisé dans le cadre du détournement ou de l'appel de fonctions. Tout ça à partir de Python.

A ce moment là, j'ai posé un bémol sur cet outil. Employer JavaScript me posait un problème: le langage est très éloigné de l'assembleur, et je n'imaginais pas vraiment ce que l'on pouvait en tirer. J'ai poursuivi ma découverte de l'outil, et ai revu mon jugement.

Hooking simple avec Frida

Le hooking de fonctions c'est galère. Il faut développer en C des fonctions d'interception, injecter un module s'occupant de mettre en place le détournement (en prenant en compte toutes les contraintes liées à cela), mais surtout trouver un moyen d'afficher des information. Par exemple à grand renfort d'appels à MessageBoxA sous Windows.

C'est là que Frida sauve la vie. L'outil propose très simplement de placer un hook sur une fonction, et de définir une fonction de rappel en JavaScript qui se verra passer les arguments et pourra les traiter. Cela se traduit par un simple code Python intégrant un peu de JavaScript:

import frida
import sys

process = frida.attach("hello")
script = process.session.create_script("""
Interceptor.attach(ptr("%s"), *
    onEnter: function(args) {
        send(args[0].toInt32());
    *
});
""" % int(sys.argv[1], 16))
def on_message(message, data):
    print(message)
script.on('message', on_message)
script.load()
sys.stdin.read()

Du coup, ce qui était laborieux et pénible à développer est désormais beaucoup plus simple. Certes, on ne peut pas tout faire avec, mais on gagne un temps fou pour des choses relativement simples.

ImpRec en mode Frida

Lorsque je suis tombé sur cet outil, j'avais besoin de faire des bidouilles spécifiques avec des binaires, dont notamment de la reconstruction d'imports dans un PE. Là encore, Frida aide amplement. Tout d'abord, Frida permet de lister les modules actifs, et les fonctions exportées: pratique dans le cadre de la reconstruction d'imports. Ensuite, Frida permet d'accéder à la mémoire de manière relativement simple, et directement en Python.

De là, on imagine facilement un code en Python permettant de dresser un dictionnaire des exports et des fonctions associées:

exports_address = {}
for module in target.enumerate_modules():
    for export in module.enumerate_exports():
        addr = module.relative_address + module.base_address
        export_address[addr] = (module.name, export.name)

Pour la recherche d'une IAT par exemple, on peut aisément se baser sur la méthode read_bytes de l'objet matérialisant le processus courant:

from struct import unpack
...
dword = unpack('<I', target.read_bytes(0x403000, 4))[0]

En bref

Frida s'installe en deux temps trois mouvements, même sous Windows. Frida peut permettre le développement rapide d'outils liés au reverse-engineering voire à l'analyse dynamique de binaires ou à leur compromission. Frida se base sur du Python ("cool !") et du JavaScript ("moins cool."). Mais Frida est bougrement efficace.

A ajouter dans la trousse à outil de tout hacker/reverser/bidouilleur de PE.

(crédits image: www.frida.re + gimp)



Les contenus disponibles sur ce blog sont publiés sous licence Creative Commons BY-NC-SA.
Vous pouvez réutiliser tout ou partie de ces contenus à condition de citer l'auteur et l'origine, vous ne pouvez en faire une utilisation commerciale, et enfin vous devez partager tout travail ou œuvre dérivée sous les mêmes conditions — c'est-à-dire avec la même licence d'utilisation Creative Commons.