2011
10.14
Here a little paper written during this summer, I finally decided to release it on my blog. This paper gives you a little introduction on the metasm framework and how it can be used in an exploitation way. I let you read a part of the introduction :
The metasm framework is a very powerful weapon that allows you to disassemble, assemble, compile C on-the-y or to debug a binary (yeah you can do a lot of things). It is written in pure ruby by Yoann Guillot (special greets for his job if he reads me o/) since 2007 and the project is very active: check the latest commits!
The main purpose of this paper is to introduce you with my friend metasm and to show how metasm can be very useful in a « real » exploitation case. I don’t know if you remember my latest article on the CVE-2010-3970 but I will use this vulnerability as an example. We will use metasm to create an exploit able to bypass SafeSEH/DEP thanks to the msacm32.drv module, and not l3codeca.acm.
Follow this link: How I Met Your Metasm
2011
03.25
After a long time without activity on this blog, today I suggest you a little talk about CVE-2010-3970. Here is a little description of the security hole:
Stack-based buffer overflow in the CreateSizedDIBSECTION function in shimgvw.dll in the Windows Shell graphics processor (aka graphics rendering engine) in Microsoft Windows XP SP2 and SP3, Server 2003 SP2, Vista SP1 and SP2, and Server 2008 Gold and SP2 allows remote attackers to execute arbitrary code via a crafted .MIC or unspecified Office document containing a thumbnail bitmap with a negative biClrUsed value, as reported by Moti and Xu Hao, aka « Windows Shell Graphics Processing Overrun Vulnerability. » – http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3970
So, you will see how I broke DEP and SafeSEH in Windows XP SP2 with ROP. I hope you will enjoy it : http://0vercl0k.tuxfamily.org/bl0g/Articles/CVE-2010-3970%20Demystified/0vercl0k_cve-2010-3970_Demystified.pdf
2010
05.10
001] Introduction
Me revoilà aujourd’hui pour vous parler d’un framework développé en python qui permet de faire pas mal de petites choses sympa. Typiquement, les différents modules qui compose volatility servent à extraire de l’information d’une « empreinte mémoire« . L’exemple classique est quand vous demander la création d’un snapshot sous VMWare : celui-ci va créer un fichier ayant l’extension .vmem. Pour rentrer un peu plus dans les détails, ce fichier VMEM n’est ni plus ni moins une copie du contenu de la RAM. Cette manière d’opérer permet de disposer d’un dump de la RAM « propre » : il faut comprendre ici que le dispositif de prise d’empreinte n’affecte en rien cette image. Je vais donc aujourd’hui me focaliser sur le fonctionnement de ce genre d’outils, à savoir comment parser un tel fichier, quelles informations peut-on tirer de ce genre d’analyse et comment donner du sens à une tel analyse.
Lire la suite >>
2009
11.01
Catégorie:
Non classé /
Tag:
CIM, MOF, mofcomp.exe, provider, python, rk, rootkit, vbs, wbemtest.exe, Windows management instrumentation, WMI, wmi provider, wmimofck.exe /
Aujourd’hui je vais vous parlez d’une feature que propose windows depuis pas mal de temps, le WMI (Windows Management Instrumentation) est une interface servant au contrôle et au monitoring des différentes ressources de Windows comme par exemple les processus et les périphériques. On la retrouve sur win XP/vista et server 2003/2008. La fonction « Propriété Système » par exemple, utilise WMI pour ‘afficher les différentes informations. Mais ce qui est plutôt cool, c’est que WMI n’est pas seulement utilisable avec vbs.
Lire la suite >>
2009
08.21
Catégorie:
Non classé /
Tag:
challenge, cr0, cr3, Hydropon-1K, identy mapping, Measure your x86 skillz, memoire virtuelle, OS, OS dev, pagination, pde, pte /
Voici le dernier article que je consacrerais à mon os (à prioris), je vous donnerais alors les sources du projet en fin d’article ; au cours de celui-ci nous allons nous intéressez à la gestion de la mémoire virtuel en mettant en place de l’identy-mapping et une autre règle pour gérer une tache utilisateur.
C’est vraiment la partie la plus technique que j’ai rencontré, car beaucoup de mécanisme ont été mis en place il faut donc les configurer convenablement afin que le système ne soit pas perturber par l’ajout d’une ou plusieurs features. De plus, il faut vraiment acquérir quelques réflexes comme la lecture massive de documentation, avec bien évidemment la bible d’intel ; je vous l’accorde c’est pas le plus facile :]. Voilà pour le blabla d’introduction, attachez vos ceintures, et plongeons dans les entrailles de la pagination.
Lire la suite >>
2009
07.28
Catégorie:
Non classé /
Tag:
controleur interruption, framebuffer, handler, Hydropon-1K, idt, interruption, isr, isr clavier, memoire video, OS, OS dev /
Et c’est repartis, après vous avoir exposé le développement de mon bootloader, je vais commencer à vous parler de la mise en place de mon noyau qui sera entièrement codé (ou presque) en C.
Avant de commencer à parler du kernel, je vais vous rafraichir un peu la mémoire sur ce qui a été fait précédemment.
Nous avions un bootloader capable de passer en mode protégé, avec une petite utilisation de la segmentation :
- Un segment de code kernel, qui avait pour base 0×1000 et pour limite la taille de notre noyau.
- Un segment de donné qui était capable de se balader dans toute la mémoire .
Notre kernel était ensuite chargé en mémoire à l’adresse 0×1000, c’est ici que notre bootloader sautait pour passer la main au noyau.
L’objectif de l’article d’aujourd’hui est déjà de mettre en place notre environnement de développement pour être capable de produire un binaire utilisable par Bochs.
Lire la suite >>
2009
07.19
Catégorie:
Non classé /
Tag:
0vercl0k, Bios, bootloader, GDT, Hydropon-1K, Interruption bios, Mode protégé, mode réel, OS, OS dev, PMode, Protected Mode, Real mode /
Pour inaugurer l’ouverture de mon nouveau blog, je vous expose mon projet actuel qui est porté sur le développement d’un système d’exploitation (minimaliste), sur ce post je vous parlerais du bootloader.
Lire la suite >>