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.