Me contacter :

Nicolas Kerschenbaum

Un 0-day dans le protocole SMBv2 permet de prendre le contrôle à distance d'un système Windows (Vista, 2008, 7)



Le 7 septembre, une vulnérabilité 0-day a été découverte au sein du protocole SMBv2[1] (Server Message Block version 2). Ce protocole, implémenté sur les systèmes Vista, serveur 2008 et Windows 7, est utilisé pour le partage de fichiers et d'imprimantes.

Cette faille de sécurité, découverte par Laurent Gaffié[2] grâce à une attaque de fuzzing, est considérée comme critique.

En effet, celle-ci est exploitable à distance et permet d'exécuter un code malicieux avec les droits SYSTEM (administrateur). L'ironie vient du fait qu'elle a été introduite suite à la mise en place du correctif KB942624 (MS07-063) corrigeant une précédente faille de sécurité au sein de ce même protocole.

Cette vulnérabilité provient d'une mauvaise gestion des requêtes NEGOTIATE PROTOCOL par le pilote SRV2.SYS. Les requêtes NEGOTIATE PROTOCOL sont envoyées au serveur SMB dans le but d'identifier le dialecte SMB utilisé.
La faille de sécurité peut être provoquée lorsque le champ Process Id High contient un caractère "&", il est alors possible de provoquer un déréférencement de pointeur

Même si pendant plus d'une semaine seul un déni de service (DoS) avait été démontré provoquant le célèbre blue screen of death (BSoD)[3], plusieurs chercheurs ont prouvé qu'il était possible d'exécuter du code malicieux à distance.


 Ecran bleu provoqué lors de l'exploitation 


Les recherches ont tout d'abord débuté sur le blog vrt-sourcefire[4], mais la preuve de concept la plus aboutie vient de notre expert français Kostya Kortchinsky[5] qui réussi à exploiter cette faille de sécurité pour élever les privilèges d'un utilisateur local sur un système Vista à jour.
Le lendemain il réussit à modifier le code d'exploitation de sorte à pouvoir prendre le contrôle distant sur un système Windows Vista et Windows Serveur 2008 SP2.
Il indique que cette vulnérabilité est vraiment critique puisqu'un qu'un ver pourrait l'utiliser afin de se diffuser facilement (reste qu'en entreprise les Vista et Serveur 2008 ça ne court par les rues...).

Notons toutefois que les différents codes d'exploitation ne sont pas disponibles publiquement, mais sont uniquement intégrés au framework d'exploitation payant Canvas[6]. Une vidéo de l'exploitation sur ce framework est disponible [7].


Utilisation du code d'exploitation sur le framework Canvas 


UPDATE (04/10/2009):
Un code d'exploitation est maintenant disponible dans le framework d'exploitation gratuit Metasploit (trunk) [10].


Comment se protéger ?

En attendant que Microsoft publie un correctif, plusieurs actions peuvent être réalisées afin de remédier à cette vulnérabilité.

Tout d'abord, il est possible de désactiver le protocole SMBv2. Pour cela, il faut mettre la valeur de la clé de registre HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\smbv2 à 0 puis redémarrer le service Server. Microsoft propose un script permettant de réaliser automatiquement cette opération [8].

Il est également possible de bloquer les ports utilisés par le SMB (TCP 139 et TCP 445) par le firewall.

A noter qu'une règle Snort est disponible (15930) [9]

UPDATE (13/10/2009):
Microsoft corrige les 2 vulnérabilités avec le correctif proposé dans le bulletin MS09-050 [11].


Webographie

[1]   http://en.wikipedia.org/wiki/Windows_Vista_networking_technologies#Server_Message_Block_2.0
[2]   http://g-laurent.blogspot.com/2009/09/windows-vista7-smb20-negotiate-protocol.html
[3]   http://fr.wikipedia.org/wiki/Bsod
[4]   http://vrt-sourcefire.blogspot.com/2009/09/smbv2-quotes-dos-quotes.html
[5]   http://expertmiami.blogspot.com/2009/09/exploitation-de-la-vulnerabilite-smbv2.html
        http://expertmiami.blogspot.com/2009/09/quelques-pensees-en-vrac-sur-la.html
        http://expertmiami.blogspot.com/2009/09/exploit-smbv2-distant-pour-vista.html
        http://expertmiami.blogspot.com/2009/09/bonne-nouvelle-du-jour.html
[6]   http://www.immunityinc.com/ceu-index.shtml
[7]   http://www.immunityinc.com/documentation/smb2.html
[8]   http://support.microsoft.com/kb/975497
[9]   http://www.snort.org/vrt/docs/ruleset_changelogs/CURRENT/changes-2009-09-17.html
[10] http://blog.metasploit.com/2009/10/smb2-351-packets-from-trampoline.html
[11] http://www.microsoft.com/france/technet/security/bulletin/ms09-050.mspx

0 commentaires:

Enregistrer un commentaire