Вы находитесь на странице: 1из 47

a

Introduccion
TCPDUMP
J. Carlos

Rojas Munoz

a TCPDUMP
Introduccion

Agenda

Introduccion
Salida hexadecimal

J. Carlos Rojas Munoz

Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos

February 10, 2007

Ejemplos

Abstract
TCPDUMP es una herramienta que nos permite

analizar el trafico
que pasa por la red, la mayora de los
sniffers actuales, se basan en TCPDUMP.

Agenda
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y UDP

Filtros con TCPDUMP

Analisis
basicos

Ejemplos

Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos


Introduccion
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

Examinar las ventajas y desventajas de TCPDUMP


y analisis

Organizar la recopilacion
de TCPDUMP
Aprender a interpretar un datagrama a nivel de bits

Ventajas y Desventajas
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

Ventajas:

Se logra tener un registro historico


de la actividad de la
red
que
Se puede confiar plenamente en la informacion
entrega
Disponible para multiples
plataformas

de la informacion
entregada es
La interpretacion
completamente personal
Desventajas:
No se registra el paquete completo
No es recomendable tenerlo en una red con mucho

trafico

No mantiene los estados de la conexion

Versiones de tcpdump
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion

oficial para Unix es del Laboratorio Lawrence


La version
de la comunidad
Berkeley. Sin embargo, existe una version
disponible en:

Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

http://www.tcpdump.org
de
Cabe mencionar que en casi cualquier version
GNU/Linux se incluye tcpdump como parte de los
programas base. En caso de utilizarlo en otra plataforma,
estable de
se recomienda bajar y compilar la ultima
version

tcpdump.

Datos que entrega TCPDUMP


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz

0101001110101101

1110100110000101001

1111000010100110011

Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

tcpdump ejecutandose en
un host "sniffeando" la red

Filtros con
TCPDUMP

Analisis

basicos

Salida de tcpdump

Ejemplos

12:49:31.548893 IP morris.nswebhost.com.www > 10.10.40.107.50102: . 2862:4310(1448)


ack 735 win 33304 <nop,nop,timestamp 611440701 307446892>
12:49:31.588748 IP morris.nswebhost.com.www > 10.10.40.107.50102: . 4310:5758(1448)
ack 735 win 33304 <nop,nop,timestamp 611440701 307446892>
12:49:31.614961 IP 220918.ds.nac.net.www > 10.10.40.107.50098: P 6597:7444(847)
ack 3408 win 11792


Salida estandard
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal

Comando: tcpdump

salida por omision:

Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes


15:39:53.761348 IP 10.10.40.1.1900 239.255.255.250.1900: UDP, length 269
15:39:53.764856 IP 10.10.40.1.1900 239.255.255.250.1900: UDP, length 323
15:39:53.768241 IP 10.10.40.1.1900 239.255.255.250.1900: UDP, length 315
15:39:53.771102 IP 10.10.40.1.1900 239.255.255.250.1900: UDP, length 245
15:39:53.774260 IP 10.10.40.1.1900 239.255.255.250.1900: UDP, length 287
15:39:53.779274 IP 10.10.40.1.1900 239.255.255.250.1900: UDP, length 319
15:39:53.782161 IP 10.10.40.1.1900 239.255.255.250.1900: UDP, length 265
15:39:53.790312 IP 10.10.40.1.1900 239.255.255.250.1900: UDP, length 311

Salida en hexadecimal de tcpdump


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz

Comando: tcpdump -x
Resultado en hexadecimal:

Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos

UDP

Source
IP

15:47:25.149603 IP 10.10.40.6.1900 > 239.255.255.250.1900: UDP, length 287


0x0000: 4500 013b d0b9 0000 7f11 47ee 0a0a 2806
0x0010: ef f f f f f a 076c 076c 0127 9b3b 4e4f 5449
0x0020: 4659 202a 2048 5454 502f 312e 310d 0a48
0x0030: 4 f53 543a 3233 392e 3235 352e 3235 352e
0x0040: 3235 303a 3139 3030 0d0a 4341 4348 452d
Encabezado del
IP Header
0x0050: 434 f
protocolo y datos
Dest.
anexos al paquete
IP

Ejemplos

Mayor informacion: RFC790 > RFC1700, RFC791


http://tools.ietf.org/html/

de la muestra
Modificando el tamano
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

El numero
de bytes capturados por default es solo una

parte del total de la trama. Recordemos que el MTU de


ethernet es de 1500 bytes, si a esto le agregamos los 14
bytes que ocupa el encabezado de la trama ethernet, nos

da un total de 1514 bytes, que sera el parametro


del
de la muestra para capturar todo el PDU de IP.
tamano
comando: tcpdump -s 1514 -x

Examinando el encabezado de la trama


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP

tcpdump -e
09:51:54.186987 00:0b:cd:35:87:3b (oui Unknown) > 00:0e:0c:73:ac:9c (oui Unknown),
ethertype IPv4 (0x0800), length 98: djeheuty.ual.mx > mtorres.admvo.ual.mx:
ICMP echo request, id 27156, seq 41, length 64

Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

Si se requiere examinar a nivel encabezado de la trama, se


e, debe notarse que la informacion
que se
utiliza la opcion
obtiene solamente corresponde al encabezado de la trama,
si se requiere revisar la trama completa (nivel capa 2) sera
necesario utilizar otra utilera.

Campos de longitud del encabezado de IP


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz

4bit
version

4bit
IHL

16bit Numero de identificacion IP


Agenda

Introduccion
Salida hexadecimal

8bit TTL

16bit Longitud total de PDU IP

8bit TOS

8bit Protocolo

3bit
13bits Longitud (offset) fragmentos
banderas

16bits Validacion de integridad(checksum)


del encabezado

32bits Direccion IP fuente

Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

32bits Direccion IP destino


24bits Opciones de IP

8bits padding

hay que
Cuando se analiza un paquete de informacion,
obtener puntos de referencia para comprender los datos
mostrados en hexadecimal. Es importante averiguar
del encabezado de ip para continuar con
siempre el tamano

el analisis
de la siguiente parte del paquete.
IHL 4 para convertir a bytes; longitud total en bytes; offset 8 para convertir en bytes

Opciones IP
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Total de paquete

Agenda

IHL 7x4=28bytes

icmp

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

Source
IP

13:32:53.468284 IP djeheuty.ual.mx > 200.23.64.1: ICMP echo request, id 39198, seq 9, length 20
0x0000: 4700 0030 9927 0000 0201 33f8 94f5 b519
0x0010: c817 4001 0183 0704 84f8 0a07 0800 42f1
0x0020: 991e 0009 0903 0000 e57a cb45 5b23 0700
padding
Dest.
IP

Opciones

Observamos un datagrama con las opciones de IP, la


longitud del encabezado es mayor al estandar de 20 bytes.
Observe el valor en hexadecimal del IHL, en total 28 bytes.

de IP/Longitud total
Fragmentacion
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

15:47:15.331703 IP djeheuty.ual.mx > ual.mx: icmp


Long. del datagrama:
0x0000: 4500 05dc 4dbb 3ce8 4001 c656 94f5 b519
05dc=1500
0x0010: c817 1201 3839 3a3b 3c3d 3e3f 4041 4243
0x0020: 4445 4647 4849 4a4b 4c4d 4e4f 5051 5253
0x0030: 5455 5657 5859 5a5b 5c5d 5e5f 6061 6263
0x0040: 6465 6667 6869 6a6b 6c6d 6e6f 7071 7273
0x0050: 7475
15:47:15.416514 IP ual.mx > djeheuty.ual.mx: ICMP echo reply, id 25114, seq 12, length 1480
0x0000: 4500 05dc 5c9c 2000 fc01 185d c817 1201
0x0010: 94f5 b519 0000 7b76 621a 000c 639a cb45
El offset es medido en
0x0020: f7fe 0400 0809 0a0b 0c0d 0e0f 1011 1213
unidades de 8 bytes (64 bits)
0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
0x0050: 3435
15:47:15.417819 IP ual.mx > djeheuty.ual.mx: icmp
0x0000: 4500 05dc 5c9c 20b9 fc01 17a4 c817 1201
0x0010: 94f5 b519 c0c1 c2c3 c4c5 c6c7 c8c9 cacb
0x0020: cccd cecf d0d1 d2d3 d4d5 d6d7 d8d9 dadb
0x0030: dcdd dedf e0e1 e2e3 e4e5 e6e7 e8e9 eaeb
0x0040: eced eeef f0f1 f2f3 f4f5 f6f7 f8f9 fafb
0x0050: fcfd
?
Banderas
0

D
F

M (DF) 0 = May Fragment, 1 = Dont Fragment.


F (MF) 0 = Last Fragment, 1 = More Fragments.

Campos de TCP
a
Introduccion
TCPDUMP

32 bits numero de secuencia


32 bits numero de confirmacion

Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

16bits Puerto destino

16bits Puerto fuente

J. Carlos

Rojas Munoz

4bit
HL

6bits reservado

U
R
G

A
C
K

P
S
H

R
S
T

S
Y
N

F
I
N

16bits checksum

16bits Tamao de ventana


16bits apuntador de urgente

24bits Opciones (de existir)

Filtros con
TCPDUMP

8bits relleno

Datos

Analisis

basicos

....

Ejemplos

Otro campo de longitud de encabezados importante es el de un encabezado de TCP, este


puede tener
tambien
suele ser de 20 bytes. Esta longitud es semejante a la del datagrama de
opciones de IP y ademas
IP, ya que esta expresada en palabras de 32 bits, por lo que el valor obtenido debera ser multiplicado por 4
en bytes. La longitud del encabezado de TCP se encuentra en el nibble mas

para obtener el tamano


significativo del 12vo Byte.

Campos de UDP
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal

16bits Puerto fuente

16bits Puerto destino

Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

16bits checksum

16bits longitud de mensaje


Datos
....

Una captura con TCP


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

comando: tcpdump -x host djeheuty.ual.mx >


test tcpdump.txt
comando: ssh crojas@200.23.18.1
comando: netstat -puta

Pasos para examinar un datagrama en


hexadecimal
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion

Identificar el protocolo embebido en el paquete


(encontrado en el byte 9 del encabezado de IP)

Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

Determinar el tipo de encabezado/datos que sigue al


encabezado de IP
Identificar donde termina el (los) encabezado (s)
Examinar la longitud del encabezado de IP
Identificar donde comienza el protocolo embebido
Examinar la longitud del protocolo embebido
Indicar el comienzo de los datos

Opciones adicionales de tcpdump


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

comunes
Estas opciones adicionales son las mas
cuando se utiliza esta herramienta

Si desea saber mas de los parametros


de tcpdump,
de
consulte el man disponible en cualquier version
GNU/Linux
Para escribir la salida en binario de tcpdump a un
archivo utilice:
tcpdump -w <nombre de archivo>
Para leer la salida de in archivo utilice:
tcpdump -r <nombre de archivo>
La salida de tcpdump escrita a un archivo binario
puede ser utilizada por otros programas, como ethereal
(wireshark) o snort.

Filtrando datos de captura


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

En ocasiones los filtros para tcpdump pueden llegar a ser


algo extensos, lo cual puede hacer que escribirlos en la

lnea de comando no sea muy practico,


sobre todo si se

ejecutan regularmente. Se puede utilizar la siguiente opcion


para leer un filtro de tcpdump de un archivo.
Por ejemplo:
tcpdump (src host 148.245.181.25 and dst host 148.245.181.2 and dst port 25) or (src host 148.245.181.2
and src port 25 and dst host 148.245.181.25) and not port 22

Este filtro podra guardarse en un archivo (sin utilizar las


como caracteres de escape) mail.filter y utilizar el comando:
tcpdump -F /ruta/hacia/mail.filter

Deshabilitando el modo promiscuo


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion

En ocasiones requerimos unicamente


informaci]on del host

en el que estamos trabajando, no de toda la red, por lo que


no se necesita el modo promiscuo inherente a un sniffer.
Para deshabilitarlo se utiliza el parametro:

Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

tcpdump -p

Un ejemplo muy claro de la utilidad de este parametro


es

cuando se realiza un diagnostico


del firewall instalado, en el
cual se tiene configurada una regla que registre toos los
accesos no permitidos, al estar la interface en modo

promiscuo, el firewall registrara en la bitacora


todos los
paquetes que escuche por su interfaz, lo cual generara un

exceso de lneas o bitacoras,


muchas veces indeseable.

de nombres y
Deshabilitando la resolucion
servicios
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal

Es normal que tcpdump pueda capturar paquetes mucho


rapido

mas
que lo que puede resolver los nombres de los
hosts que analiza. Por lo cual se recomienda no utilizar la

resolucion de nombres automatica


que hace tcpdump. Para
esto utilice:

Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

tcpdump -n
se puede dar el caso de que se este
Ademas
diagnosticando la conectividad de un puerto que
casualmente resuelva a uno encontrado en /etc/services, lo

completo. Puede
que impide realizar un diagnostico
mas
del puerto utilizando:
deshabilitar la resolucion
tcpdump -nn

Cambiando la interface
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Cuando se ejecuta tcpdump, este


elige la interface en
la que va a escuchar, considerando el siguiente criterio:

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

(eth 0)
La de menor numeracion
Que la interface se encuentre en up
Se excluye la interface loopback

Se pueden obtener las interfaces de su equipo


utilizando el comando:
ifconfig -a
Posteriormente se elige la interface con el comando:
tcpdump -i ppp0

Filtros con tcpdump


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

como BPF
Los filtros de tcpdump, conocidos tambien
(Berkeley Packet Filter), son necesarios para capturar o leer
de manera especfica. Muchas veces se
informacion
con ciertas caractersticas. Esto
necesitara leer informacion
se logra mediante los filtros de tcpdump. Por ejemplo,
imaginemos que se observo un escaneo a un puerto

importante sera saber


especfico de TCP, un analisis
mas
que servidores contestaron a ese escaneo, esto se podra
lograr con un filtro que observara las banderas Syn y Ack
de los paquetes.

Comprendiendo los filtros de tcpdump


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal

para seleccionar los


Se especifica el objeto de interes
registros
Cualquier campo del datagrama de IP

Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

Ejemplos, longitud de campo o banderas de TCP


usados
Macros para los campos mas
Ejemplos, port o host

Para los campos menos usados:


Identifique el protocolo
Identifique el desplazamiento del byte
Ejemplos, ip[0], tcp[13]

Formato de los filtros de tcpdump


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz

Los dos tipos de formatos para tcpdump son:


Agenda
<encabezado de protocolo> [offset:longitud] <relacion> <valor>

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

ip[9] = 1
tcp[2:2] < 20
udp[6:2] = 0
icmp[0] = 8
<macro><valor>

port 23
dst host 1.2.3.4
src net 0

Fundamentos bit/byte
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

pequena
unidad que puede ser manejada
El bit es la mas
por una computadora, puede ser 0 o 1. Un byte esta
compuesto de 8 bits. La cuenta de bytes comienza de 0.
Los filtros de tcpdump no tienen una forma sencilla de
representar un bit o multiples
bits de un paquete. Para esto

aislar esos bits de los otros del byte. Esto se


se deberan
logra combinando los caracteres hexadecimales, usando el

operador booleando AND y mascaras


de bits.
Se puede definir un rango de bytes: udp[0:2]
pequena
precision
de tcpdump es de un byte
La mas

El problema: busando un campo menor a 1


byte
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal

Requerimos conocer unicamente


el campo de longitud del

encabezado. NO existe forma directa de realizar este


filtrado, sin embargo, podemos hacer unas operaciones
para eliminar los bits que no necesitamos.
Esquema del primer byte:

Campos de IP
Campos de TCP y
UDP

4-bits version

4-bits I.H.L.

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

IP:
Valor actual de la version
0

IP:
Valor deseado en la version
0

AND los bits no deseados con 0,


Solucion:
los deseados con 1
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz

IP:
Valor actual de la version
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

0
0
0

1
0
0

0
0
0

0
0
0

0
1
0

1
1
1

0
1
0

valor del byte: 0x45

valor de la mascara:
0x0F
valor esperado: 0x05
Aplicando comando tcpdump: ip[0] & 0x0f

1
1
1

Bits de banderas de TCP


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos

En la practica,
se encontrara con que es comun
examinar
paquetes en busca de estos campos.
Localizados en el encabezado de TCP
Determina cual es el estado de un segmento de TCP
dado
Usualmente se examina este campo aplicando filtros.
Este campo se encuentra en tcp[13]

Ejemplos

CWR

ECE

URG

ACK

PSH

RST

SYN

FIN

Analisis
basico
de trafico
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Examinar e interpretar los campos de un datagrama de


IP

Filtros con
TCPDUMP

Cuales son los valores normales y de comportamiento


para un datagrama de IP?

Analisis

basicos

Como y porque pueden ser afectados estos valores?

Ejemplos

Porque se cocinan paquetes?


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

Para intentar identificar el sistema operativo remoto


(fingerprinting)
Eludir un detector de intrusos: Si el atacante intenta
para un ataque futuro, por que no
obtener informacion
hacerlo y de paso evitar ser visto por un dector de

intrusos? (insercion/evasi
on)
Enviar mensajes o crear canales ocultos para transferir

informacion
Provocar que un servidor activo genere una respuesta
para identificarlo: Si no se puede detectar un servidor
activo de una manera normal (con pings por ejemplo),
se pueden utilizar formas menos convencionales de
mapear al servidor. Algunos de estos ataques incluyen

enviar trafico
al destino y esperar un mensaje de error
donde se indique que esta trabajando.

Como se cocinan los paquetes?


a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

Normalmente, un datagrama de IP es armado por las


capas del stack de TCP/IP
Existen diferentes formas de armar un paquete
de aplicaciones (API)
Interfaces de programacion
Sockets de Unix, GNU/Linux
Interfaz Libnet

Herramientas
Nmap
Hping2
ISIC

nmap
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

de red y escaneador de
Herramienta de exploracion
seguridad
Examina redes y equipos para determinar:
Equipos activos
Servicios trabajando en los equipos
Sistema operativo funcionando en los equipos
sofisticadas disponibles para escanear remotamente un servidor. Utilizando
Es una de las herramientas mas

Analisis

basicos

cubiertas y canales ocultos, se puede analizar una red en busca de servidores funcionando, que servicios

Ejemplos

para identificar el sistema operativo del servidor remoto. Nmap tiene


estan corriendo y enviar informacion
opciones para modificar su comportamiento, puede escanear en modo oculto para evitar ser detectado o
puede enviar trafico

llamar la atencion,
como senuelo,
de tal forma, que cuando escanea o lanza trafico
a
inventada, el servidor o red destino no podra saber con exactitud desde donde

servidores, con una direccion

vino el trafico
enviado.

hping2
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos

Herramienta de red capaz de enviar trafico


personalizado de ICMP/UDP/TCP y mostrar las
respuestas del objetivo
Puede ser utilizado para probar reglas de firewall
Escanear puertos de servidores
de una red
Probar el desempeno
Hping2 tiene diferentes funciones a las de Nmap. Hping2 puede generar campos que nmap no permite.
Algunas de sus capacidades:

Ejemplos

Enviar direcciones IP origen erroneas

Definir el puerto fuente

Definir el TTL inicial

de la ventana
Definir el tamano

Fragmentar paquetes

Enviar datos en transmisiones de TCP

Establecer cualquier bandera de TCP


Definir el campo de TOS
Se pueden generar cadenas completas de paquetes usando hping2 desde scripts en perl o shell

ISIC
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

de esta herramienta es probar la


La intencion
integridad del stack de IP y sus componentes (TCP,
UDP, ICMP)
Suite de herramientas isic, tcpsic, udpsic, icmpsic
Comprueba la capacidad de un firewall de bloquear
valores inusuales en paquetes
de un IDS
Prueba la habilidad de deteccion

Ejemplos
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

origen sea la
Capturar el trafico
cuya direccion
192.168.3.24
tcpdump src host 192.168.3.24

sea 192.168.3.25
Capturar el trafico
cuya direccion
tcpdump host 192.168.3.25
Capturar el trfico con destino a la direccin ethernet
0:2:a5:ee:ec:10
tcpdump ether dst 0:2:a5:ee:ec:10
Capturar el trfico que vaya a la mquina cuya direccin
MAC es 0:2:a5:ee:ec:10.
tcpdump ether host 0:2:a5:ee:ec:10
Capturar todo el trfico cuya red destino sea
192.168.1.0.
tcpdump dst net 192.168.1.0

a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

Capturar todo el trfico cuya red origen sea


192.168.1.0/28
tcpdump src net 192.168.1.0 mask 255.255.255.240
tcpdump src net 192.168.1.0/28
Capturar todo el trfico con destino al puerto 23
tcpdump dst port 23
Capturar todo el trfico Web (TCP port 80)
tcpdump tcp and port 80
Capturar el todas las peticiones DNS
tcpdump udp and dst port 53
Capturar el trfico al puerto telnet o ssh
tcpdump tcp and \(port 22 or port 23\)

Y estos???
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

tcpdump -qn -X -s 0 tcp[13] = 2 and port 110

Y estos???
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

tcpdump -qn -X -s 0 tcp[13] = 2 and port 110


las lneas ademas
son
-q Devuelve menos informacion,
mas cortas

Y estos???
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

tcpdump -qn -X -s 0 tcp[13] = 2 and port 110


las lneas ademas
son
-q Devuelve menos informacion,
mas cortas
-n No resuelve nombres de host

Y estos???
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

tcpdump -qn -X -s 0 tcp[13] = 2 and port 110


las lneas ademas
son
-q Devuelve menos informacion,
mas cortas
-n No resuelve nombres de host
-X Imprime en consola, puede o no ir esta opcion

Y estos???
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

tcpdump -qn -X -s 0 tcp[13] = 2 and port 110


las lneas ademas
son
-q Devuelve menos informacion,
mas cortas
-n No resuelve nombres de host
-X Imprime en consola, puede o no ir esta opcion
del paquete (snaplen), 0 para que capture
-s 0 Tamano
todo, si s=512, solo captura los primeros 512 bytes del
paquete

Y estos???
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

tcpdump -qn -X -s 0 tcp[13] = 2 and port 110


las lneas ademas
son
-q Devuelve menos informacion,
mas cortas
-n No resuelve nombres de host
-X Imprime en consola, puede o no ir esta opcion
del paquete (snaplen), 0 para que capture
-s 0 Tamano
todo, si s=512, solo captura los primeros 512 bytes del
paquete
tcp[13]=2 Captura los paquetes de tcp cuyo indicador o
bandera sea SYN.

Y estos???
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

tcpdump -qn -X -s 0 tcp[13] = 2 and port 110


las lneas ademas
son
-q Devuelve menos informacion,
mas cortas
-n No resuelve nombres de host
-X Imprime en consola, puede o no ir esta opcion
del paquete (snaplen), 0 para que capture
-s 0 Tamano
todo, si s=512, solo captura los primeros 512 bytes del
paquete
tcp[13]=2 Captura los paquetes de tcp cuyo indicador o
bandera sea SYN.
and port 110 Analiza peticiones al puerto 110

Y estos???
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

tcpdump -qn -X -s 0 tcp[13] = 2 and port 110


las lneas ademas
son
-q Devuelve menos informacion,
mas cortas
-n No resuelve nombres de host
-X Imprime en consola, puede o no ir esta opcion
del paquete (snaplen), 0 para que capture
-s 0 Tamano
todo, si s=512, solo captura los primeros 512 bytes del
paquete
tcp[13]=2 Captura los paquetes de tcp cuyo indicador o
bandera sea SYN.
and port 110 Analiza peticiones al puerto 110
Este filtro nos permite ver la carga del servidor de correo
electronico, es decir, nos muestra todas las peticiones de
al puerto 110
conexion

Referencias
a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Analisis
de trafico
de red utilizando tcpdump UNAM

Introduccion

RFC 793 (TCPv4)

Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

RFC 791 (IP)


RFC 768 (UDP)
RFC 826 (ARP)
RFC 792 (ICMPv4)

Aprendiendo a programar con libcap, Alejandro lopez


Mongue, febrero de 2005

a
Introduccion
TCPDUMP
J. Carlos

Rojas Munoz
Agenda

Introduccion
Salida hexadecimal
Campos de IP
Campos de TCP y
UDP

Filtros con
TCPDUMP

Analisis

basicos
Ejemplos

Gracias!!!
crojas@ual.mx

Вам также может понравиться