Protocolo SMB

Flujo Técnico Detallado y Versiones

1

Resolución de Nombre (Cliente → Red)

El cliente traduce \\SERVIDOR en una IP. Puede usar:

  • DNS (entornos corporativos)
  • NetBIOS (difusión local)
  • LLMNR (multicast IPv4)
  • mDNS (Bonjour/Avahi)
2

Conexión TCP (Cliente → Servidor)

Se conecta al puerto 445 (o 139). Se negocia la versión SMB a usar.

Ejemplo: el cliente ofrece SMB 3.1.1, pero si el servidor solo soporta 2.1, se usa esa.

3

Autenticación (Cliente ⇄ Servidor)

Se validan credenciales mediante NTLM o Kerberos. Puede usarse:

  • NTLMv2 (común en redes pequeñas)
  • Kerberos (dominios con Active Directory)

Opcional: firma y cifrado de paquetes si SMB 3.x está activo.

4

Acceso a Recursos (Cliente → Servidor)

Se solicita acceso a carpetas, impresoras o compartidos específicos. El servidor evalúa:

  • Permisos de recurso compartido
  • Permisos NTFS
5

Transferencia de Datos (Cliente ⇄ Servidor)

El cliente realiza operaciones como READ, WRITE, DELETE, RENAME.

Todo se transmite en paquetes SMB estructurados (binarios).

6

Bloqueo y Caché (Servidor → Cliente)

El servidor impone bloqueos para evitar corrupción. También:

  • Oplocks (bloqueos optimistas)
  • Share modes (control simultáneo)
  • Compresión y multicanal (si SMB 3.x)
7

Cierre de Sesión (Cliente → Servidor)

El cliente solicita cerrar sesión. El servidor libera recursos, cierra archivos abiertos y desconecta.

📘 Versiones del Protocolo SMB

Versión Año Características Estado
SMB 1.0 1983 Obsoleto. Sin cifrado. Vulnerable. Usado por Windows NT/XP. Obsoleto
SMB 2.0 2006 Rendimiento mejorado. 10× menos comandos que SMB1. Compatible
SMB 2.1 2008 Introducido con Windows 7/Server 2008 R2. Bloqueo mejorado. Compatible
SMB 3.0 2012 Multicanal, cifrado AES-CCM, soporte de virtualización. Recomendado
SMB 3.1.1 2015 AES-GCM, firma obligatoria, cifrado por sesión y autenticación previa. Actual

⚠️ Microsoft recomienda deshabilitar SMB 1.0 para evitar vulnerabilidades críticas como EternalBlue.