Documentación explícita referente a redes, sistemas y seguridad informática.
Categorías
Administración y Seguridad Programación
Afiliados
- Autor: Sh4v
- |
- Fecha: 2009-12-09
- |
- Categoría: Redes
Tcpdump es una herramienta que se utiliza para analizar el tráfico de nuestra red. Hablando en plata: es un sniffer. Este programa utiliza la librería Libpcap y captura los paquetes TCP/IP que circula por nuestra red, mostrándolos a tiempo real. Van Jacobson, Steven McCanne, Craig Leres y Andrew Tridgell son los desarrolladores de este programa. Este programa corre en sistemas operativos basados en Unix: MacOS, Linux, Solaris, BSD, AIX... La página oficial de este proyecto es www.tcpdump.org
Usuarios de Windows: no os vengáis abajo! Porque también existe una versión para los sistemas operativos de Microsoft. Su nombre es el Windump y en lugar de utilizar la librería libpcap utiliza la winpcap. La página oficial de este proyecto es: www.winpcap.org
En sistemas basados en Debian, lo haremos mediante este llamada a los repositorios (instalará libpcap y tcpdump):
También podemos hacerlo mediante el Gestor de Paquetes Synaptics.
Podemos también instalarlo bajando y compilando el código fuente de libpcap y tcpdump
Empezamos con libpcap. Descomprimimos la carpeta comprimida:
Entramos en el directorio:
Creamos el makefile adecuado a nuestro sistema operativo e instalamos:
Ahora el TCPDump. Lo descomprimimos con:
Entramos en el directorio y realizamos el mismo proceso que para el lipbcap:
Descargamos winpcap de http://www.winpcap.org/install/default.htm#Developer y lo instalamos. Después descargamos Windump de http://www.winpcap.org/windump/install/bin/windump_3_9_5/WinDump.exe y lo instalamos (no voy a entrar en la instalación en Windows porque creo que es tan sencilla e intuitiva que no requiere mayor explicación que poner los mirrors de descarga).
Lo primero que tenemos que hacer es saber que NIC de red vamos a utilizar. Para los que no sepan que es la NIC, la NIC es la tarjeta de red. Por lo tanto si estamos conectados por cable y queremos auditar la red cableada de la red local, utilizaremos la NIC cableada (aquella que utiliza el RJ45 o el USB para conectarse al router o al switch). Si por el contrario queremos auditar la red inalámbrica, tendremos que usar la NIC o adaptador de red inalámbrico. Para poder utilizarlo, necesitaremos saber el nombre de la interfaz. Esto lo haremos mediante el siguiente comando:
Y nos devolverá la lista de adaptadores de red con información sobre los mismos:
Si no especificamos nuestra interfaz, utilizar por defecto la cableada eth0. En Windows SIEMPRE hay que especificarla. Para averiguar el nombre de nuestra interfaz, utilizaremos el siguiente comando:
Vamos a proceder ya al sniffeo de la red... ups! ¿He dicho sniffeo? Quería decir “análisis” :P. Ejecutamos el comando. Yo por ejemplo, ahora mismo estoy en la universidad (sí, en medio de una clase magistral... lo sé, soy un mal alumno), pero es que es el momento propicio para hacer un análisis de la red. Os preguntaréis por qué. Pues porque estoy conectada vía wifi a la red local de la universidad y al igual que yo hay mucha más gente así que... al ataquerrrr! Y vamos a analizar los paquetes que envían y reciben mis compañeros. Tendremos que loguearnos como root en entornos basados en Unix. Veamos que obtenemos:
Como podéis ver, el programa nos resuelve hasta los nombres de las máquinas. Si quisiéramos evitar esto, añadiríamos el parametro “-n” al comando (tcpdump -i interfaz -n).
También observamos que los paquetes capturados son realmente pequeños. Esto tiene una explicación y es que el TcpDump captura solo los 68 primeros bytes de cada paquete ya que ese es el tamaño de las cabeceras de paquetes basados en protocolos TCP, UDP o IP. Sin embargo puede ser que queramos capturar más bytes de cada paquete o queramos analizar también el tráfico NFS (protocolo de red a nivel de aplicación según el modelo OSI, utilizado para transferencia de archivos en redes locales). Podemos añadir el parámetro “-s cantidad” para cambiar los bytes que queremos capturar (ejemplo: tcpdump -i eth0 -s 1500). ¿Por qué 1500 bytes? Pues porque 1500 bytes es la Unidad Máxima de Transferencia (MTU) que puede tener un datagrama en las redes locales basadas en Ethernet.
También tenemos la opción de imprimir los resultados en un archivo de texto. Esto lo podemos hacer mediante el parámetro “-w archivo” donde archivo será el nombre que le queramos dar al archivo de texto, el cual se guardará en el directorio en el que nos encontremos a la hora de ejecutar el TcpDump (o el WinDump). Para leer el contenido del archivo utilizaremos el parámetro “-r archivo”. Ejemplo:
Otra forma de hacerlo sería añadiendo "| tee capturas.log", grabando en el archivo la informacion sobre los paquetes capturados.
Podemos también aumentar la información capturada de cada paquete añadiendo al inicio del comando “-v”, “-vv”, “-vvv”, “-vvvv” etc... en función de la cantidad de información que queramos. Os dejo una lista de los parametros que soporta el TcpDump (y el WinDump):
tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -C file_size ]
[ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -Z user ]
[ expression ]
En TcpDump podemos distinguir 3 tipos de filtros:
Filtros Type: Las siglas vienen de Host, Net, Port y Mask. Con ellos podremos especificar un puerto, una red, un host o una mascara de subred determinada. Ejemplo:
Podemos combinar estos filtros. Ejemplo:
Filtros Dir: Son filtros de origen y destino. Me explico, con estos filtros, tenemos la posibilidad de elegir que los paquetes que salen y entran en un determinado host. Para ello se utilizan los parámetros “src” (source) y “dst” (destiny). Supongamos que queremos saber que datos salen de una determinada IP (por ejemplo 192.168.2.23), pondríamos el siguiente código:
Pero, y si quisieramos obtener los paquetes que entran y salen de un determinado host? Pues con poner “host nombredelhost” valdría. Pero... ¿Y si quisieramos saber los paquetes que salen de un host y los que salen de otro? Para esto tenemos las expresiones “and” y “or”. Pongamos que queremos saber los paquetes que entran en dos host de nuestra red local (192.168.2.23 y 192.168.2.24), haríamos lo siguiente:
Filtros de Proto: Estos filtros nos serviran para determinar que paquetes queremos capturar en función de su protocolo. Para determinar el protocolo que queremos añadiremos al inicio del comando “ip” (para protocolo ip), “tcp” (para protocolo tcp), “udp” (para protocolo udp), “arp” (para protocolo arp), “rarp” (para protocolo rarp), “ether” (para protoclo ethernet y referenciando a la dirección MAC que se vaya a analizar) y “fddi” (para redes basadas en fddi). De Ether y Fddi solo capturará tramas de paquetes a nivel de la capa de enlace del modelo OSI. También podemos hacer esto añadiendo al comando “proto //protocolo” (ejemplo: proto \\tcp).
También podemos hayar el tráfico icmp:
Podemos combinar todos los filtros para obtener un sinfín de posibilidades.
Esto lo copio tal cual está en la wikipedia ya que creo que no tiene mucha más explicación:
_________________________________________________________________________________
Todavía no hay comentarios. ¡Anímate y se el primero!
Usuarios de Windows: no os vengáis abajo! Porque también existe una versión para los sistemas operativos de Microsoft. Su nombre es el Windump y en lugar de utilizar la librería libpcap utiliza la winpcap. La página oficial de este proyecto es: www.winpcap.org
INSTALACIÓN DE TCPDUMP Y LIBPCAP EN UNIX:
En sistemas basados en Debian, lo haremos mediante este llamada a los repositorios (instalará libpcap y tcpdump):
sudo apt-get install tcpdump libpcap0.8
También podemos hacerlo mediante el Gestor de Paquetes Synaptics.
Podemos también instalarlo bajando y compilando el código fuente de libpcap y tcpdump
http://projects/libpcap/
http://sourceforge.net/projects/tcpdump/
http://sourceforge.net/projects/tcpdump/
Empezamos con libpcap. Descomprimimos la carpeta comprimida:
tar zxvf libpcap-0.8.1.tar.gz
Entramos en el directorio:
cd libpcap-0.8.1
Creamos el makefile adecuado a nuestro sistema operativo e instalamos:
./configure
make
sudo make install
make
sudo make install
Ahora el TCPDump. Lo descomprimimos con:
tar zxvf tcpdump-3.8.1.tar.gz
Entramos en el directorio y realizamos el mismo proceso que para el lipbcap:
cd tcpdump-3.8.1
./configure
make
sudo make install
./configure
make
sudo make install
INSTALACIÓN DE WINDUMP Y WINPCAP EN WINDOWS:
Descargamos winpcap de http://www.winpcap.org/install/default.htm#Developer y lo instalamos. Después descargamos Windump de http://www.winpcap.org/windump/install/bin/windump_3_9_5/WinDump.exe y lo instalamos (no voy a entrar en la instalación en Windows porque creo que es tan sencilla e intuitiva que no requiere mayor explicación que poner los mirrors de descarga).
GATEANDO:
Lo primero que tenemos que hacer es saber que NIC de red vamos a utilizar. Para los que no sepan que es la NIC, la NIC es la tarjeta de red. Por lo tanto si estamos conectados por cable y queremos auditar la red cableada de la red local, utilizaremos la NIC cableada (aquella que utiliza el RJ45 o el USB para conectarse al router o al switch). Si por el contrario queremos auditar la red inalámbrica, tendremos que usar la NIC o adaptador de red inalámbrico. Para poder utilizarlo, necesitaremos saber el nombre de la interfaz. Esto lo haremos mediante el siguiente comando:
ifconfig
Y nos devolverá la lista de adaptadores de red con información sobre los mismos:
sh4van3@Sh4van3-laptop:~$ ifconfig
eth0 Link encap:Ethernet direcciónHW 00:00:00:00:00:00
ARRIBA DIFUSIÓN MULTICAST MTU:1500 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupción:220 Dirección base: 0xa000
lo Link encap:Bucle local
inet dirección:127.0.0.1 Máscara:255.0.0.0
dirección inet6: ::1/128 Alcance:Anfitrión
ARRIBA LOOPBACK CORRIENDO MTU:16436 Métrica:1
RX packets:246 errors:0 dropped:0 overruns:0 frame:0
TX packets:246 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:0
RX bytes:15416 (15.4 KB) TX bytes:15416 (15.4 KB)
wlan0 Link encap:Ethernet direcciónHW 00:00:00:00:00:00
inet dirección:192.168.70.18 Difusión:192.168.70.255 Máscara:255.255.255.0
dirección inet6: fe80::219:7eff:febd:3108/64 Alcance:Vínculo
ARRIBA DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Métrica:1
RX packets:55468 errors:0 dropped:0 overruns:0 frame:0
TX packets:10163 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:16726696 (16.7 MB) TX bytes:1488768 (1.4 MB)
wmaster0 Link encap:UNSPEC direcciónHW 00-19-7E-BD-00-00-00-00-00-00-00-00-00-00-00-00
ARRIBA DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0 Link encap:Ethernet direcciónHW 00:00:00:00:00:00
ARRIBA DIFUSIÓN MULTICAST MTU:1500 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupción:220 Dirección base: 0xa000
lo Link encap:Bucle local
inet dirección:127.0.0.1 Máscara:255.0.0.0
dirección inet6: ::1/128 Alcance:Anfitrión
ARRIBA LOOPBACK CORRIENDO MTU:16436 Métrica:1
RX packets:246 errors:0 dropped:0 overruns:0 frame:0
TX packets:246 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:0
RX bytes:15416 (15.4 KB) TX bytes:15416 (15.4 KB)
wlan0 Link encap:Ethernet direcciónHW 00:00:00:00:00:00
inet dirección:192.168.70.18 Difusión:192.168.70.255 Máscara:255.255.255.0
dirección inet6: fe80::219:7eff:febd:3108/64 Alcance:Vínculo
ARRIBA DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Métrica:1
RX packets:55468 errors:0 dropped:0 overruns:0 frame:0
TX packets:10163 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:16726696 (16.7 MB) TX bytes:1488768 (1.4 MB)
wmaster0 Link encap:UNSPEC direcciónHW 00-19-7E-BD-00-00-00-00-00-00-00-00-00-00-00-00
ARRIBA DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisiones:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Si no especificamos nuestra interfaz, utilizar por defecto la cableada eth0. En Windows SIEMPRE hay que especificarla. Para averiguar el nombre de nuestra interfaz, utilizaremos el siguiente comando:
windump -D
PRIMEROS PASOS:
Vamos a proceder ya al sniffeo de la red... ups! ¿He dicho sniffeo? Quería decir “análisis” :P. Ejecutamos el comando. Yo por ejemplo, ahora mismo estoy en la universidad (sí, en medio de una clase magistral... lo sé, soy un mal alumno), pero es que es el momento propicio para hacer un análisis de la red. Os preguntaréis por qué. Pues porque estoy conectada vía wifi a la red local de la universidad y al igual que yo hay mucha más gente así que... al ataquerrrr! Y vamos a analizar los paquetes que envían y reciben mis compañeros. Tendremos que loguearnos como root en entornos basados en Unix. Veamos que obtenemos:
sh4van3@Sh4van3-laptop:~$ sudo tcpdump -i wlan0
[sudo] password for sh4van3:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 96 bytes
13:05:02.352947 arp who-has 192.168.70.1 tell 192.168.70.102
13:05:02.353209 arp who-has 192.168.70.1 tell 192.168.70.102
13:05:02.354372 IP Sh4van3-laptop.local.59287 > simancas.cpd.uva.es.domain: 57506+ PTR? 1.70.168.192.in-addr.arpa. (43)
13:05:02.363422 IP simancas.cpd.uva.es.domain > Sh4van3-laptop.local.59287: 57506 NXDomain 0/1/0 (120)
13:05:02.455140 arp who-has 192.168.70.1 tell 192.168.70.102
13:05:02.455301 IP Montxi1.local.netbios-dgm > 169.254.255.255.netbios-dgm: NBT UDP PACKET(138)
13:05:02.465106 IP Sh4van3-laptop.local.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 1.70.168.192.in-addr.arpa. (43)
13:05:03.476077 IP Sh4van3-laptop.local.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 1.70.168.192.in-addr.arpa. (43)
13:05:03.581899 IP6 fe80::e58f:e55:f9e1:aa39.62553 > ff02::1:3.hostmon: UDP, length 24
13:05:03.582053 IP Montxi1.local.50590 > 224.0.0.252.hostmon: UDP, length 24
13:05:03.683967 IP6 fe80::e58f:e55:f9e1:aa39.62553 > ff02::1:3.hostmon: UDP, length 24
13:05:03.684358 IP Montxi1.local.50590 > 224.0.0.252.hostmon: UDP, length 24
13:05:03.888765 IP Montxi1.local.netbios-ns > 169.254.255.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
^C^C13:05:04.093569 IP 192.168.70.10.netbios-ns > 192.168.70.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
14 packets captured
242 packets received by filter
171 packets dropped by kernel
[sudo] password for sh4van3:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 96 bytes
13:05:02.352947 arp who-has 192.168.70.1 tell 192.168.70.102
13:05:02.353209 arp who-has 192.168.70.1 tell 192.168.70.102
13:05:02.354372 IP Sh4van3-laptop.local.59287 > simancas.cpd.uva.es.domain: 57506+ PTR? 1.70.168.192.in-addr.arpa. (43)
13:05:02.363422 IP simancas.cpd.uva.es.domain > Sh4van3-laptop.local.59287: 57506 NXDomain 0/1/0 (120)
13:05:02.455140 arp who-has 192.168.70.1 tell 192.168.70.102
13:05:02.455301 IP Montxi1.local.netbios-dgm > 169.254.255.255.netbios-dgm: NBT UDP PACKET(138)
13:05:02.465106 IP Sh4van3-laptop.local.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 1.70.168.192.in-addr.arpa. (43)
13:05:03.476077 IP Sh4van3-laptop.local.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 1.70.168.192.in-addr.arpa. (43)
13:05:03.581899 IP6 fe80::e58f:e55:f9e1:aa39.62553 > ff02::1:3.hostmon: UDP, length 24
13:05:03.582053 IP Montxi1.local.50590 > 224.0.0.252.hostmon: UDP, length 24
13:05:03.683967 IP6 fe80::e58f:e55:f9e1:aa39.62553 > ff02::1:3.hostmon: UDP, length 24
13:05:03.684358 IP Montxi1.local.50590 > 224.0.0.252.hostmon: UDP, length 24
13:05:03.888765 IP Montxi1.local.netbios-ns > 169.254.255.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
^C^C13:05:04.093569 IP 192.168.70.10.netbios-ns > 192.168.70.255.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
14 packets captured
242 packets received by filter
171 packets dropped by kernel
OPCIONES Y PARÁMETROS:
Como podéis ver, el programa nos resuelve hasta los nombres de las máquinas. Si quisiéramos evitar esto, añadiríamos el parametro “-n” al comando (tcpdump -i interfaz -n).
También observamos que los paquetes capturados son realmente pequeños. Esto tiene una explicación y es que el TcpDump captura solo los 68 primeros bytes de cada paquete ya que ese es el tamaño de las cabeceras de paquetes basados en protocolos TCP, UDP o IP. Sin embargo puede ser que queramos capturar más bytes de cada paquete o queramos analizar también el tráfico NFS (protocolo de red a nivel de aplicación según el modelo OSI, utilizado para transferencia de archivos en redes locales). Podemos añadir el parámetro “-s cantidad” para cambiar los bytes que queremos capturar (ejemplo: tcpdump -i eth0 -s 1500). ¿Por qué 1500 bytes? Pues porque 1500 bytes es la Unidad Máxima de Transferencia (MTU) que puede tener un datagrama en las redes locales basadas en Ethernet.
También tenemos la opción de imprimir los resultados en un archivo de texto. Esto lo podemos hacer mediante el parámetro “-w archivo” donde archivo será el nombre que le queramos dar al archivo de texto, el cual se guardará en el directorio en el que nos encontremos a la hora de ejecutar el TcpDump (o el WinDump). Para leer el contenido del archivo utilizaremos el parámetro “-r archivo”. Ejemplo:
tcpdump -w archivo.txt
tcpdump -r archivo.txt
tcpdump -r archivo.txt
Otra forma de hacerlo sería añadiendo "| tee capturas.log", grabando en el archivo la informacion sobre los paquetes capturados.
tcpdump -i ath0 | tee info.log
Podemos también aumentar la información capturada de cada paquete añadiendo al inicio del comando “-v”, “-vv”, “-vvv”, “-vvvv” etc... en función de la cantidad de información que queramos. Os dejo una lista de los parametros que soporta el TcpDump (y el WinDump):
tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -C file_size ]
[ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -Z user ]
[ expression ]
-A: Imprime cada paquete en código ASCII
-D: Imprime la lista de interfaces disponibles
-n: No convierte las direcciones de salida
-p: No utliza el interfaz especificado en modo promiscuo
-t: No imprime la hora de captura de cada trama
-x: Imprime cada paquete en hexadecimal
-X: Imprime cada paquete en hexadecimal y código ASCII
-c count: Cierra el programa tras recibir 'count' paquetes
-C file_size
-E algo:secret
-F file
-i interface: Escucha en el interfaz especificado
-M secret
-r file
-s snaplen
-T type
-w file: Guarda la salida en el archivo 'file'
-W filecount
-y datalinktype
-Z user
-D: Imprime la lista de interfaces disponibles
-n: No convierte las direcciones de salida
-p: No utliza el interfaz especificado en modo promiscuo
-t: No imprime la hora de captura de cada trama
-x: Imprime cada paquete en hexadecimal
-X: Imprime cada paquete en hexadecimal y código ASCII
-c count: Cierra el programa tras recibir 'count' paquetes
-C file_size
-E algo:secret
-F file
-i interface: Escucha en el interfaz especificado
-M secret
-r file
-s snaplen
-T type
-w file: Guarda la salida en el archivo 'file'
-W filecount
-y datalinktype
-Z user
FILTROS:
En TcpDump podemos distinguir 3 tipos de filtros:
Filtros Type: Las siglas vienen de Host, Net, Port y Mask. Con ellos podremos especificar un puerto, una red, un host o una mascara de subred determinada. Ejemplo:
tcpdump -i ath0 host 192.168.2.23 # Cogeríamos el tráfico de entrada y salida del host 192.168.2.23
tcpdump -i ath0 net 10.0 # Capturaríamos el tráfico de la red
tcpdump -i ath0 port 80 # Capturaríamos el tráfico del puerto 80 (http).
tcpdump -i ath0 mask 255.255.255.0 # Más de lo mismo (mascara subred determinada).
tcpdump -i ath0 net 10.0 # Capturaríamos el tráfico de la red
tcpdump -i ath0 port 80 # Capturaríamos el tráfico del puerto 80 (http).
tcpdump -i ath0 mask 255.255.255.0 # Más de lo mismo (mascara subred determinada).
Podemos combinar estos filtros. Ejemplo:
tcpdump -i eth0 host 192.168.2.23 port 80
Filtros Dir: Son filtros de origen y destino. Me explico, con estos filtros, tenemos la posibilidad de elegir que los paquetes que salen y entran en un determinado host. Para ello se utilizan los parámetros “src” (source) y “dst” (destiny). Supongamos que queremos saber que datos salen de una determinada IP (por ejemplo 192.168.2.23), pondríamos el siguiente código:
tcpdump -i interfaz src host 192.168.2.23
Pero, y si quisieramos obtener los paquetes que entran y salen de un determinado host? Pues con poner “host nombredelhost” valdría. Pero... ¿Y si quisieramos saber los paquetes que salen de un host y los que salen de otro? Para esto tenemos las expresiones “and” y “or”. Pongamos que queremos saber los paquetes que entran en dos host de nuestra red local (192.168.2.23 y 192.168.2.24), haríamos lo siguiente:
tcpdump -i interfaz dst host 192.168.2.23 and dst host 192.168.2.24
Filtros de Proto: Estos filtros nos serviran para determinar que paquetes queremos capturar en función de su protocolo. Para determinar el protocolo que queremos añadiremos al inicio del comando “ip” (para protocolo ip), “tcp” (para protocolo tcp), “udp” (para protocolo udp), “arp” (para protocolo arp), “rarp” (para protocolo rarp), “ether” (para protoclo ethernet y referenciando a la dirección MAC que se vaya a analizar) y “fddi” (para redes basadas en fddi). De Ether y Fddi solo capturará tramas de paquetes a nivel de la capa de enlace del modelo OSI. También podemos hacer esto añadiendo al comando “proto //protocolo” (ejemplo: proto \\tcp).
tcpdump -i interfaz udp
tcpdump -i interfaz ether host FF:FF:FF:FF:FF:FF
También podemos hayar el tráfico icmp:
tcpdump ip proto \\ip
Podemos combinar todos los filtros para obtener un sinfín de posibilidades.
SALIDA DE DATOS:
Esto lo copio tal cual está en la wikipedia ya que creo que no tiene mucha más explicación:
src > dst: flags [dataseq ack window urgent options]
15:23:44.772291 IP 192.168.1.17.52798 > 85.Red-83-37-170.dynamicIP.rima-tde.net.65000: . ack 1791 win 7851 <nop,nop,timestamp 5520421 997821>
src: Dirección y puerto origen.
dst: Dirección y puerto destino.
flags: Flags de la cabecera TCP. (.) si no hay flags o combinación de S (SYN), F (FIN), P (PUSH), W (reducción de la ventana de congestión), E (ECN eco).
dataseq: Número de secuencia del primer byte de datos en este segmento TCP. El formato es primero:ultimo(n).
ack: El número de asentimiento. Indica el número siguiente de secuencia que se espera recibir.
window: Tamaño de la ventana de recepción.
urgent: Existen datos urgentes.
options: Indica la existencia de opciones. Van entre "<"...">".
15:23:44.772291 IP 192.168.1.17.52798 > 85.Red-83-37-170.dynamicIP.rima-tde.net.65000: . ack 1791 win 7851 <nop,nop,timestamp 5520421 997821>
src: Dirección y puerto origen.
dst: Dirección y puerto destino.
flags: Flags de la cabecera TCP. (.) si no hay flags o combinación de S (SYN), F (FIN), P (PUSH), W (reducción de la ventana de congestión), E (ECN eco).
dataseq: Número de secuencia del primer byte de datos en este segmento TCP. El formato es primero:ultimo(n).
ack: El número de asentimiento. Indica el número siguiente de secuencia que se espera recibir.
window: Tamaño de la ventana de recepción.
urgent: Existen datos urgentes.
options: Indica la existencia de opciones. Van entre "<"...">".
_________________________________________________________________________________
Todavía no hay comentarios. ¡Anímate y se el primero!


