Wireshark es el analizador de protocolos de red más utilizado. Permite capturar y analizar tráfico en tiempo real, inspeccionar paquetes y detectar anomalías o credenciales en claro.
# Captura desde terminal con tshark (CLI de Wireshark):
tshark -i eth0
# Capturar y guardar en archivo .pcap:
tshark -i eth0 -w captura.pcap
# Leer un archivo .pcap:
tshark -r captura.pcap
# Capturar solo N paquetes:
tshark -i eth0 -c 100
Se aplican antes de capturar — reducen el volumen de datos:
# Solo tráfico HTTP:
tshark -i eth0 -f "port 80"
# Solo tráfico hacia/desde una IP:
tshark -i eth0 -f "host 192.168.1.10"
# Solo TCP:
tshark -i eth0 -f "tcp"
# Rango de puertos:
tshark -i eth0 -f "portrange 20-25"
Se aplican en Wireshark sobre capturas ya realizadas:
# Tráfico HTTP:
http
# Tráfico DNS:
dns
# Paquetes de una IP concreta:
ip.addr == 192.168.1.10
# Solo paquetes de origen:
ip.src == 192.168.1.10
# Puerto destino:
tcp.dstport == 443
# Protocolo FTP con credenciales:
ftp.request.command == "PASS"
# HTTP con credenciales en POST:
http.request.method == "POST"
# Buscar texto en el payload:
frame contains "password"
# Paquetes TCP SYN (inicio de conexión):
tcp.flags.syn == 1 and tcp.flags.ack == 0
# Credenciales FTP (en claro):
ftp.request.command == "USER" or ftp.request.command == "PASS"
# Credenciales Telnet:
telnet
# Credenciales HTTP Basic Auth:
http.authorization
# Cookies de sesión HTTP:
http.cookie
En Wireshark GUI: clic derecho en un paquete → Follow → TCP Stream
Reconstruye la conversación completa para ver el contenido de la sesión.
# Con tshark: seguir stream TCP 0:
tshark -r captura.pcap -q -z follow,tcp,ascii,0
# Estadísticas de protocolos:
tshark -r captura.pcap -q -z io,phs
# Conversaciones TCP:
tshark -r captura.pcap -q -z conv,tcp
# IPs que más tráfico generan:
tshark -r captura.pcap -q -z endpoints,ip
# Exports HTTP (archivos transmitidos):
# Wireshark GUI: File → Export Objects → HTTP
| Anomalía | Filtro Wireshark |
|---|---|
| Escaneo de puertos (SYN scan) | tcp.flags == 0x002 |
| ARP Spoofing | arp.duplicate-address-detected |
| Muchos RST (posible DoS) | tcp.flags.reset == 1 |
| Credenciales en claro | ftp or telnet or http |
| DNS tunneling | dns and frame.len > 512 |