Monday, October 5, 2009

L'honneur est sauf!

Comme certains d'entre vous auront pu s'apercevoir, une technique d'exploitation du bug SMBv2 a ete publiee sur le blog de Metasploit par Piotr Bania (qui ne travaille pas pour Immunity comme pourraient le penser certaines personnes mal informees - cf. FLS). Et elle se revele plus fiable que la precedente de Stephen Fewer (qui ne marchait jamais).

Donc l'honneur est sauf! Je ne serai pas a l'origine de la nouvelle apocalypse numerique, comme le prophetisait certains, et je pourrai dormir paisiblement pendant que les jeunots pirateront des honeypots avec l'exploit Metasploit.

Quelques precisions/pensees sur le bug SMBv2:
  • Malgre tout le buzz qui en a ete fait (y compris par Immunity), je trouve que le bug au final n'est que peu interessant, pour la simple raison qu'il n'est exploitable que sur plateformes x86.
  • Si vous avez du x64, vous etes tranquille (pour le moment, mais ca ne devrait pas changer - sauf intervention divine), parceque les parametres de la fonction sont passes par registres et non par la pile, ce qui rend la technique de stack shifting inutilisable. Du 2008 x86 c'est super rare (3GB de memoire sur un serveur en 2009 c'est pas super utile), et du Vista x86, meme si c'est plus repandu, ca reste tout de meme rare (cf. pentests recents que j'ai pu mener).
  • Comme d'habitude, pas grand monde n'a compris ce qui se passait, c'est pas nouveau, la securite informatique ce n'est pas un succes. Si vous avez des problemes de comprehension, evitez de l'ouvrir, vous passerez pour plus stupide que vous ne l'etes.
  • Il est dommage de constater que l'exploitation d'un bug de nos jours est si problematique. Il aura fallu ~3 semaines a Stephen Fewer pour creer un exploit qui ne fonctionne pas souvent (a cause de l'adresse choisie dans le Bios/HAL), et ~1 mois a Piotr Bania pour arriver a quelque chose de fonctionnel grace, semble-t-il, a l'exploit publie precedemment. Beau boulot neanmoins des 2, puisque le resultat est la!
C'est beau Internet.

Thursday, September 24, 2009

Flyer


Credit: Nicolas Waisman

Friday, September 18, 2009

Merci Microsoft!

http://blogs.technet.com/srd/archive/2009/09/18/update-on-the-smb-vulnerability.aspx

We have analyzed the code ourselves and can confirm that it works reliably against 32-bit Windows Vista and Windows Server 2008 systems. The exploit gains complete control of the targeted system and can be launched by an unauthenticated user.
Je pense que c'est la premiere fois que je vois ca. Ca fait plaisir :)

Thursday, September 17, 2009

Bonne nouvelle du jour!

Toto a trouve un autre code path qui fait fonctionner l'exploit contre un SP1, et Skylar l'a implemente dans la nuit. Le tout est relativement fiable (tres), et avec du banner grabbing, le choix de la cible est automatique. Ce qui en fait une vulnerabilite "wormable" :)

Trop dure la vie.

Wednesday, September 16, 2009

SMBv2 Exploit Video

http://www.immunityinc.com/documentation/smb2.html

Quelques commentaires:
  • Cet exploit releve de la magie noire plus que d'autre chose. Il est vraiment beau. Vraiment. J'en pleurerais tellement il est beau.
  • Le coup du RDTSC n'est pas une blague. On verifie l'uptime de la machine via une requete Negotiate SMBv2 standard, la reponse inclut le BootTime et CurrentTime du serveur. En fonction, on lance l'exploit. Si le RDTSC est trop haut, reboot et zou.
  • Ca fait plaisir de bosser avec des gens comme Skylar et Toto, ca rend la vie plus facile.
  • Pourquoi SP2 seulement? Parceque dans le SP1 une des structures dont nous avons besoin n'est pas alignee sur 8 octets, et ca fout en l'air la technique. Mais on travaille a une solution :)
  • Il reste du boulot sur cet exploit, mais je suis sur un PenTest pour le reste de la semaine :(

Edit: Dave va refaire une video parcequ'il trouve la mienne toute pourrie. La faute au multimedia sous Ubuntu! Ca droppe des frames a gogo.

Tuesday, September 15, 2009

Exploit SMBv2 distant pour Vista!

On a un int3 fiable sur un Vista SP2 :) Et ca passe au travers de l'ASLR, etc. Reste a caser un shellcode dedans. Et a rooter du 2008 Server en attendant qu'un patch sorte un jour, peut-etre. Le prochain MS Tuesday est dans 3 semaines++, donc s'il font pas un out-of-band, ca va saigner! Ah, si seulement j'etais un pirate... Enfin bon, on arrive en fin de journee ici, donc on finira ca demain.

Gros bravo a Nicolas P. qui a reussi a comprendre mon code :)

Un peu plus pres du remote

Maintenant on transforme le call srv2!ValidateRoutines[i] en call x (avec ici x=0x42424242) en remote (un seul paquet). Le probleme c'est l'ASLR. C'est sympa de pouvoir appeler quelque chose qui va toujours etre au meme endroit, mais ca ne sert pas a grand chose dans Vista++. Le progres par rapport au Local, c'est qu'on est plus oblige d'appeler 0x00000000. C'est beau. Mais c'est pas gagne encore.