9.13. Le protocole SMB

Les serveurs SMB sont en écoute sur le port 139 ou 445.

SMB (pour Server Message Block) est le protocole utilisé pour interfacer les partages et les authentifications MICROSOFT. Les clients et serveurs SMB sous Linux et d'autres OS libres utilisent SAMBA pour traiter les échanges avec ce protocole.

SMB possède deux modes d'authentification : le mode "share", dans lequel il associe un mot de passe à une ressource (espace disque, imprimantes ...), et le mode "user", où il associe un mot de passe à un utilisateur. Cet utilisateur peut être aussi propriétaire d'une ressource.

SMB utilise aussi deux modes pour l'envoi de ces mots de passe : encryptés ou non. C'est là que réside toute la faille. C'est le serveur qui donne l'information au client s'il supporte l'encryptage ou non.

Si un pirate parvient à détecter un établisement de session SMB avant cet échange, il peut très bien détourner le flux entre les deux et demander au client d'envoyer son mot de passe en clair et le recevoir.

9.13.1. Les scans de SMB shares

Si vous avez des ressources partagées en accès libre à tout le monde (everyone shares), un pirate utilisera un scanner de share pour les détecter et s'y connecter.

Même si vous protégez ces shares par mot de passe, certains logiciels peuvent tester différents mots de passe en se loguant à la ressource et ainsi tenter différentes combinaisons de mots de passe (voir Chapitre 7, Sécurisation des mots de passe).

9.13.2. Comment s'en protéger ?

Pour être sûr que les mots de passe SMB soient envoyés encryptés sur le réseau (même en cas de requêtes «frauduleuses»), vérifiez que la valeur des clés suivantes de la base de registre sont bien égales à 0 :

  • Sous Windows NT4 : HKEY\LOCAL\MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters "EnablePlainTextPasswordi"=dword :00000000";

  • Sous Windows XP : HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters "enableplaintextpassword"=dword :00000000"

Protégez toutes vos ressources par mots de passe, évitez les shares en accès libre à tous le monde et n'oubliez jamais de choisir des mots de passe associés de la bonne façon (voir Chapitre 7, Sécurisation des mots de passe).

Ne laissez jamais un serveur SMB en écoute sur Internet, cela est plus que suicidaire. Si vous êtes obligés d'utiliser SMB à travers Internet, utilisez les tunnels (voir Section 4.4, « Le tunneling »).

Sur votre réseau interne, filtrez l'accès sur votre serveur SMB grâce à un firewall.

9.13.3. Document

La description des problèmes de sécurité sur SMB (en anglais) : SMB/CIFS BY THE ROOT