dimanche 13 mars 2011

[Tool] ROPit v0.1 alpha 1

[UPDATE: 14/03/2011]:
- Mise en place d'un GIT
- Ajout d'explications pour l'installation

Salut les gens!

Mon dernier article commence déjà à remonter :).

Introduction

Aujourd'hui j'ai le plaisir de vous présenter un tool de ma conception.
Il est encore extremement buggué, pas pour rien que je considère ça comme une alpha ^^.
C'est un tool de ropping tout ce qu'il y a de plus classique.

So let's ROPit!

Ce tool va juste construire une liste de gadgets à partir d'un exécutable PE ou d'un fichier raw (assemblé directement avec nasm par exemple).

Il génère un peu plus de gadgets que pvefindaddr, à voir si c'est utile.

La génération des gadgets se déroule en plusieurs étapes:
- recherches de toutes les instructions "utiles" avec un algorithme itératif de backtracking de 32 instructions en arrière maximum
- construction des gadgets avec les instructions trouvées
Les gadgets sont limités à 8 instructions volontairement.

J'ai codé ce tool pour la simple raison que je trouvais les tools disponibles assez lents vu que codés en python (ROPme, pvefindaddr et DEPlib). Et puis c'est assez marrant à coder :).

Par ailleurs, si quelqu'un a une bibliothèque de SAT/SMT solver, ça pourrait être utile ;).

Installation

Pour compiler et installer le tool vous aurez besoin des dépendances suivantes:
sudo apt-get install libdisasm-dev libpcre3-dev libtool

A partir du repository GIT:
La première fois:
git clone https://github.com/m101/ropit
cd ropit
git submodule init
git submodule update --recursive
make

Les fois suivantes:
cd ropit
git pull
git submodule update --recursive
make

Bugs connus

FIXED (GIT): Le tool ne génère aucuns gadgets pour un exécutable trop gros. En effet, la gestion mémoire n'est pas encore au top, je voulais séparer la logique de l'affichage mais ça semble assez compromis.


Testé uniquement sur architecture 64 bits pour l'instant, je testerais sur 32 bits une fois les fonctions de bases implémentées correctement.

Le tool crash lorsqu'on essaie de chercher des gadgets dans un fichier ELF 32 bits sur une architecture 64 bits (fonctionne parfaitement sous architecture 32 bits).

La version 0.1 alpha 2 sortira un peu plus tard, le temps que j'implémente les différents formats de fichiers visés et que je teste sous 32 bits :).

Si jamais vous trouvez un crash ou un bug d'une quelconque nature, vous pouvez toujours contribuer en soumettant des rapports de crashs comme décrit ici: Debugging Program Crash.

Conclusion

Bon ok cool on a des tools de ropping ... mais vous les trouvez pas trop limités? :)
Si vous voulez contribuer, vous savez où me joindre :).

Cheers,

m_101

- link: ROPit v0.1 alpha 1
- repos GIT: https://github.com/m101/ropit

mercredi 2 mars 2011

[Film] Sneakers

Bonjour,

Pour changer un peu des posts techniques, une petite review d'un film qui m'a bien surpris malgré son relatif age: Sneakers (qui est sorti en 1992). Il est peu cité à contrario des films "Hackers", Cybertraque ou Antitrust.
Ce qui m'intéresse avant tout est bien entendu les détails qui font que le film peut être considéré comme un film de "hackers" ou autres passionnés de sécurités les plus diverses (physique, humaine, ordinateurs, etc).

Histoire



C'est l'histoire d'un physical pentester du nom de Martin Bishop/Brice (Robert Redford) qui se voit entraîné dans une spirale infernale d'espionnage, de contre-espionnage, de trahison et bien sûr d'ordinateurs et cryptographie.

De par les capacitées de son équipe à pouvoir s'introduire dans les batiments, il se voit offrir une proposition de job par la "NSA". Le but est de récupérer un mystérieux boitier noir.

Je ne vous en dis pas plus au risque de spoil le film ;).

Déroulement du film

Le film débute par une scène où on voit le héros pirater des comptes bancaires avec son pote, la partie hacking se résume à faire un appel téléphonique rien de plus, rien de moins.
Aucune surprise à ce niveau, il fallait pas s'attendre à plus.

A la suite de leurs piratages, son ami se fait interpellé tandis que lui part libre comme le vent.

Par contre, au fur et à mesure du déroulement du film, une bonne part est mise au physical pentesting.
Certaines techniques étaient/sont réelles.

Les techniques

Voilà les choses que j'ai spotté:
1 - Trashing: récupération d'informations dans la poubelle d'autrui
2 - Vidéosurveillance: plaque d'immatriculation, allées et venues, bureaux de responsables, etc
3 - Sound analysis: A partir de son, déterminer la localisation et/ou l'utilité des pièces
4 - Voice recognition bypass: création de phrases en extrayant des mots de conversations avec la cible
5 - Hijack du système de vidéo surveillance
6 - Image analysis pour choper le password de quelqu'un
7 - Motion detector bypass
8 - Proxyfying: chaining de plusieurs proxys (par contre voir le tracing en temps réel euh ... non)
9 - Des bases en social engineering: fake advert (mail crafté ou autre)
10 - Modem remote log in
11 - Diversion: se faire passer pour quelqu'un d'autre pour rentrer dans un immeuble

Pros

- Techniques de physical pentesting
- Bien rythmé
- Une entrevue du danger de systèmes non sécurisés

Cons

- Histoire (presque) bidon

Conclusion

Mine de rien, le meilleur film de physical pentesting que j'ai vu jusqu'à présent.
Dans l'ensemble le film est plutôt bon, de quoi se détendre tout en restant un peu dans son domaine ;).

Have fun,

m_101

- Lien: Sneakers on IMDB