Wireshark. Analizando eventos SMB / CIFS – NetBIOS. Parte 6. Comandos Tans2.

Hemos visto, en los cinco primeros capítulos de esta serie dedicada a  los eventos SMB / CIFS – NETBIOS, los mensajes del tipo  Name query NB, Name query response NB, pasos previos a Negotiate protocol y Negotiate protocol Request y Negotiate protocol Response  y la negociación de autentificación con el servidor del recurso. Estos pasos, vamos a recordar, eran:

  • Echo ping request
  • Echo ping response
  • Session request, to….
  • Positive session response
  • Negotiate protocol Request
  • Negotiate protocol Response
  • Session Setup AndX Request
  • Session Setup AndX Response…

En este sexto capítulo veremos los paquetes del tipo Tree Connect Andx Request, Response. Es decir, una vez culminada la negociación de autentificación con el servidor del recurso, se procede a conectar con el recurso. También veremos las distintas consultas del un cliente para obtener variados tipos de información del recurso compartido mediante SMB Trans2, subcomandos trans2 y las respuestas del servidor.

wireshark smb

Paquete 155.

Un ejemplo de este tipo de paquete lo vemos en el número 155. Se trata de Tree Connect AndX Request. Su objetivo es, una vez realizada la autenticación que ya vimos se iniciaba con paquetes del tipo Session Setup Andx Request, NTLMSSP_NEGOTIATE, la especificación del recurso compartido a conectar.

Observamos lo siguiente:

  • NT Status: STATUS_SUCESS (0x00000000). Se trata de que la operación se realizó de forma exitosa.
  • El Comando SMB es Tree Connect AndX (0x75).
  • Vemos que tanto el valor del usuario que realiza la petición Request: UID (User ID: 2048) como el Process ID: 65279 siguen siendo el mismo. Cosa lógica por otra parte. si establecemos un filtro tal como este: smb.pid == 65279 entonces tendremos solo los paquetes que corresponden es la misma «transacción» o «conexión SMB».
  • Tenemos también información del PATH que en este caso es \\CLIENTE\COMPARTIR¡
  • Tree ID sigue establecido a 0. Aún no se identifica el recurso, no se hace refeencia a el de momento.

smb

Paquete 156.

El servidor del recurso responde al Request anterior.

Ahora si establece un Tree ID con valor 2050 y especifica a qué recurso se refiere \\CLIENTE\COMPARTIR. a partir de este momento el valor Tree ID tendrá este valor fijo para este proceso. User ID y Process ID serán los mismos que para el paquete anterior. El comando es el mismo (0x75).

smb

Los subcomandos de Trans2.

Paquete 157.

Ya tenemos el Tree ID, así es el momento de realizar operaciones contra el recurso. Para ello usremos los subcomandos Trans2.

Estos subcomandos los iniciamos con Trans2 Request (0x32) que es enviado por un cliente para ejecutar una operación específica de diversos tipos en el servidor. Estas operaciones incluyen la enumeración de archivos, consultar y establecer las operaciones de atributo de archivo, etc.

Dentro de la información suministrada en el Trans2 Request tenemos:

  • QUERY_PATH_INFO (0X0005). Con este Request se pide informacion de atributos de archivo y/o directorio del recurso compartido indicado.

Además se pedirá inforamción sobre:

  • Creación del archivo o carpeta
  • último acceso
  • última escritura.

Obviamente el Tree ID y User ID son los mismo, pero… el Process ID ahora es otro: Process ID: 648. Para el resto se subcomandos Trans2 el Process ID será este último.

Paquete 158.

Aquí se responde al Request anterior dando cumplida información de la información requerida:

El comando SMB es Trans2 Response (0x32) que incluye el subcomando: QUERY_PATH_INFO (0X0005):

smb trans2 requests datos

Seguimos pidiendo información:

Paquete 159.

Se trata de un Trans2 Request con el subcomando QUERY_FS_INFO (0X0003).

Son muchos los datos de información que puede pedir el cliente sobre distintos niveles referiedo a la ubicación del recurso. En este caso se pide:

SMB_QUERY_FS_ATTRIBUTE_INFO para obtener información de atributos del sistema de archivos del servidor donde se aloja el recurso.

Pero se podría haber pedido, por ejemplo:

  • SMB_QUERY_FS_DEVICE_INFO para obtener información del dispositivo donde se almacena el recurso. Tipo de dispositivo (disco, cd-rom…),
  • SMB_QUERY_FS_SIZE_INFO información sobre tamaño del almacen, dispositivo, etc,  donde se encuentra el recurso.
  • SMB_QUERY_FS_VOLUME_INFO información sobre número de serie del dispositivo donde se encuentra el recurso, etiqueta o label y fecha y hora de creación del volumen o almecen del recurso.
  • etc

El valor de QUERY_FS_INFO Parameters es 0x0105. Es un código de nivel de información que indica exactamente que es lo que se pide Query file system attributes.


Paquete 160.

Respuesta del servidor del recurso. A la petición SMB_QUERY_FS_ATTRIBUTE_INFO responde con QUERY_FS_INFO Data en tres niveles:

  • FileSystemAttributes o Fs Attributes. Los atributos del sistema de ficheros.
  • MaxFileNameLengthInBytes o Max name length. Tamaño máximo en bytes de un nombre de archivo en el sistema de archivos.
  • LengthOfFileSystemName o Label Length. Ttamaño en bytes del campo FileSystemName (abajo).
  • FileSystemName o FS name. Nombre codificados con Unicode del sistema de archivos.

trans2 response QUERY_FS_INFO  atributos

No existe ningún código de error.

Seguimos con los paquetes que hemos dfiltrado mediante smb.tid == 2050:

smb wireshark listad paquetes

Paquete 181.

Aquí tenemos otra petición Trans2 Request (0x32) que realiza el cliente contra el servidor del recuros compartido. El subcomando es TRANS2_FIND_FIRST2 (0x0001). Lo que se pide es enumerar, listar los ficheros que existen el la caperta/recurso compartido. En nuesro caso en \\CLIENTE\COMPARTIR.

Los parámetros importantes de TRANS2_FIND_FIRST2 (0x0001):

  • Search Attributes: 0x016. que icluye información de ficheros ocultos, ficheros del siste,a y directorios.
  • Search Pattern, que establece el patrón de búsqueda inicial en \* para la búsqueda de ficheros.

Paquete 182.

Respuesta al Request anterior. Otro paquete SMB Trans2 (0x32). Lo interesante lo tenemos en FIND_FIRST2 Data. con la respuesta conteniendo el listado de archivos encontrado Find File… en información básica de cada uno. Desplegamos la información de uno de ellos:

RESPUESTA smb trans2 FIND_FIRST2 dATA

Relacionados con esta serie:

==========

y hasta aquí por hoy. Seguremos en el próximo capítulo con la Parte 7 de esta serie, viendo la apertura de archivos, etc.

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

Una respuesta a Wireshark. Analizando eventos SMB / CIFS – NetBIOS. Parte 6. Comandos Tans2.

  1. Pingback: Tshark. Follow TCP Stream en modo CLI mediante estadísticas tshark. | Seguridad y Redes

Deja un comentario