GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el comando Wireshark tshark para puertos personalizados y archivos de texto

Wireshark es un analizador de paquetes de código abierto que se utiliza para el análisis de redes.

Puede capturar, diseccionar y decodificar varios protocolos.

En este tutorial, analizaremos un par de escenarios problemáticos y cómo utilizar las herramientas de línea de comandos de Wireshark para analizar el paquete.

Escenario 1:uso de puerto no estándar con tshark para análisis

Wireshark puede diseccionar y descodificar los protocolos específicos (contenidos en el mensaje de carga útil) según el número de puerto asignado para ese protocolo, que se guarda en su archivo de preferencias.

Supongamos que tshark está diseccionando el paquete ldap y el número de puerto predeterminado para el servidor ldap es 389. Si un mensaje tiene el número de puerto 389 en el puerto de origen o en el puerto de destino, tshark entenderá que es un mensaje ldap y lo decodificará correctamente.

Pero si ldap está configurado en algún otro número de puerto, debemos especificar explícitamente el número de puerto para la herramienta. Podemos hacerlo usando uno de los siguientes dos métodos:

Número de puerto de código fijo en el archivo de preferencias

El primer método es enumerar todos los demás números de puerto que desee configurar en el archivo de preferencias de Wireshark.

El archivo de preferencias de Wireshark es ~/.wireshark/preferences.

La siguiente es la sección ldap del archivo de preferencias ~/.wireshark/preferences:

Si su servidor LDAP está configurado en el número de puerto 400, simplemente agregue el número de puerto al valor existente como se muestra a continuación:

# Set the port for LDAP operations
ldap.tcp.port: 389,400

# Set the port for LDAP operations over SSL
ldap.ssl.port: 636,400

# Set the TCP port for messages (if other than the default of 646)
ldp.tcp.port: 646,400

# Set the UDP port for messages (if other than the default of 646)
ldp.udp.port: 646,400

Usar línea de comando tshark -o Opción

Especifique la información del puerto usando la opción -o. El formato debe ser exactamente del mismo modo que aparece en el archivo de preferencias, como se muestra en el ejemplo.

# tshark -r ../temp.pcap  -o ldap.tcp.port:389

Usemos el protocolo de diámetro como ejemplo. Si no proporciona la información del puerto a tshark, no analizará la parte de la carga útil, ya que el número de puerto no está presente en el archivo de preferencias.

# tshark -r ../temp.pcap
Data (204 bytes)
0000  01 00 00 cc 00 00 01 2e 01 00 00 00 86 26 73 df   .............&s.
0010  dc 67 4a 66 00 00 01 07 40 00 00 2c 61 61 61 3a   .gJf....@..,aaa:
0020  2f 2f 31 30 2e 34 39 2e 31 31 2e 31 35 30 3a 34   //10.49.11.150:4
0030  38 37 38 3b 31 33 36 38 37 37 39 35 37 30 3b 32   878;1368779570;2
0040  00 00 01 08 40 00 00 22 68 73 73 2d 32 2e 68 73   ....@.."bss-2.bs
0050  73 62 6c 61 64 65 2e 72 61 6e 63 6f 72 65 2e 63   damadd.anduore.c
0060  6f 6d 00 00 00 00 01 28 40 00 00 1c 68 73 73 62   od.....(@...badb
0070  6c 61 64 65 2e 72 61 6e 63 6f 72 65 2e 63 6f 6d   pale.ramcoe.com
0080  00 00 01 29 40 00 00 20 00 00 01 0a 40 00 00 0c   ...)@.. ....@...
0090  00 00 28 af 00 00 01 2a 40 00 00 0c 00 00 13 89   ..(....*@.......
00a0  00 00 01 15 40 00 00 0c 00 00 00 01 00 00 01 04   ....@...........
00b0  40 00 00 20 00 00 01 02 40 00 00 0c 01 00 00 00   @.. ....@.......
00c0  00 00 01 0a 40 00 00 0c 00 00 28 af               ....@.....(.
    Data: 010000cc0000012e01000000862673dfdc674a6600000107...
    [Length: 204]

Cuando usa la opción -R, ni siquiera imprimirá un solo carácter.

# tshark -r ../temp.pcap  -V -R diameter
Running as user "root" and group "root". This could be dangerous.

Cuando proporcione la información del número de puerto para el diámetro como se muestra a continuación, el comando tshark funcionará como se esperaba y mostrará la información adecuada.

# tshark -r ../temp.pcap -odiameter.tcp.ports:3868 -R diameter
Running as user "root" and group "root". This could be dangerous.
  1   0.000000 192.168.129.11 -> 192.168.129.68 DIAMETER cmd=Location-InfoRequest(302) flags=R--- appl=3GPP Cx(16777216) h2h=862673df e2e=dc674a66
  2   0.002474 192.168.129.68 -> 192.168.129.11 DIAMETER cmd=Location-InfoAnswer(302) flags=---- appl=3GPP Cx(16777216) h2h=862673df e2e=dc674a66

Escenario 2:analizar utilizando solo el búfer de bytes del paquete

Si no tiene un archivo pcap y solo tiene el búfer de bytes del paquete, use este método.

Suponga que en el archivo de registro de su servidor de desarrollo encontró bytearray del paquete y desea analizarlo usando tshark.

Primero convierta la matriz de bytes en formato hexadecimal, un simple printf(%2X) lo hará.

3c d9 2b 09 fb 24 00 26 b9 8c 89 a6 08 00 45 00
01 20 d6 cb 40 00 40 06 08 9c ac 10 81 0b ac 10
81 44 c4 96 0f 1c 0a 46 92 fc 64 6e 47 7b 80 18
00 36 32 36 00 00 01 01 08 0a 32 02 45 fa 04 e0
ba f4 01 00 00 ec 80 00 01 2e 01 00 00 00 86 26
73 de dc 67 4a 65 00 00 01 07 40 00 00 2c 61 61
61 3a 2f 2f 31 30 2e 34 39 2e 31 31 2e 31 35 30

Ahora desea filtrar la información de la salida anterior. Lo primero que debe hacer es establecer compensaciones para esta matriz de bytes y agregar esto en cada línea, puede escribir un código para automatizar esto.

0000   3c d9 2b 09 fb 24 00 26 b9 8c 89 a6 08 00 45 00 
0010   01 20 d6 cb 40 00 40 06 08 9c ac 10 81 0b ac 10 
0020   81 44 c4 96 0f 1c 0a 46 92 fc 64 6e 47 7b 80 18 
0030   00 36 32 36 00 00 01 01 08 0a 32 02 45 fa 04 e0 
0040   ba f4 01 00 00 ec 80 00 01 2e 01 00 00 00 86 26 
0050   73 de dc 67 4a 65 00 00 01 07 40 00 00 2c 61 61 
0060   61 3a 2f 2f 31 30 2e 34 39 2e 31 31 2e 31 35 30 

Use text2pcap y conviértalo en un archivo pcap:

$ text2pcap a.txt a.pcap
Input from: a.txt
Output to: a.pcap
Wrote packet of 302 bytes at 0
Read 1 potential packet, wrote 1 packet

Use tshark en este archivo pcap:

$ tshark -r a.pcap
  1   0.000000 172.16.129.11 -> 172.16.129.68 DIAMETER 302 cmd=Location-InfoRequest(302) flags=R--- appl=3GPP Cx(16777216) h2h=862673de e2e=dc674a65

Como puede ver en el resultado a continuación, simplemente decodificamos el bytearray en algo significativo.

$ tshark -r a.pcap -V | grep AVP
    AVP: Session-Id(263) l=44 f=-M- val=aaa://10.20.11.140:4878;1368779570;1
    AVP: Destination-Realm(283) l=28 f=-M- val=pal.core
    AVP: Destination-Host(293) l=21 f=-M- val=192.11.121.35
    AVP: Origin-Host(264) l=20 f=-M- val=10.20.11.140
    AVP: Origin-Realm(296) l=19 f=-M- val=ffix

Linux
  1. Cómo uso Ansible y Anacron para la automatización

  2. Cómo usar expresiones Awk y regulares para filtrar texto o cadenas en archivos

  3. ¿Qué es un comando Chown en Linux y cómo usarlo?

  4. ¿Qué es un comando cURL y cómo usarlo?

  5. Cómo usar el comando Grep para buscar texto en archivos

Cómo usar el comando SCP para transferir archivos

Cómo usar el comando SED para buscar y reemplazar cadenas en archivos

Cómo instalar y usar el comando de localización en Linux

Cómo instalar y usar Okteta para archivos de datos RAW en Linux

Cómo instalar y usar el comando fd en Linux

Cómo usar más comandos en Linux para leer archivos de texto grandes