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

console root@debian:~# apt install wireshark

Agregar al usuario al grupo wireshark y reiniciar el equipo

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

console root@debian:~# reboot

Verificar que el usuario tenga el grupo suplementario wireshark

console root@debian:~# getent group wireshark wireshark:x:123:tonejito

console 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

```console tonejito@debian:~$ ip addr 1: lo: 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

```console tonejito@debian:~$ ip addr

... ... ...

2: eth0: 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

```console tonejito@debian:~$ ip addr

... ... ...

3: eth1: 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)

console 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

console 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:

console 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:

```text 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