WTF
2h du matin, annihilation mentale, après 4h de recherches infructeuses mon cerveau a laché. Incapable de comprendre, mêmes mes contacts IRC/IRL ont séché, désespoir il ne reste plus que toi. Ayant envie de partager ma douleur je vais vous conter ma tragédie. Samedi soir, une soirée calme, tout avait pourtant bien commencé, je décidais de connecter ma VM sur le kernel debugger, juste pour jouer maintenant que j’ai un new laptop avec de la vrai puissance. D’un coup, sans prévenir, me vient l’idée de suivre le déroulement du shellcode de mon dernier post « Kernel BOF » en live . Hop hop hop, je lance le driver dans la VM et là c’est l’halucination cognitive, ca ne marche pas ! Partant de cette simple constatation je décide de tracer le code. Après avoir passé 3h devant des lignes asm et des dump hexa j’arrive à la conclusion effrayante que le shellcode disparaît de la mémoire !! Pour vous en convaincre aller voir le lien suivant :
http://ivanlef0u.fr/repo/WTF.txt
J’ai remplacé le shellcode par une simple série de ‘A’, le saved EBP et le saved EIP sont bien overwrité par la fonction strcpy. Le souci est qu’au moment de faire le ret 4 de la fonction Mofo, le Buff qui est en 0xfbdf5ba0 est désintégrer ! WHAOU c’était pas prévu ça !
J’ai bien essayé de mettre des breakpoints en accès sur la zone mémoire mais rien n’y fait. La seule possibibitée que j’envisage est que dans mon nouveau processeur, AMD Turion Dual Core TL52, une protection hardware consiste à modifier la stack dépilée. J’avoue ca fait de la peur, après avoir googler je suis tomber sur cette page :
http://www.amd.com/us-en/Weblets/0,,7832_11104_11105,00.html
Après plus de recherche je suis tombé sur ces 2 papers :
http://www.virusbtn.com/pdf/conference_slides/2005/Costin_Raiu.pdf
http://www.amd.com/us-en/assets/content_type/DownloadableAssets/dwamd_AMD64_WinHEC04_pubfinal.pdf
Apparament le NX-bit (NX pour No Execute) permet d’empêcher l’exécution de code dans des zones mémoire non autorisées par le processeur. Ok c’est cool mais ca n’explique pas pourquoi mon Buff avec des 0×41 a disparu, alors si quelqu’un le sait qu’il me fasse signe.
Merci d’avance
4 comments mars 18th, 2007