← Blog

Wireshark — Filtros de Display para Análisis de Tráfico

Filtros de visualización en Wireshark: tráfico por protocolo y puerto, segmentos LAN con CIDR, filtrado por IPs (ip.addr vs ip.src/ip.dst) y exclusión de hosts.

1. Operational Scope & Technical Objective

Wireshark es el analizador de tráfico de referencia. Los display filters no descartan tráfico (como los capture filters), sino que filtran la vista sobre la captura ya grabada: permiten aislar protocolos, pares de IPs, puertos o segmentos de red en un pcap grande. La diferencia sutil y crítica es la semántica de ip.addr (mata a cualquier lado de la conversación) frente a ip.src/ip.dst (dirección concreta). Dominar estos filtros es lo que convierte una captura enorme en la conversación exacta que se busca.

2. High-Impact Syntax & Command Cheatsheet

# Solo SMTP (puerto 25) e ICMP
tcp.port eq 25 or icmp

# Solo tráfico LAN (192.168.x.x) entre equipos internos, sin internet
ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16

# Un protocolo (SIP) y excluir IPs no deseadas
ip.src != xxx.xxx.xxx.xxx && ip.dst != xxx.xxx.xxx.xxx && sip

# Equivalencias importantes
ip.addr == xxx.xxx.xxx.xxx
#   equivale a:
ip.src == xxx.xxx.xxx.xxx or ip.dst == xxx.xxx.xxx.xxx

ip.addr != xxx.xxx.xxx.xxx
#   equivale a:
ip.src != xxx.xxx.xxx.xxx or ip.dst != xxx.xxx.xxx.xxx
#   OJO: ip.addr != X NO significa "ninguno de los dos extremos es X";
#   significa "src no es X O dst no es X" (casi siempre incluye paquetes no deseados).
#   Para excluir un host de la conversación: ip.src != X and ip.dst != X

Filtros de alto impacto adicionales

http.request or tls.handshake.type == 1     # peticiones HTTP y handshakes TLS
tcp.flags.syn == 1 and tcp.flags.ack == 0   # SYN (inicio de conexión)
http contains "password"                    # busca el string en payloads HTTP
frame contains "admin"                      # string en cualquier capa

3. Real-World Offensive/Defensive Scenarios

Aislamiento de credenciales en claro. http.request + http contains "password" localiza envíos de credenciales por HTTP; filtrando tcp.port eq 25 or icmp se revisa el e-mail y el ping antes de sumergirse en el resto del pcap.

Segmentación de una conversación. Para seguir a una pareja de hosts en una captura ruidosa, ip.addr == <IP-A> and ip.addr == <IP-B> (mata en cualquier extremo) muestra toda su comunicación; si interesa la dirección exacta, ip.src/ip.dst la concretan.

Defensa (triage de incidente). En un pcap de incidente, tcp.flags.syn == 1 and tcp.flags.ack == 0 identifica los escaneos (ráfagas de SYN sin ACK hacia un host), y la exclusión correcta ip.src != <host-limpió> and ip.dst != <host-limpió> descarta el tráfico de fondo manteniendo la conversación sospechosa íntegra. El error de semántica con ip.addr != es una trampa conocida: usarlo para "quitar" una IP no excluye esa IP, por eso la forma correcta es la doble negación con and.