9.1.3.2 Usando tcpdump

El programa tcpdump, escrito por Van Jacobson, Craig Leres, y Steven McCanne, y ampliado por Andrew Tridgell, te permite monitorear tráfico de red a tiempo real. Están disponibles una variedad de formatos de salida y puedes filtrar la salida para buscar sólo un tipo particular de tráfico. El programa tcpdump te permite examinar todas las conversaciones entre el cliente y el servidor, incluyendo mensajes de broadcast SMB y NMB. Mientras que sus capacidades ee detección de errores están principalmente a nivel de capa de red (OSI), todavía puedes usar su salida para obtener una idea general que qué están intentando hacer el servidor y el cliente.

A continuación, un ejemplo de registro tcpdump. En este ejemplo, el cliente ha solicitado un listado de directorios, y el servidor ha respondido apropiadamente, dando los nombres de directorios homes, public, IPC$, y temp (hemos añadido unas cuantas aclaraciones a la derecha de las líneas):

$
tcpdump -v -s 255 -i eth0 port not telnet
SMB PACKET: SMBtrans (REQUEST)

Paquete de Respuesta
SMB Command = 0x25

La petición fue ls o dir.

[000] 01 00 00 10                                     ....


>>> Paquete NBT

Outer frame of SMB packet
NBT Session Packet
Flags=0x0
Length=226
[lines skipped]

SMB PACKET: SMBtrans (REPLY)

Comienzo de una respuesta a una petición
SMB Command = 0x25

El comando fue un ls o un dir
Error class = 0x0
Error code = 0

No hay errores

Flags1 = 0x80
Flags2 = 0x1
Tree ID = 105
Proc ID = 6075
UID = 100
MID = 30337
Word Count = 10
TotParamCnt=8
TotDataCnt=163
Res1=0
ParamCnt=8
ParamOff=55
Res2=0
DataCnt=163
DataOff=63
Res3=0
Lsetup=0
Param Data: (8 bytes)
[000] 00 00 00 00 05 00 05 00                         ........

Data Data: (135 bytes)

                          Directorio Actual contiene:
[000] 68 6F 6D 65 73 00 00 00 00 00 00 00 00 00 00 00 homes... ........
[010] 64 00 00 00 70 75 62 6C 69 63 00 00 00 00 00 00 d...publ ic......
[020] 00 00 00 00 75 00 00 00 74 65 6D 70 00 00 00 00 ....u... temp....
[030] 00 00 00 00 00 00 00 00 76 00 00 00 49 50 43 24 ........ v...IPC$
[040] 00 00 00 00 00 00 00 00 00 00 03 00 77 00 00 00 ........ ....w...
[050] 64 6F 6E 68 61 6D 00 00 00 00 00 00 00 00 00 00 donham.. ........
[060] 92 00 00 00 48 6F 6D 65 20 44 69 72 65 63 74 6F ....Home Directo
[070] 72 69 65 73 00 00 00 49 50 43 20 53 65 72 76 69 ries...I PC Servi
[080] 63 65 20 28 53 61 6D                            ce (Sam

Esto es parte de la misma sesión de depuración que con el comando trace; el listado de un directorio. Las opciones que usamos han sido -v (verboso), -i eth0 para decirle a tcpdump el interfaz por el que escuchar (un puerto Ethernet), y -s 255 para decirle que almacene los primeros 255 bytes de cada paquete, en vez del valor por defecto, que es los primeros 68. La opción port not telnet es usada para evitar pantallas de tráfico de telnet, ya que estamos logeados en el sistema remotamente. El programa tcpdump actualmente tiene opciones para filtrar sólo el tráfico que quieres vigilar. Si ya has usado comandos como snoop o etherdump, esto te resultará vagamente familiar.

Puedes descargar el tcpdump modificado desde el servidor FTP de Samba en ftp://samba.anu.edu.au/pub/samba/tcpdump-smb. Otras versiones no incluyen soporte para el protocolo SMB; si no ves salidas como la mostrada en el ejemplo, necesitarás usar la versión preparada para SMB.

TLDP-ES 03/11/2002