Use el comando tcpdump para capturar paquetes + ejemplos detallados

Usa tcpdumpel comando para capturar paquetes

¿Qué es el comando tcpdump?

  1. Tcpdump puede interceptar completamente el "encabezado" del paquete de datos transmitido en la red y proporcionar análisis. Admite el filtrado por capa de red, protocolo, host, red o puerto, y proporciona declaraciones lógicas como and, or, not para ayudarlo a eliminar información inútil.
  2. Tcpdump puede entenderse como un comando con la función de capturar paquetes.

cómo utilizar

El comando tcpdump es similar a otros comandos de Linux y debe usarse con parámetros para reflejar sus potentes funciones.

  1. tcpdump: habilitado de forma predeterminada, iniciar tcpdump directamente monitoreará todos los paquetes que fluyen en la primera interfaz de red.
  2. tcpdump -i eth1: -iPuede especificar una interfaz de red, anylo que significa monitorear todos los puertos de red.
  3. tcpdump host 210.27.48.1: Toma el paquete de datos de la IP especificada
    1. tcpdump src host 210.27.48.1
    2. tcpdump dst host 210.27.48.1
  4. tcpdump tcp port 23 and host 210.27.48.1: Tome los paquetes de datos del puerto especificado y la IP especificada
    1. tcpdump udp port 123
  5. tcpdump -i any tcp port 9080 -A -s 0
  6. tcpdump -i any tcp port 9100 -w data.capCapturar paquetes de puerto especificados para archivar

Introducción a los parámetros del comando tcpdump

  1. -A: Muestre cada paquete de datos en código ASCII (no se mostrará la información del encabezado de la capa de enlace en el paquete de datos). Al capturar paquetes de datos que contienen datos de páginas web, es conveniente ver los datos
  2. -c count: tcpdump saldrá después de recibir paquetes de conteo
  3. -d: Imprime el código de coincidencia del paquete formateado en la salida estándar en una forma legible por humanos, luego tcpdump se detiene
  4. -dd: Imprima el código de coincidencia del paquete en forma de lenguaje C
  5. -ddd: Imprime el código de coincidencia del paquete en formato decimal
  6. -e: La información del encabezado de la capa de enlace de datos del paquete se incluirá en la impresión de cada línea
  7. -i interface: Especifique la interfaz que tcpdump necesita monitorear
  8. -s snaplen: Establezca la longitud de captura de paquetes de tcpdump en snaplen, si no se establece, el valor predeterminado será 68 bytes (y el valor mínimo predeterminado en los sistemas operativos de la serie SunOS que admiten derivaciones de interfaz de red es 96). 68 bytes para IP, ICMP, TCP y Los paquetes del protocolo UDP son suficientes, pero para el servicio de nombres, los paquetes de datos relacionados con el servicio NFS provocarán el truncamiento del paquete. Si se produce el truncamiento del paquete, la línea impresa correspondiente de tcpdump aparecerá ''[ |proto]'' la capa de protocolo relevante del paquete de datos truncado). Cabe señalar que el uso de una longitud de captura larga (nt: snaplen es relativamente grande) aumentará el tiempo de procesamiento del paquete y reducirá la cantidad de paquetes de datos que tcpdump puede almacenar en caché , lo que conducirá a la pérdida de paquetes. Por lo tanto, bajo la premisa de que podemos capturar los paquetes que queremos, cuanto menor sea la longitud de captura, mejor. Establecer snaplen en 0 significa que tcpdump seleccione automáticamente la longitud adecuada para capturar paquetes
  9. -v: Al analizar e imprimir, generar resultados detallados. Por ejemplo, la vida útil del paquete, el identificador, la longitud total y algunas opciones de los paquetes IP. Esto también habilitará algunas verificaciones adicionales de la integridad del paquete, como la suma de verificación de encabezados de paquetes IP o ICMP de
  10. -vv: produce una salida más detallada que -v. Por ejemplo, se imprimirán campos adicionales en los paquetes de respuesta NFS y los paquetes SMB se decodificarán por completo.
  11. -vvv: produce una salida más detallada que -vv. Por ejemplo, se imprimirán las opciones SB y SE utilizadas por telnet, y si telnet usa una interfaz gráfica al mismo tiempo, las opciones gráficas correspondientes se imprimirán en hexadecimal
  12. -w fileName: Escriba los datos del paquete directamente en el archivo sin analizar ni imprimir la salida

Por qué

¡La captura de paquetes es un arma definitiva muy importante en la resolución de problemas!

ejemplo de referencia

Comando de captura de paquetes:

# 抓所有的网口的tcp 端口是8080的包
 tcpdump -i any tcp port 8080 -A -s 0
# 抓所有的网口 端口是514 的包
tcpdump -i any port 514 -nnnvvvv
#  抓包保存到本地文件 syslog.pcap,可放到wireshark分析
tcpdump -i any port 514 -s0 -w./syslog.pcap -nnnvvvv   
# 抓取ping包【ping包即ICMP的包】
tcpdump -i any icmp and  host 192.168.1.1 -nn -vvv
# 抓取ip是 192.168.1.1的包
tcpdump -i any host  192.168.1.1 -nn -vvv
# 抓取ip是 192.168.1.1 或者端口是2500的包
tcpdump -i any host 192.168.1.1 or udp port 2500 -nn -vvv
# 抓所有的网口udp 端口是4500 的包
 tcpdump -i any udp port 4500 -nn -vvv

any Captura todos los puertos de red, incluido el puerto localhost
-A character
-s 0 Sin restricciones
tcpdump -i any -w data.cap Captura todos los paquetes y analízalos a través de wireshark

Supongo que te gusta

Origin blog.csdn.net/sunrj_niu/article/details/129538418
Recomendado
Clasificación