tcpdump: El arte de capturar y analizar el tráfico de red



Documentos relacionados
Laboratorio de Redes de Computadores

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE RED

WireShark. Este instructivo describe el uso del programa WireShark (antes llamado Ethereal) para examinar paquetes en una red de datos.

Ethereal. Este instructivo describe el uso del programa Ethereal para examinar paquetes en una red de datos.

Protocolo IP. Campos del paquete IP:

Modelo OSI y Protocolos Principales TCP/IP

Redes I Soluciones de la Práctica 1: /etc/network/interfaces, tcpdump y wireshark

Tema: Analizador de tráfico

REDES DE COMPUTADORES REDES Y SISTEMAS DISTRIBUIDOS

Práctica 3: Estudio de los protocolos HTTP, SMTP, POP3 e IMAP mediante un analizador de red: Wireshark

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas. Capa de Red. Mérida - Venezuela Prof. Gilberto Díaz

IP Internet Protocol. Funcionalidades: Esquema global de direcciones Fragmentación / reensamblado Ruteo

IP Internet Protocol. IP Dirección IP. Funcionalidades: Esquema global de direcciones Fragmentación / reensamblado Ruteo. Direccionamiento IP

Práctica 8: El analizador de protocolos Ethereal

Arquitectura de Redes y Sistemas de Telecomunicación

Tema: Analizador de tráfico

Práctica 3 Observando la red

Práctica de laboratorio: Uso de Wireshark para examinar tramas de Ethernet

UNIVERSIDAD DE ALCALÁ - DEPARTAMENTO DE AUTOMÁTICA Área de Ingeniería Telemática LABORATORIO DE COMUNICACIÓN DE DATOS (CURSO 2011/2012)

Hacking Ético. Módulo II Fase 2: Técnicas activas de obtención de información: Escaneo

Práctica de laboratorio: Uso de Wireshark para examinar una captura de UDP y DNS

Práctica2 Observando la red

01/10/ Conjunto de protocolos TCP/IP. Contenido. a. TCP/IP Internet OSI. a. TCP/IP Internet OSI. b. Nivel de red Protocolo IP

REDES DE COMPUTADORAS INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD ADOLFO LÓPEZ MATEOS - ZACATENCO

Introducción a las redes TCP/IP en Linux

Direcciones IP IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR. En redes IPv4.

Cortafuegos (Firewalls) en Linux con iptables

Administración de servicios Internet Intranet

Certified Offensive and Defensive Security Professional - Entrenamiento E-learning - 3-SCANNING.

Direcciones IP y máscaras de red

Router Teldat. Facilidad Sniffer

(decimal) (hexadecimal) 80.0A.02.1E (binario)

CURSO PRÁCTICO DE REDES PRÁCTICA 3a PRÁCTICA DE TCP-IP ARP/ICMP/IP. Departamento de Ingeniería Área de Ingeniería de Sistemas y Automática 1.

PROTOCOLO IPv Protocolo de Internet Versión 6

REDES INFORMATICAS: Protocolo IP

Monitorizacion de Netflow con NFSen

ADMINISTRACION DE REDES PARA INICIADOS

ARP. Conceptos básicos de IP

PROTOCOLO DE MENSAJES DE CONTROL INTERNET (ICMP : INTERNET CONTROL MESSAGE PROTOCOL) RFC-792

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

Objetivos. Comprender el funcionamiento de Internet y los protocolos que la hacen funcionar

INTRODUCCIÓN. El protocolo TCP, funciona en el nivel de transporte del modelo de referencia OSI, proporcionando un transporte fiable de datos.

UNIDAD DIDACTICA 12 CONFIGURACIÓN DE IPTABLES EN GNU/LINUX

Unidad I: La capa de Red

2003 Cisco Systems, Inc. All rights reserved.

Configuración del encaminamiento en Linux

Introducción a las Redes de Computadoras

ARQUITECTURA DE REDES Laboratorio. Práctica 3. Analizadores de protocolos. Manual de Wireshark. Grado en Ingeniería Informática Curso 2011/12

Filtrado de paquetes y NAT

TEMA 0. Revisión Protocolo IPv4

TALLER LINUX Modo Matrix Disponibilidad de Host Configuración Red Administración Remota Segura Servidor. Comandos Básicos en Consola

PRACTICA 3. Monitorización de redes mediante Analyzer Justificación y objetivos. El paquete Analyzer

Examen Febrero 2002 Test Resuelto Temas 9-13

Clase 23 FTP. Telnet. Ejemplos Tema 6.- Nivel de aplicación en Internet

Fragmentación y Reensamblado en IP ICMP

1 1. TECNOLOGÍAS Y PROTOCOLOS

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. Monitorización de una LAN

Práctica3 - Analizadores de red: Wireshark y tcpdump.

Universidad Autónoma de Nuevo León Facultad de Ciencias Físico Matemáticas. Laboratorio de Seguridad en aplicaciones web

Cortafuegos (Firewalls) en Linux con iptables

P r á c t i c a 1 5. C o n f i g u r a c i ó n d e f i r e w a l l m e d i a n t e i p t a b l e s


IP v6. :: Redes :: Redes : : IP v6. transporte. red. enlace. física. aplicación. Versión 28/02/11

IS23 Mantenimiento de Instalaciones Informáticas Práctica 7. Análisis de redes

El Protocolo IP. Tema 3. Servicio y Protocolo IP. Aplicaciones en Redes Locales 05/06

Seguridad de la información: ARP Spoofing

Telnet Comunicaciones 1. Luis Alfredo da Silva Gregori Gonzalez Rhamin Elrhouate July 2014

Packet Tracer: configuración de ACL extendidas, situación 1

UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA

Práctica de laboratorio 4.5.2: Protocolos de la capa de Transporte TCP/IP, TCP y UDP Diagrama de topología

INGENIERÍA INFORMÁTICA LABORATORIO DE REDES

Servicio host to host. Conectar millones de LANs?

Redes de computadores. Práctica 3

Guía de diagnóstico Software WIRESHARK para la captura de tramas Ethernet Centro de Competencia Técnica

Clase 26 Soluciones al problema de direccionamiento Tema 7.- Ampliación de temas

Redes de Computadores

DEBIAN TEMA 12: TELNET. Aprende a controlar remotamente una máquina a través del terminal de comandos

TELECOMUNICACIONES Y REDES

Colegio Salesiano Don Bosco Academia Reparación Y Soporte Técnico V Bachillerato Autor: Luis Orozco. Subneteo

Seminario de Redes TRABAJO PRACTICO Nº 3. UDP y TCP. deimos_azul@yahoo.com Padrón: gonzalojosa@hotmail.

Administración y Gestión de Redes (Julio 2012).

Técnicas y Herramientas de Ataque a Redes TCP/IP

Práctica 3: Monitorización de la Red Redes de Computadores U.L.P.G.C.

Fig.1 Redes conectadas a Internet a través de routers IP

Introducción a TCP/IP

Configuración del firewall en Linux con IPtables

Introducción. Objetivo. Implementar un detector de malware con software libre empleando el protocolo Netflow.

Switch. Red de cuatro ordenadores interconectados a través de un switch.

Tipos de conexiones de red en software de virtualizacio n: VirtualBox y VMware

Introducción a TCP/IP

Tabla de Contenido. Cisco Configurando ACLs de IP Comúnmente Usadas

Jose Antonio de la Morena Tutorial. Nmap Indice

Examen de Redes de Datos Tecnólogo en Telecomunicaciones (ROCHA)

ARQUITECTURA DE REDES Laboratorio

CÓMO CONFIGURAR DHCP EN SUSE LINUX

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

TCP: Carácterísticas Establecimiento y finalización de conexiones

Encaminamiento de paquetes con IP

Una vez instalada podremos seleccionar los paquetes que deseamos instalar de una lista.

Introducción a IP versión 4

Transcripción:

tcpdump: El arte de capturar y analizar el tráfico de red Tcpdump, es de uno de los analizadores de paquetes de red más conocidos e importantes en lo que a línea de comandos en entornos Unix se refiere. Su principal función es la de analizar el tráfico que circula por la red. Este programa viene dede 1987, época en la que sus autores Van Jacobson, Craig Leres y Steven McCanne trabajaban en el Lawrence Berkeley Laboratory Network Research Group,. El programa es ampliado por Andrew Tridgel. Se le puede relacionar con el término Sniffer. Los sniffers son analizadores de red o analizadores de paquetes que nos permiten capturar tráfico en nuestra red para posteriormente poder realizar un análisis de la información recogida. Se trata de configurar nuestra tarjeta de red en un modo denominado promiscuo, que nos permita no sólo escuchar los paquetes que vienen destinados a nosotros, sino que se trata de escuchar todo el tráfico que se genera en la red. Es una herramientas indispensable en su labor diaria del administrador de red. Entre sus muchas funciones podemos citar como ejemplos: Detectar problemas de red Detectar intrusiones Conocer y monitorizar el tráfico que se está generando Control de ancho de banda, etc Históricamente en todas aquellas redes centralizadas a través de concentradores hub, era muy fácil colocar un sniffer que nos permitiese escuchar todo el tráfico que se generaba en la red. Qué podemos encontrar en las capturas? Por ejemplo, muchos usuarios y contraseñas. Hay que tener claro que son muchos los protocolos inseguros por naturaleza en los que los usuarios/contraseñas viajaban en texto claro. Protocolos como smtp, pop3, ftp, http, Telnet, etc pueden ser sólo algunos ejemplos. Como casi siempre sucede en el mundo de las TIC, la seguridad no suele ser la fase más importante a la hora de abarcar un proyecto. Si preguntamos a nuestro sistema Debian por Tcpdump, nos dirá: #apt-cache search -f tcpdump Package: tcpdump Maintainer: Romain Francoise Description: A powerful tool for network monitoring and data acquisition This program allows you to dump the traffic on a network. tcpdump is able to examine IPv4, ICMPv4, IPv6, ICMPv6, UDP, TCP, SNMP, AFS BGP, RIP, PIM, DVMRP, IGMP, SMB, OSPF, NFS and many other packet types.. It can be used to print out the headers of packets on a network interface, filter packets that match a certain expression. You can use this tool to track down network problems, to detect "ping attacks" or to monitor network activities. Homepage: http://www.tcpdump.org/ Tag: admin::monitoring, interface::commandline, network::scanner, protocol::{ip,i Para ver sobre que interfaces podemos empezar a escuchar tráfico: #tcpdump -D 1.eth0 2.wlan0 3.any (Pseudo-device that captures on all interfaces) 4.lo Seleccionamos la interface sobre la que lanzar la captura #tcpdump -i wlan0 ó #tcpdump -i 2 La respuesta sería una lìnea del tipo: 20:50:43.975606 IP portatil.34296 > fx-in-f106.1e100.net.www: Flags [S], seq 2560890-1-

El formato general de la línea mostrada es el siguiente: timestamp src > dst: flags data-seqno ack window urgent options Timestamp (20:50:43.975606) nos da la fecha en la que se produce el evento. Vemos que tenemos fracciones de segundo, ya que puede haber varios paquetes por segundo Src (10.200.X.X.34296) y dst(74.125.39.106.80) son las IP host de Origen-destino junto con su puerto. > Dirección del flujo de datos. Flags [S] - Combinación de todas las posibles banderas que ya conocemos S (SYN), F (FIN), P (PUSH), R (RST), U (URG), W(ECN CWR), E (ECN-Echo) or `. (ACK), or `none if no flags are set. Data-seqno (seq 2560890220) Describe el numero de secuencia de la porción de datos Ack - Numero de secuencia del próximo byte que se espera recibir en la conexión. Window (win 5840) Informa del tamaño de ventana. Urg indica que hay información que hay que procesar como urgente en el paquete. Options (options [mss 1460,sackOK,TS val 1445388 ecr 0,nop,wscale 6], ) - Opciones Tcp que han de ir entre corchetes. Es importante comentar que los datos de src, dst y Flags han de estar siempre presentes. El resto de los campos dependerán en función del contenido de las cabeceras del protocolo TCP. Las opciones de Tcpdump a la hora de realizar la captura: -n: No realiza resolución de nombre #tcpdump -n -i wlan0 # 21:14:49.044773 IP 10.207.X.X.36837 > 74.125.39.105.80: Flags [P.], seq 3278661926:3278 -A: escribe cada paquete en formato ASCII (puede resultar útil para páginas web) #tcpdump -n -A -i wlan0 host tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes 21:16:41.909178 IP 10.207.X.X.36837 > 74.125.39.105.80: Flags [P.], seq 3278663838:3278664713, ack 173879623, win 1002, options [nop,nop,ts val 1834871 ecr 1295511797], length 875 E...(.@.@.....fJ}'i...P.lp. ]1G......wM7..GET / HTTP/1.1 Host: www.google.es User-Agent: Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0 Iceweasel/5.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate. -c X: Se detiene después de recoger X paquetes #tcpdump -n -A -i wlan0 -c 1 21:19:33.355015 IP 10.207.X.X.54292 > 74.125.39.147.80: Flags [S], seq 3904402581, win 5840, options [mss 1460,sackOK,TS val 1877733 ecr 0,nop,wscale 6], length 0 1 packets captured -e: imprime encabezados a nivel de enlace #tcpdump -e -i wlan0 c1 21:20:21.772273 00:22:fb:9a:xx:xx > 00:18:39:ae:8x:a2, ethertype IPv4 (0x0800), length 941: 10.207.x.x.54292 > 74.125.39.147.80: Flags [P.], seq 3904405615:3904406490, ack 2703453103, win 721, options [nop,nop,ts val 1889837 ecr 945894816], length 875 1 packets captured -2-

-p: pone la tarjeta en modo no promiscuo Con ifconfig -a vemos si la tarjeta se encuentra en modo promiscuo -q: imprime menos información por lo que las líneas son más cortas #tcpdump -q -i wlan0 c1 21:30:38.616870 IP portatil.local.57740 > fx-in-f99.1e100.net.www: tcp 0 1 packets captured -r: lee los paquetes guardados con la opción -w -S: imprime valores absolutos de números de secuencia -s: tamaño (por defecto 65535 bytes) -t que no escriba el timestamp #tcpdump -t -q -i wlan0 -c1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode IP portatil.local.42355 > fx-in-f147.1e100.net.www: tcp 5 -tttt vamos a ver fecha / hora #tcpdump -tttt -q -i wlan0 -c1 listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes 2011-09-28 21:38:35.350830 IP pedlap.local.42355 > fx-in-f147.1e100.net.www: tcp 5 -w: fichero escribe un fichero con la salida #tcpdump -tttt -q -i wlan0 -c1 -w fichero.cap -G: Rota el fichero especificado con la opcion -w segundos -v: información de salida, -vv mas, -vvv y mas -x:. escribe la información de cada paquete en Hex menos cabeceras a nivel de enlace. -gateway host: imprimir tráfico a través de host gateway Internet. #tcpdump -x -q -i wlan0 -c1 21:41:04.794378 IP portatil.local.42895 > fx-in-f103.1e100.net.www: tcp 0 0x0000: 4510 003c acda 4000 4006 3ab8 0acf d666 0x0010: 4a7d 2767 a78f 0050 50f4 86a0 0000 0000 0x0020: a002 16d0 3423 0000 0204 05b4 0402 080a 0x0030: 0006 2a7a 0000 0000 0103 0306 -xx: escribe la información de cada paquete en Hex menos cabeceras a nivel de enlace. -X:. escribe la información de cada paquete en Hex y Decimal -XX: escribe la información de cada paquete en Hex y Decimal EXPRESIONES Para trabajar con ellas nos van a permitir filtrar resultados. host: Filtrar el tráfico por Host. #tcpdump -n -i wlan0 -c1 host www.google.es 21:47:26.704685 IP 10.207.X.X.53749 > 74.125.39.106.80: Flags [S], seq 3929171104, win 5840, options [mss 1460,sackOK,TS val 499568 ecr 0,nop,wscale 6], length 0 Otro ejemplo en este sentido: #tcpdump ip host www.google.es and not www.bing.com port: mostrar solo tráfico de un determinado puerto. #tcpdump -n -q -i wlan0 -n port 80 21:50:06.758861 IP 10.207.X.X.53749 > 74.125.39.106.80: tcp 5-3-

21:50:06.880112 IP 74.125.X.X.80 > 10.207.214.102.53749: tcp 0 dst host host: Tráfico con un determinado host como destino. # tcpdump -i wlan0 dst host www.google.es src host host: Trafico con un determinado host como origen. #tcpdump -i wlan0 src host 10.20.1.90 Si queremos trabajar con las direcciones MAC al igual que con los host. ether dst ehost ether src ehost ether host ehost #tcpdump -i wlan0 ether dst 00:22:fb:9a:57:72 Si ahora queremos recoger información de una determinada red: dst net net src net net net net net net mask netmask #tcpdump -i wlan0 net 10.207.X.X/24 Si queremos trabajar con puertos: dst port port src port port #tcpdump -i wlan0 port 22 or 23 not: Negamos una expresión. #tcpdump -i wlan0 "tcp src port 80" and not host 1.1.1.1 ip proto protocol: Especificar un determinado protocolo. #tcpdump -i wlan0 ip proto 6 = tcpdump tcp -i wlan0 (tcp, udp, icmp) = #tcpdump -i wlan0 ip proto \\tcp #cat /etc/protocols grep tcp tcp 6 TCP # transmission control protocol Podemos trabajar con los tamaños (bytes) less leghnt greather length #tcpdump -i wlan0 greater 20 Y muchas mas expresiones a consultar en el man tcpdump. ip6 proto protocol, ip6 protochain protocol, ip protochain protocol ip broadcast, ether multicast, ip multicast, ip6 multicast, ether proto protocol decnet src host, decnet dst host, decnet host, ip, ip6, arp, rarp, atalk, aarp decnet. iso, stp, ipx, netbeui, vlan vlan_id, tcp, udp, icmp, clnp, esis, isis También podemos combinar expresiones: Negación:! o not And: && o and Or: o or Ejemplos: # tcpdump -i wlan0 ip and not net 1.1.1.1 #tcpdump host 10.200.1.1 and \( 1.1.1.1 or 2.2.2.2 \) #tcpdump -i wlan0 "tcp src port 80" -4-

#tcpdump -n -i wlan0 "not (tcp port ssh and host 1.1.1.1 and host 2.2.2.2)" #tcpdump -i wlan0 ((tcp) and (port 80) and ((!dst host www.google.es) && (!dst host www.bing.com))) Ahora vamos a complicarlo un poco más y realizar filtrados con el que se muestra en el siguiente ejemplo: Ejemplo de 3-way handshake protocol: vamos a recoger solo los paquetes SYN. El diagrama de una cabecera TCP sin opciones seria tal que así. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Source Port Destination Port Octeto 0-3 Sequence Number Octeto 4-7 Acknowledgment Number Octeto 8-11 Data C E U A P R S F Offset Res. W C R C S S Y I Window Octeto 12-15 R E G K H T N N Checksum Urgent Pointer Octeto 16-19 Si nos fijamos los Flags se encuentran entre el octeto 12 y el 15. Exactamente en los bits contenidos en el octeto 13 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Data C E U A P R S F Offset Res. W C R C S S Y I Window Octeto 12-15 R E G K H T N N Octeto 13 Si ahora nos fijamos en el octeto 13 C E U A P R S F W C R C S S Y I R E G K H T N N 7 6 5 4 3 2 1 0 Si recibimos un paquete con el bit SYN activado: 0 0 0 0 0 0 1 0 7 6 5 4 3 2 1 0 Asumiendo que el octeto es un integer sin signo, en Binario sería igual a 00000010 que en notación decimal corresponde al número 2. Esto lo podemos expresar como tcp[13] == 2. #tcpdump -i wlan0 'tcp[13] ==2' tcp[13] lo podemos reemplazar con tcp[tcpflags]. Los posibles valores serian : tcp-fin tcp-syn tcp-rst tcp-push tcp-act tcp-urg Con lo que podemos expresarlo como : #tcpdump tcp[tcpflags] & (tcp-syn)!= 0) Mostrar paquetes de inicio y fin (SYN y FIN activados) que no pertenezcan a una determinada red: -5-

#tcpdump 'tcp[tcpflags] & (tcp-syn tcp-fin)!= 0 and not src and dst net 10.204.X.X' Siguiendo el mismo razonamiento si queremos que filtrar paquetes SYN y ACK, entonces tcp[13] == 18 Si queremos recoger únicamente paquetes con SYN o SYN+ACK entonces aplicamos máscaras: 00010010:SYN-ACK + 00000010:Mascara (2 en decimal) = 00000010 : Resultado(2 en decimal) #tcpdump -i wlan0 'tcp[13] & 2 = 2' También podríamos filtrar los paquetes lanzados contra un determinado puerto : proto[x:y] x es el byte inicio, y numero de bytes a recoger. #tcpdump -i wlan0 'tcp[0:2] =81' Ademas podemos utilizar los siguientes operadores: Operators : >, <, >=, <=, =,!= Pudiendo transformar el filtro anterior: #tcpdump -i wlan0 'tcp[0:2] >21 && tcp[0:2] < 25'' Con lo visto podemos jugar con otros protocolos como ICMP. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum unused Internet Header + 64 bits of Original Data Datagram 0 Echo Reply 3 Destination Unreachable 4 Source Quench 5 Redirect 8 Echo 11 Time Exceeded 12 Parameter Problem 13 Timestamp 14 Timestamp Reply 15 Information Request 16 Information Reply Por ejemplo filtrar un Echo Request: #tcpdump -i wlan0 'icmp[0]=8' Podemos obtener las IP que nos están haciendo escaneos #tcpdump -lni wlan0 'icmp and (icmp[0] = 8)' tee salida.txt #cut -d " " -f 3 salida.txt -6-