Wireshark. Analizando eventos SMB / CIFS – NetBIOS. Parte 1.

Ya vimos en el artículo Tshark. Detectando borrado de archivos de la red y otros eventos., algunos eventos SMB a través de Wireshark, tales como borrado de archivos y toda la información que se podía extraer capturando sesiones SMB, etc. A petición de lectores que me piden este artículo usando Wireshark en vez de Tshark, aprovecho, también, para explicar y avanzar un poco más en los protocolos SMB, CIFS Y NETBIOS.

SMB (Server Message Block), básicamente se trata de un protocolo que permitre compartir archivos, impresoras, puertos serie, etc entre hosts conectados en red. Pertenece a la capa de aplicación OSI y es un protocolo del tipo cliente-servidor. SMB se encuentra por encima de NETBIOS, que es la que se encarga de la resolución de Nombre host / IP.

CIFS (Common Internet File System) es una implementación que supone, también, una evolución de SMB para el sistema Windows en sus versiones más modernas. Al tratarse de un protocolo de alto nivel, necesita apoyarse en protocolos de transporte como NETBIOS. Al ser una evolución e implementación de SMB, es también un protocolo cliente-servidor.

header o cabecera nombre servicio netbios

La forma de trabajar de CIFS, como envía paquetes request de cliente a servidor, como responde, etc, etc.

Todo esto lo veremos, como siempre, con ejemplos de capturas Wireshark.

Para, en este artículo,  entender SMB/CIFS, vamos a centrarnos, en las capturas, a todo lo referente a estos protocolos y las trazas quese ven involucradas.

Comenzamos con la siguiente captura con los filtros adecuados para la ocasión y observemos el intercambio de paquetes entre CLIENTE (192.168.1.30 ) Y SISTEM (192.168.1.5), los dos host involucrados en una sesión en la que SISTEM se conecta a CLIENTE para usar el recurso compartido COMPARTIR y usa los archivos de dicha carpeta editándolos, borrando o creando un nuevo.

Parte de la captura es la siguiente:

wireshark  smb cifs netbios analisis

Paquete 7. NAME QUERY NB CLIENTE (00)

Comienza la sesión con una petición de de resolución de nombre de host mediante Name query NB CLIENTE Esto se hace usando NetBios mediante broadcast (192.168.1.255).

Responde 192.168.1.30 con Name query response NB 192.168.76.1

NOTA: Observad que aparcece la IP 192.168.76.1 en vez de 192.168.1.30 que sería lo lógico. Esto es así porque el host CLIENTE tiene otra interface de red que corresponde a VMWare.

Name query NB y Name query response usan el puerto 137y UDP.

ventana protocolo wireshark NetBIOS Name query

Vamos a hora a fijarnos en la ventana de protocolos (imagen de arriba). Observamos como hemos indicado ya los puertos usados (137) y nos centramos en NetBIOS Name Service.

Y para tener una referencia tenemos aquí el formato de paquete de Name Service de NETBIOS:

formato paquete name service (nombre servicio) NETBIOS

Y, a continuación el Header o cabecera:

header o cabecera nombre servicio netbios

Y ahora a destripar los datos.

Tenemos una sere de campos y Flags:

  • NAME_TRN_ID ó Transaction ID. (0x8022) Identificación del proceso de resolución de nombre.
  • Opcode. código de tipo de paquete. Se divide a su vez en dos campos: Response (0) en este caso inica un message is a query y Opcode propiamente dicho (0) que indica un query.
  • Flags (0x0110) :
    • Truncated (0). Indica no truncado
    • Recursion desired (1) se encuentra activado e indica que se trata de un query o pregunta recurrente.
    • Broadcast (1) está activado e indica que la resolución se realiza a través de un paquete broadcast.
  • RCODE. Muestra un código con el resultado de la petición name query (paquete 7 de la captura wireshark). Lógicamentre no aparece aquí, aparecerá en el resultado o Name query response.
  • QUESTION ENTRIES ó Questions. (1) Número entero que indica en número de entradas coincidente con una pregunta por nombre.
  • ANCOUNT ó Answer RRs (0). Indica número de recursos que se tratan de una respuesta, en este caso obviamente es 0 porque es una pregunta.
  • ARCOUNT ó Additional RRs. (0) BNúmero indicando recursos adicionales.

Vemos también el campo Queries que nos da infomación de la pregunta o consulta solicitada, en este caso preguntamos por la máquina CLIENTE.

Y hasta aquí la primera parte en la que hemos tratado de destripar, sacar información, del paquete Name query NB, paquete nº 7 de nuestra captura. En los siguientes cápitulos veremos la resupuesta o Name query response (paquete 11) de la captura.

Esta entrada fue publicada en Seguridad y redes, Wireshark . Tshark y etiquetada , , , , , , , . Guarda el enlace permanente.