vendredi 29 juin 2007

Challenge Securitech 2007 :)

WinDbg est un outil exécrable.

J'étaye cette affirmation par un extrait du blog Microsoft consacré au langage de script WinDbg :
"- I also prefer not to explain the source code details for security reasons. "

Ce qui signifie en français :
"Le langage de script est tellement illisible que si je ne vous explique pas ce que je cherche à faire, vous ne pouvez pas comprendre par vous même."

La situation va peut-être s'améliorer grâce à ce projet : PyDbgExt, qui est pour le moment en version "Beta". On attend également la version Ruby, probablement réalisée par un labo d'Issy-Les-Moulineaux :)

Mais après le débogage noyau sous Vista, il existe un autre domaine dans lequel WinDbg est incontournable : le débogage ".NET", auquel j'ai l'occasion de m'intéresser actuellement.

Pour donner un exemple, voici le challenge que je vous propose (d'où le titre de ce billet :).

J'ai téléchargé le décompilateur .NET (gratuit) "Fox Community Edition" de la société Xenocode. Il ne demande qu'un login/mot de passe pour se lancer. Mais le site d'enregistrement est tellement contrôlé, que même avec des informations valides, il refuse de me créer un compte !

Le challenge consiste donc à contourner la boite de dialogue initiale, de la manière la plus rapide et la plus élégante possible.



Quelques précisions sur le fonctionnement de l'obfuscateur Xenocode (utilisé ici) :

  • Le bytecode .NET est obfusqué.
  • Il n'y a qu'un seul fichier exécutable, qui contient les librairies du .NET Framework (il n'est donc pas nécessaire d'installer le .NET Framework sur la cible d'exécution).
  • Ces librairies sont chargées dynamiquement en mémoire, selon une technique proche de celle du Meterpreter.
  • Le bytecode est compilé just-in-time en assembleur x86.
Bonne chance ! Je publierai ma solution le week-end prochain.

Petite précision : contrairement au vrai Challenge Securitech, il n'y a rien à gagner :)

5 commentaires:

Tyop? a dit…

Petite précision : contrairement au vrai Challenge Securitech, il n'y a rien à gagner :)
Si tout le monde se cotise... J'offre un chewing-gum.

Anonyme a dit…

"- I also prefer not to explain the source code details for security reasons. "

Ce qui signifie en français :
"Le langage de script est tellement illisible que si je ne vous explique pas ce que je cherche à faire, vous ne pouvez pas comprendre par vous même."

I have some French knowledge because my parents are fluent in French. I'm laughing with your "translation" :) Anyway, I do agree that Windbg language is cryptic. I'm currently working on a kind of tool that should be an alternative for that.
Thanks,

Roberto

newsoft a dit…

@Roberto: I'm eager to see that!

WinDbg is a powerful tool, but it lacks (at least):

- A decent GUI, with syntax coloring and contextual menus (like OllyDbg).

- An easy-to-use plugin interface. Men, SDK samples do not even compile!

Thanks for coming here anyway :)

Anonyme a dit…

I agree with you! Besides I'm jealous about IDA Pro disassembling features :)
I guess in about 3 weeks the tool will be posted.

Roberto

Anonyme a dit…

The tool is there! :)
Roberto