Capturar un puerto

Captura el tráfico de un puerto: la respuesta más fiable a la pregunta de si llegan paquetes.

SMTP (25)

PowerShell (Windows)

pktmon Integrado

pktmon filter remove
pktmon filter add -p 25
pktmon start --capture --pkt-size 0 -f capture.etl
# ... reproduzieren, dann:
pktmon stop
pktmon etl2txt capture.etl -o capture.txt

tcpdump (WSL/Npcap) Herramienta adicional

tcpdump -i eth0 -n -c 200 port 25

Shell de Unix (bash)

tcpdump Integrado

tcpdump -i eth0 -nn -c 200 port 25

tshark Herramienta adicional

tshark -i eth0 -c 200 -f "port 25"

Submission (587)

PowerShell (Windows)

pktmon Integrado

pktmon filter remove
pktmon filter add -p 587
pktmon start --capture --pkt-size 0 -f capture.etl
# ... reproduzieren, dann:
pktmon stop
pktmon etl2txt capture.etl -o capture.txt

tcpdump (WSL/Npcap) Herramienta adicional

tcpdump -i eth0 -n -c 200 port 587

Shell de Unix (bash)

tcpdump Integrado

tcpdump -i eth0 -nn -c 200 port 587

tshark Herramienta adicional

tshark -i eth0 -c 200 -f "port 587"

pktmon viene con Windows 10/Server 2019 y posteriores y requiere una sesión de administrador. En Linux, tcpdump requiere root o la capacidad CAP_NET_RAW.

Capturar un interlocutor

Captura solo el tráfico hacia un interlocutor, independientemente del puerto.

PowerShell (Windows)

netsh trace Integrado

netsh trace start capture=yes tracefile=C:\temp\trace.etl maxsize=200 Ethernet.Type=IPv4 IPv4.Address=mail.example.com
# ... reproduzieren, dann:
netsh trace stop

tcpdump (WSL/Npcap) Herramienta adicional

tcpdump -i eth0 -nn -c 200 host mail.example.com

Shell de Unix (bash)

tcpdump Integrado

tcpdump -i eth0 -nn -c 200 host mail.example.com

tshark Herramienta adicional

tshark -i eth0 -c 200 -f "host mail.example.com"

netsh trace escribe un archivo ETL que puede abrir en Microsoft Network Monitor, o en Wireshark tras convertirlo.

Leer el diálogo SMTP

Muestra la conversación SMTP en texto claro: comandos, códigos de respuesta y mensajes de error del interlocutor.

PowerShell (Windows)

pktmon Integrado

pktmon filter remove
pktmon filter add -p 25
pktmon start --capture --pkt-size 0 -f smtp.etl
# ... reproduzieren, dann: pktmon stop; pktmon etl2txt smtp.etl -o smtp.txt

tcpdump (WSL/Npcap) Herramienta adicional

tcpdump -i eth0 -nn -A -s 0 port 25

Shell de Unix (bash)

tcpdump Integrado

tcpdump -i eth0 -nn -A -s 0 port 25

tshark Herramienta adicional

tshark -i eth0 -Y smtp -T fields -e smtp.req.command -e smtp.req.parameter -e smtp.rsp.code

Solo funciona sin cifrado (puerto 25 sin STARTTLS). En cuanto entra TLS, el contenido va cifrado y solo queda visible el handshake.

Capturar en un archivo

Escribe la captura en un archivo para analizarla más tarde (por ejemplo en Wireshark).

PowerShell (Windows)

pktmon Integrado

pktmon filter remove
pktmon filter add -p 25
pktmon start --capture --pkt-size 0 -f capture.etl
# ... reproduzieren, dann: pktmon stop
pktmon pcapng capture.etl -o capture.pcapng

tcpdump (WSL/Npcap) Herramienta adicional

tcpdump -i eth0 -nn -s 0 -w capture.pcap port 25

Shell de Unix (bash)

tcpdump Integrado

tcpdump -i eth0 -nn -s 0 -w capture.pcap port 25
tcpdump -r capture.pcap -nn | head -50

tshark Herramienta adicional

tshark -i eth0 -w capture.pcap -f "port 25"

pktmon escribe en formato ETL y puede convertirlo con "pktmon pcapng" a un formato que Wireshark lee.

Conexiones abiertas

Muestra las conexiones establecidas con un interlocutor junto con el proceso: una alternativa rápida cuando no es posible capturar.

PowerShell (Windows)

Get-NetTCPConnection Integrado

Get-NetTCPConnection -RemoteAddress (Resolve-DnsName mail.example.com -Type A).IPAddress -ErrorAction SilentlyContinue |
  Select-Object LocalPort, RemoteAddress, RemotePort, State, OwningProcess

netstat Integrado

netstat -ano | findstr ESTABLISHED

Shell de Unix (bash)

ss Integrado

ss -tnp state established "dst mail.example.com"

lsof Herramienta adicional

lsof -nP -iTCP -sTCP:ESTABLISHED | grep mail.example.com

Otras áreas