WireShark: Analizador de protocolos#

Es un programa que permite capturar el tráfico de red utilizando una interfaz gráfica. WireShark permite analizar protocolos de red, filtrar y seleccionar paquetes para análisis.

Warning

  • WireShark soporta los formatos PCAP y PCAP-NG
  • En esta clase nos enfocamos en el formato PCAP porque tcpdump puede leerlo

Instalación de WireShark#

Utilizar el gestor de paquetes para instalar wireshark

root@debian:~# apt install wireshark

Agregar al usuario al grupo wireshark y reiniciar el equipo

root@debian:~# usermod -aG wireshark tonejito
root@debian:~# reboot

Verificar que el usuario tenga el grupo suplementario wireshark

root@debian:~# getent group wireshark
wireshark:x:123:tonejito
tonejito@debian:~$ groups
users cdrom floppy sudo audio dip video plugdev netdev bluetooth lpadmin scanner vboxsf wireshark

Interfaces de red#

Configuración en VirtualBox#

Interfaces de red en la máquina virtual#

La máquina virtual tiene tres interfaces de red

lo
  • Interfaz loopback
  • Se utiliza para el tráfico local de la máquina
tonejito@debian:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever

	...	...	...
eth0
  • Interfaz conectada a la red NAT
  • Tiene el cable conectado
  • Es la única interfaz de red activa
tonejito@debian:~$ ip addr

	...	...	...

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:2e:63:f9 brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute eth0
       valid_lft 81656sec preferred_lft 81656sec
    inet6 fd17:625c:f037:2:ba98:b785:e4c6:2be5/64 scope global temporary dynamic
       valid_lft 86353sec preferred_lft 14353sec
    inet6 fd17:625c:f037:2:8ef5:f7ed:7e25:7bd/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 86353sec preferred_lft 14353sec
    inet6 fe80::f295:d9cf:b9fe:54b0/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

	...	...	...
eth1
  • Interfaz conectada a la red host-only
  • Tiene el cable desconectado, así que se ignora
tonejito@debian:~$ ip addr

	...	...	...

3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 08:00:27:2e:64:f9 brd ff:ff:ff:ff:ff:ff
    altname enp0s8

Modo promiscuo#

El "modo promiscuo" de una interfaz de red permite que el sistema operativo procese las tramas, aunque no sean dirigidos a este equipo.

Este modo es de bastante utilidad cuando se realizan capturas de tráfico de red.

Warning

Reemplaza ${IFACE} con el nombre de tu interfaz de red (por ejemplo eth0)

root@debian:~# ip link set "${IFACE}" up promisc on

Conexión a Internet#

Se puede verificar la conexión a internet con los siguientes comandos

  • ping / ping6
  • traceroute / traceroute6
  • nslookup / dig
  • ncat / netcat
  • openssl s_client
  • wget / curl

Uso de WireShark#

Abrir WireShark#

Es posible invocar WireShark de dos maneras

  1. Invocar el programa desde el menú de aplicaciones
  2. Ejecutar en la terminal el comando wireshark (con minúsculas)
Ejecutar WireShark desde el menú de aplicaciones

Interfaz gráfica#

Al abrir WireShark se presenta una interfaz para seleccionar la interfaz de red en la cual se desea capturar el tráfico

Warning

  • Selecciona la interfaz conectada a tu red NAT
  • En este ejemplo se utiliza la interfaz eth0

Filtro de captura#

En esta ventana también se puede especificar un filtro de captura para limitar los paquetes que captura WireShark

Note

Los filtros de captura son compatibles con tcpdump, tshark y otras herramientas basadas en libpcap

Iniciar la captura sin filtro de captura
Especificar un filtro de captura

Warning

Dar doble clic en el nombre de la interfaz para iniciar la captura de paquetes

Capturando y visualizando tráfico de red#

La ventana de captura y análisis de protocolos está dividida en tres paneles

  1. Lista de paquetes
  2. Detalles del paquete
  3. Vista de bytes del paquete ("en crudo")

Cada protocolo de red se resalta de un color diferente y se pueden expandir los detalles de encapsulación para visualizar los parámetros específicos de una trama, un datagrama o un paquete

Filtros de despliegue#

Se pueden establecer filtros de despliegue para visualizar únicamente algunos paquetes o datagramas asociados a un protocolo específico

Filtro de despliegue para el protocolo ARP
Filtro de despliegue para el protocolo DHCP
Filtro de despliegue para el protocolo DNS
Filtro de despliegue para el protocolo HTTP
Filtro de despliegue para el tráfico de red del puerto 80 TCP
Filtro de despliegue para el protocolo IPv6

Detener la captura de tráfico#

Presiona el botón STOP para detener la captura de tráfico

Note

Esto no guarda la captura, únicamente deja de capturar paquetes

Guardar la captura de tráfico en formato PCAP#

Una vez detenida la captura de tráfico, accede al menú para guardar la captura

Navega a la carpeta deseada

Selecciona el format PCAP

Warning

  • WireShark soporta los formatos PCAP y PCAP-NG
  • En esta clase nos enfocamos en el formato PCAP porque tcpdump puede leerlo

Asegúrate de no activar la casilla de gzip

Verifica que tu captura de tráfico esté guardada

Guardando los paquetes seleccionados con un filtro de despliegue#

Escribe el filtro de despliegue en el campo para limitar los paquetes que se muestran en la interfaz

Accede al menú para exportar los paquetes especificados

Establece los parámetros para guardar en formato PCAP sin comprimir con GZIP

  • Selecciona All packets y Displayed para guardar los paquetes que se muestran con tu filtro de despliegue

Note

Asegúrate de no activar la casilla de gzip

Verifica que tu captura de tráfico esté guardada


tcpdump#

Es un programa que permite capturar tráfico de red utilizando la línea de comandos. Permite visualizar los paquetes que son capturados y soporta imprimir el contenido de capturas de tráfico en formato PCAP.

Warning

  • El programa tcpdump sólo soporta el formato PCAP
  • En esta clase nos enfocamos en el formato PCAP

Instalación de tcpdump#

Utilizar el gestor de paquetes para instalar tcpdump

root@debian:~# apt install tcpdump

Convertir captura PCAP a TEXTO#

Convierte manualmente el

Obtén manualmente la representación en TEXTO de la captura de tráfico en formato PCAP:

tonejito@debian:~$ tcpdump -envvvXXr captura.pcap |& tee captura.pcap.txt

Convertir PCAP a TEXTO utilizando el script#

Utiliza el script convierte-captura.sh para obtener la representación en TEXTO de tu captura en formato PCAP:

tonejito@debian:~$ ./convierte-captura.sh captura-arp.pcap

touch "${TEXT_FILE}"
+ touch captura-arp.pcap.txt

truncate --size=0 "${TEXT_FILE}"
+ truncate --size=0 captura-arp.pcap.txt

tcpdump -envvvXXr "${PCAP_FILE}" |& tee "${TEXT_FILE}"
+ tcpdump -envvvXXr captura-arp.pcap
+ tee captura-arp.pcap.txt
reading from file captura-arp.pcap, link-type EN10MB (Ethernet), snapshot length 262144
21:59:01.822644 08:00:27:2e:63:f9 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.2.15 tell 10.0.2.15, length 28
	0x0000:  ffff ffff ffff 0800 272e 63f9 0806 0001  ........'.c.....
	0x0010:  0800 0604 0001 0800 272e 63f9 0a00 020f  ........'.c.....
	0x0020:  0000 0000 0000 0a00 020f                 ..........

	...	...	...

ls -lArt "${PCAP_FILE}" "${TEXT_FILE}"
+ ls -lArt captura-arp.pcap captura-arp.pcap.txt
-rwxr-x--- 1 tonejito users 1302 Nov 26 22:54 captura-arp.pcap
-rw-r--r-- 1 tonejito users 7724 Nov 26 23:18 captura-arp.pcap.txt

file "${PCAP_FILE}" "${TEXT_FILE}" || true
+ file captura-arp.pcap captura-arp.pcap.txt
captura-arp.pcap:     pcap capture file, microsecond ts (little-endian) - version 2.4 (Ethernet, capture length 262144)
captura-arp.pcap.txt: ASCII text

Referencias#

Sitio web de WireShark

Wiki de WireShark

Documentación

Páginas de manual

Filtros de captura

Filtros de despliegue

Referencia de filtros de despliegue

Lista de reproducción con videos sobre WireShark elaborada por HackerSploit