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.


Monday, September 14, 2009

Quelques pensees en vrac sur la vulnerabilite SMBv2

  • Il est dommage de poster une vulnerabilite de ce type au grand public sans vraiment savoir quelles en sont les consequences. Si vous ne savez pas quoi faire de vos vulnerabilites, je peux vous en racheter les "droits", surtout qu'avec un peu de temps dessus, on peut en faire quelque chose de beau.
  • Pourquoi pas un Local et pourquoi ce n'est pas boiteux? Il s'avere que contrairement a la plupart des bugs qui aboutissent a une elevation de privileges, l'utilisateur ici ne controle pas la memoire du processus userspace qui joue a touche-pipi avec srv2.sys. Ie.: pas possible d'allouer a 0 et de sauter a 0. Tout le monde doit maintenant connaitre la primitive du bug (call srv2!ValidateRoutines[i] avec 0<=i<=65535), et tout le monde a du penser a un moment qu'il etait facile d'avoir un pointeur vers 0 dans la section .data. Oui c'est facile, non c'est pas exploitable de la sorte vu que vous ne controllez pas ce qui est 0 (qui sera non mappe). Et pareil pour toute adresse du userland. ALSR = pas gagne.
  • ASLR noyau, ASLR en espace utilisateur, ca vous rend la vie compliquee. Tres. Et meme si vous avez des vulnerabilites a la con comme celle-la dans Vista, ca sera toujours mieux que d'avoir XP. Vraiment. Le seul truc qui manque, c'est le NX noyau.
  • Au final il aura fallu ~2 jours (2*8h) de boulot pour faire un local (et oui je faisais le guignol a NY quand c'est sorti), le remote probablement le triple, si tant est que cela soit possible.
Edit: le lien vers le site de CEU: http://www.immunityinc.com/ceu-index.shtml

Exploitation de la vulnerabilite SMBv2

Cela faisait un moment que je n'avais pas eu l'occasion de me faire les dents sur une chouette vulnerabilite. Quelque chose qui resiste, mais qui finit par casser, apres suffisamment d'efforts. De nos jours, soit on tombe sur quelque chose d'infaisable, soit sur une injection de commande version 1992AD.

L'exploitation de la vulnerabilite est extremement interessante, car elle requiert une facon de penser completement differente. Alors que certains s'interessent a des techniques plus "classiques", je me suis brise les synapses sur un autre moyen, mais qui se revele plutot lucratif au final. Le resultat est un local fiable (sur Vista SP1 a jour, SP2), et peut-etre un distant dans les jours qui viennent :) (Si on me colle pas sur du consulting!)

Edit: Output de l'exploit local: http://pastebin.com/m6c7d30ce (ca sauve de la place)