Saltar al contenido
Portada » Blog – Laprovittera Carlos » TryHackMe – Tcpdump: The Basics

TryHackMe – Tcpdump: The Basics

Hola hacketones! Bienvenidos a un nuevo CTF de la ruta de Cyber Security 101 para la certificación SEC1 en este post resolveremos: TryHackMe – The Basics

El principal desafío al estudiar protocolos de red es que no tenemos la oportunidad de ver las conversaciones que se llevan a cabo. Todas las complejidades técnicas se esconden tras interfaces de usuario intuitivas y elegantes. Accedes a los recursos de tu red local sin ver ni una sola consulta ARP . De igual manera, accederías a servicios de Internet durante años sin ver un solo protocolo de enlace de tres vías hasta que consultaras un libro de redes o inspeccionaras una captura de tráfico de red. La mejor ayuda para el estudio sería capturar el tráfico de red y analizar con más detalle los distintos protocolos; esto nos ayuda a comprender mejor cómo funcionan las redes.

Esta sala presenta algunos argumentos básicos de la línea de comandos para usar Tcpdump. La herramienta Tcpdump y su libpcapbiblioteca están escritas en C y C++ y se lanzaron para sistemas tipo Unix a finales de los 80 o principios de los 90. Por lo tanto, son muy estables y ofrecen una velocidad óptima. La libpcapbiblioteca es la base de varias otras herramientas de red actuales. Además, se adaptó a MS Windows como winpcap.

Objetivos de aprendizaje

Esta sala te proporcionará los conocimientos básicos necesarios para usar tcpdump. En particular, aprenderás a:

  • Capturar paquetes y guardarlos en un archivo
  • Establecer filtros en los paquetes capturados
  • Controlar cómo se muestran los paquetes capturados

Requisitos previos de la habitación

Recomendamos al usuario familiarizarse con el modelo TCP /IP, sus conceptos relacionados y sus diversos protocolos. Las siguientes salas proporcionan los conocimientos necesarios para aprovechar al máximo esta área:

Utiliza las siguientes credenciales SSH en caso de que las necesite:

  • Nombre de usuario:user
  • Contraseña:THM123

Responda las preguntas a continuación

¿Cuál es el nombre de la biblioteca que está asociada a tcpdump?

libpcap

Tarea 2 Captura básica de paquetes

Puedes ejecutarlo tcpdumpsin proporcionar argumentos; sin embargo, esto solo es útil para comprobar que lo tienes instalado. En cualquier situación real, debemos ser específicos sobre qué escuchar, dónde escribir y cómo mostrar los paquetes.

Especificar la interfaz de red

Lo primero que debe decidir es qué interfaz de red escuchar usando -i INTERFACE. Puede elegir escuchar en todas las interfaces disponibles usando -i any; también puede especificar una interfaz, como -i eth0.

Un comando como ip address show(o simplemente ip a s) listaría las interfaces de red disponibles. En la terminal a continuación, vemos una tarjeta de red, ens5, además de la dirección de bucle invertido.

Terminal

user@TryHackMe$ipa s1: lo: <LOOPBACK,UP,LOWER_UP> mtu65536 qdisc noqueue state UNKNOWN group default qlen 1000
[…]
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu9001 qdisc mq state UP group default qlen 1000
[…]

Guardar los paquetes capturados

En muchos casos, conviene volver a revisar los paquetes capturados más tarde. Esto se puede lograr guardándolos en un archivo con la extensión -w FILE. La extensión de archivo suele ser .pcap. Los paquetes guardados se pueden inspeccionar posteriormente con otro programa, como Wireshark. No verá los paquetes desplazándose al seleccionar esta -wopción.

Leer paquetes capturados desde un archivo

Puedes usar Tcpdump para leer paquetes de un archivo -r FILE. Esto es muy útil para comprender el comportamiento de los protocolos. Puedes capturar el tráfico de red durante un periodo de tiempo adecuado para inspeccionar un protocolo específico y, a continuación, leer el archivo capturado mientras aplicas filtros para mostrar los paquetes que te interesan. Además, podría tratarse de un archivo de captura de paquetes que contenga un ataque de red, y lo inspeccionas para analizarlo.

Limitar el número de paquetes capturados

Puede especificar la cantidad de paquetes a capturar indicando el recuento con -c COUNT. Sin este parámetro, la captura de paquetes continuará hasta que la interrumpa, por ejemplo, presionando Ctrl+C. Dependiendo de su objetivo, solo necesitará una cantidad limitada de paquetes.

No resuelva direcciones IP ni números de puerto

Tcpdump resolverá direcciones IP y nombres de dominio de fácil impresión siempre que sea posible. Para evitar estas búsquedas de DNS , puede usar el -nargumento. De igual forma, si no desea que se resuelvan los números de puerto, como por ejemplo , 80que se resuelvan a [nombre del dominio] http, puede usar [nombre del -nndominio] para detener las búsquedas de DNS y de número de puerto. Considere el siguiente ejemplo mostrado en la terminal a continuación. Capturamos y mostramos cinco paquetes sin resolver las direcciones IP.

Terminal

user@TryHackMe$sudotcpdump -iens5 -c5-ntcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5, link-type EN10MB (Ethernet), capture size 262144 bytes
08:55:18.989213 IP 10.10.117.2.22 > 10.11.81.126.53378: Flags [P.], seq 2888580014:2888580210, ack 771262362, win 922, options [nop,nop,TS val 3216251159 ecr 33295823], length 196
08:55:18.989446 IP 10.10.117.2.22 > 10.11.81.126.53378: Flags [P.], seq 196:424, ack 1, win 922, options [nop,nop,TS val 3216251159 ecr 33295823], length 228
08:55:18.989576 IP 10.10.117.2.22 > 10.11.81.126.53378: Flags [P.], seq 424:620, ack 1, win 922, options [nop,nop,TS val 3216251159 ecr 33295823], length 196
08:55:18.989839 IP 10.10.117.2.22 > 10.11.81.126.53378: Flags [P.], seq 620:816, ack 1, win 922, options [nop,nop,TS val 3216251159 ecr 33295823], length 196
08:55:18.989958 IP 10.10.117.2.22 > 10.11.81.126.53378: Flags [P.], seq 816:1012, ack 1, win 922, options [nop,nop,TS val 3216251159 ecr 33295823], length 196
5 packets captured
6 packets received by filter
0 packets dropped by kernel

Producir resultados (más) detallados

Si desea imprimir más detalles sobre los paquetes, puede usar [texto -vincoherente] para generar una salida ligeramente más detallada. Según la página del manual de Tcpdump ( man tcpdump), añadir -v[texto incoherente] imprimirá, entre otras comprobaciones, el tiempo de vida, la identificación, la longitud total y las opciones de un paquete IP. [texto -vvincoherente] generará una salida más detallada; [texto incoherente] -vvvproporcionará aún más detalle; consulte la página del manual para más detalles.

Resumen y ejemplos

La siguiente tabla proporciona un resumen de las opciones de línea de comandos que cubrimos.

DominioExplicación
tcpdump -i INTERFACECaptura paquetes en una interfaz de red específica
tcpdump -w FILEEscribe los paquetes capturados en un archivo
tcpdump -r FILELee los paquetes capturados de un archivo
tcpdump -c COUNTCaptura un número específico de paquetes
tcpdump -nNo resolver direcciones IP
tcpdump -nnNo resuelva direcciones IP ni números de protocolo
tcpdump -vVisualización verbosa; la verbosidad se puede aumentar con -vvy-vvv

Consideremos los siguientes ejemplos:

  • tcpdump -i eth0 -c 50 -vCaptura y muestra 50 paquetes escuchando en la eth0interfaz, que es una Ethernet cableada, y los muestra detalladamente.
  • tcpdump -i wlo1 -w data.pcapCaptura paquetes escuchando en la wlo1interfaz (la interfaz WiFi) y los escribe en [nombre del archivo] data.pcap. Continuará hasta que el usuario interrumpa la captura presionando Ctrl+C.
  • tcpdump -i any -nnCaptura paquetes en todas las interfaces y los muestra en pantalla sin resolución de nombre de dominio ni protocolo.

Responda las preguntas a continuación

¿Qué opción puedes agregar a tu comando para mostrar direcciones solo en formato numérico?

-n

Task 3 Filtering Expressions

Aunque se puede ejecutar tcpdump sin proporcionar expresiones de filtrado, esto no será útil. Al igual que en una reunión social, no se intenta escuchar a todos a la vez; se prefiere prestar atención a una persona o conversación específica. Considerando la cantidad de paquetes que detecta nuestra tarjeta de red, es imposible verlos todos a la vez; necesitamos ser específicos y capturar lo que nos interesa inspeccionar.

Filtrado por host

Supongamos que solo te interesan los paquetes IP intercambiados con tu impresora de red o un servidor de juegos específico. Puedes limitar fácilmente los paquetes capturados a este host usando host IPo host HOSTNAME. En la terminal a continuación, capturamos todos los paquetes intercambiados con example.comy los guardamos en http.pcap. Es importante tener en cuenta que para capturar paquetes es necesario iniciar sesión como rooto para usar sudo.

Terminal

user@TryHackMe$sudotcpdump hostexample.com -whttp.pcaptcpdump: verbose output suppressed, use -v[v]… for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
16:49:02.482295 IP 192.168.139.132.49480 > 93.184.215.14.http: Flags [S], seq 3330895816, win 32120, options [mss 1460,sackOK,TS val 621343956 ecr 0,nop,wscale 7], length 0
16:49:02.635087 IP 93.184.215.14.http> 192.168.139.132.49480: Flags [S.], seq 2231582859, ack 3330895817, win 64240, options [mss 1460], length 0
16:49:02.635125 IP 192.168.139.132.49480 > 93.184.215.14.http: Flags [.], ack 1, win 32120, length 0
16:49:02.635491 IP 192.168.139.132.49480 > 93.184.215.14.http: Flags [P.], seq 1:131, ack 1, win 32120, length 130: HTTP: GET / HTTP/1.1
16:49:02.635580 IP 93.184.215.14.http> 192.168.139.132.49480: Flags [.], ack 131, win 64240, length 0
[…]
^C
13 packets captured
25 packets received by filter
0 packets dropped by kernel

Si desea limitar los paquetes a los de una dirección IP de origen o nombre de host en particular, debe usar src host IPo src host HOSTNAME. De igual forma, puede limitar los paquetes a los enviados a un destino específico usando dst host IPo dst host HOSTNAME.

Filtrado por puerto

Si desea capturar todo el tráfico DNS , puede limitar los paquetes capturados a los de [nombre del dominio] port 53. Recuerde que el DNS utiliza los puertos UDP y TCP 53 por defecto. En el siguiente ejemplo, podemos ver todas las consultas DNS leídas por nuestra tarjeta de red. La terminal a continuación muestra dos consultas DNS : la primera solicita la dirección IPv4 utilizada por ejemplo.org, mientras que la segunda solicita la dirección IPv6 asociada a ejemplo.org.

Terminal

user@TryHackMe$sudotcpdump -iens5 port 53-n[sudo] password for strategos:
tcpdump: verbose output suppressed, use -v[v]… for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
17:26:33.591670 IP 192.168.139.132.47902 > 192.168.139.2.53: 47108+ A? example.org. (29)
17:26:33.591717 IP 192.168.139.132.47902 > 192.168.139.2.53: 5+ AAAA? example.org. (29)
17:26:33.593324 IP 192.168.139.2.53 > 192.168.139.132.47902: 47108 1/0/0 A 93.184.215.14 (45)
17:26:33.593325 IP 192.168.139.2.53 > 192.168.139.132.47902: 5 1/0/0 AAAA 2606:2800:21f:cb07:6820:80da:af6b:8b2c (57)
[…]
^C
12 packets captured
12 packets received by filter
0 packets dropped by kernel

En el ejemplo anterior, capturamos todos los paquetes enviados hacia o desde un número de puerto específico. Puede limitar los paquetes a aquellos de un puerto de origen o de destino específico usando src port PORT_NUMBERy dst port PORT_NUMBER, respectivamente.

Filtrado por protocolo

El último tipo de filtrado que abordaremos es el filtrado por protocolo. Puede limitar la captura de paquetes a un protocolo específico; por ejemplo ip, ip6, udp, tcp, y icmp. En el ejemplo a continuación, limitamos la captura de paquetes a paquetes ICMP. Podemos ver una solicitud y respuesta de eco ICMP, lo cual podría indicar que alguien está ejecutando el pingcomando. También se observa un tiempo ICMP excedido; esto podría deberse a la ejecución del traceroutecomando (como se explicó en la sección Fundamentos de Redes ).

Terminal

user@TryHackMe$sudotcpdump -iens5 icmp -ntcpdump: verbose output suppressed, use -v[v]… for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
18:11:00.624681 IP 192.168.139.132 > 93.184.215.14: ICMP echo request, id 47038, seq 1, length 64
18:11:00.781482 IP 93.184.215.14 > 192.168.139.132: ICMP echo reply, id 47038, seq 1, length 64
18:11:04.168792 IP 192.168.139.2 > 192.168.139.132: ICMP time exceeded in-transit, length 68
18:11:04.168815 IP 192.168.139.2 > 192.168.139.132: ICMP time exceeded in-transit, length 68
[…]
18:11:14.857188 IP 93.184.215.14 > 192.168.139.132: ICMP 93.184.215.14 udpport 33495 unreachable, length 68
^C
52 packets captured
52 packets received by filter
0 packets dropped by kernel

Operadores lógicos

Tres operadores lógicos que pueden resultar útiles:

  • andCaptura paquetes donde ambas condiciones son verdaderas. Por ejemplo, tcpdump host 1.1.1.1 and tcpcaptura tcptráfico con host 1.1.1.1.
  • orCaptura paquetes cuando se cumple alguna de las condiciones. Por ejemplo, tcpdump udp or icmpcaptura tráfico UDP o ICMP.
  • notCaptura paquetes cuando la condición no se cumple. Por ejemplo, tcpdump not tcpcaptura todos los paquetes excepto los segmentos TCP ; esperamos encontrar paquetes UDP , ICMP y ARP entre los resultados.

Resumen y ejemplos

La siguiente tabla ofrece un resumen de las opciones de línea de comandos que cubrimos.

DominioExplicación
tcpdump host IPotcpdump host HOSTNAMEFiltra paquetes por dirección IP o nombre de host
tcpdump src host IPoFiltra paquetes por un host de origen específico
tcpdump dst host IPFiltra paquetes por un host de destino específico
tcpdump port PORT_NUMBERFiltra paquetes por número de puerto
tcpdump src port PORT_NUMBERFiltra paquetes por el número de puerto de origen especificado
tcpdump dst port PORT_NUMBERFiltra paquetes por el número de puerto de destino especificado
tcpdump PROTOCOLFiltra paquetes por protocolo; los ejemplos incluyen ip, ip6, yicmp

Consideremos los siguientes ejemplos:

  • tcpdump -i any tcp port 22escucha en todas las interfaces y captura tcppaquetes hacia o desde port 22, es decir, tráfico SSH .
  • tcpdump -i wlo1 udp port 123escucha en la tarjeta de red WiFi y filtra udpel tráfico hacia port 123el Protocolo de tiempo de red ( NTP ).
  • tcpdump -i eth0 host example.com and tcp port 443 -w https.pcapEscuchará en eth0la interfaz Ethernet cableada y filtrará el tráfico intercambiado con example.comla que usa tcpy port 443. En otras palabras, este comando filtra el tráfico HTTPS relacionado con example.com.

Para las preguntas de esta tarea, leeremos los paquetes capturados del traffic.pcaparchivo. Como se mencionó anteriormente, solemos -r FILEleer desde un archivo de captura de paquetes. Para comprobarlo, pruebe tcpdump -r traffic.pcap -c 5 -n; debería mostrar los primeros cinco paquetes del archivo sin consultar las direcciones IP.

Recuerda que puedes contar las líneas canalizando la salida mediante el wccomando. En la terminal a continuación, vemos que tenemos 910 paquetes con la dirección IP de origen establecida en 192.168.124.1. Ten en cuenta que añadimos ≥ -npara evitar retrasos innecesarios al intentar resolver las direcciones IP. En el ejemplo a continuación, no usamos ≥ sudo, ya que leer un archivo de captura de paquetes no requiere rootprivilegios.

Terminal

user@TryHackMe$tcpdump -rtraffic.pcapsrc host192.168.124.1 -n|wc

reading from file traffic.pcap, link-type EN10MB (Ethernet)
    910   17415  140616

Responda las preguntas a continuación

¿Cuántos paquetes traffic.pcaputiliza el protocolo ICMP?

26

¿Cuál es la dirección IP del host que solicitó la dirección MAC 192.168.124.137?

192.168.124.148

¿Qué nombre de host (subdominio) aparece en la primera consulta DNS?

mirrors.rockylinux.org

Tarea 4 Filtrado avanzado

Hay muchas más maneras de filtrar paquetes. Al fin y al cabo, en cualquier situación real, necesitaríamos filtrar miles o incluso millones de paquetes. Es indispensable poder expresar los paquetes exactos que se mostrarán. Por ejemplo, podemos limitar los paquetes mostrados a aquellos con una longitud inferior o superior a una determinada longitud:

  • greater LENGTH:Filtra paquetes que tienen una longitud mayor o igual a la longitud especificada
  • less LENGTH:Filtra paquetes que tienen una longitud menor o igual a la longitud especificada

Le recomendamos consultar la pcap-filterpágina del manual ejecutando el comando man pcap-filter; sin embargo, para los fines de esta sala, nos centraremos en una opción avanzada que permite filtrar paquetes según los indicadores TCP . Comprender los indicadores TCP facilitará el desarrollo de este conocimiento y el dominio de técnicas de filtrado más avanzadas.

Operaciones binarias

Antes de continuar, conviene analizar las operaciones binarias. Una operación binaria trabaja con bits, es decir, ceros y unos. Una operación toma uno o dos bits y devuelve un bit. Expliquemos esto con más detalle y consideremos las siguientes tres operaciones binarias: &, |, y !.

&(Y) toma dos bits y devuelve 0 a menos que ambas entradas sean 1, como se muestra en la tabla a continuación.

Entrada 1Entrada 2Entrada1 &Entrada 2
000
010
100
111

|(O) toma dos bits y devuelve 1 a menos que ambas entradas sean 0. Esto se muestra en la siguiente tabla.

Entrada 1Entrada 2Entrada 1 |Entrada 2
000
011
101
111

!(No) toma un bit y lo invierte; una entrada de 1 da 0, y una entrada de 0 da 1, como se muestra en la siguiente tabla.

Entrada 1!Entrada 1
01
10

Bytes de encabezado

El propósito de esta sección es filtrar paquetes según el contenido de un byte de encabezado. Considere los siguientes protocolos: ARP , Ethernet, ICMP, IP, TCP y UDP . Estos son solo algunos protocolos de red que hemos estudiado. ¿Cómo podemos indicarle a Tcpdump que filtre paquetes según el contenido de los bytes de encabezado del protocolo? (No entraremos en detalles sobre los encabezados de cada protocolo, ya que esto queda fuera del alcance de esta sección; en su lugar, nos centraremos en los indicadores TCP ).

Al utilizar pcap -filter, Tcpdump le permite hacer referencia al contenido de cualquier byte en el encabezado utilizando la siguiente sintaxis proto[expr:size], donde:

  • protoSe refiere al protocolo. Por ejemplo, arp, ether, icmp, ip, ip6, tcp, y udpse refieren a ARP , Ethernet, ICMP, IPv4, IPv6, TCP y UDP , respectivamente.
  • exprIndica el desplazamiento del byte, donde 0se refiere al primer byte.
  • sizeIndica el número de bytes que nos interesan, que puede ser uno, dos o cuatro. Es opcional y es uno por defecto.

Para entender esto mejor, considere los siguientes dos ejemplos de la página del manual pcap -filter (y no se preocupe si los encuentra difíciles):

  • ether[0] & 1 != 0Toma el primer byte del encabezado Ethernet y el decimal 1 (es decir, 0000 0001en binario) y aplica la &operación binaria «And». Devuelve «true» si el resultado no es igual a 0 (es decir, 0000 0000). El propósito de este filtro es mostrar los paquetes enviados a una dirección de multidifusión. Una dirección Ethernet de multidifusión es una dirección específica que identifica un grupo de dispositivos destinados a recibir los mismos datos.
  • ip[0] & 0xf != 5Toma el primer byte del encabezado IP y lo compara con el número hexadecimal F (es decir, 0000 1111en binario). Devuelve «true» si el resultado no es igual al número (decimal) 5 (es decir, 0000 0101en binario). El propósito de este filtro es capturar todos los paquetes IP con opciones.

No se preocupe si los dos ejemplos anteriores le resultan complejos. Los incluimos para que sepa qué puede lograr con ellos; sin embargo, no es necesario comprenderlos completamente para completar esta tarea. En su lugar, nos centraremos en filtrar paquetes TCP según los indicadores TCP establecidos .

Puede usar tcp[tcpflags]para consultar el campo de indicadores TCP . Los siguientes indicadores TCP están disponibles para comparar:

  • tcp-syn TCP SYN (Sincronizar)
  • tcp-ack TCP ACK (Reconocimiento)
  • tcp-fin TCP FIN (Finalizar)
  • tcp-rst TCP RST (Restablecer)
  • tcp-push TCP Push

En base a lo anterior, podemos escribir:

  • tcpdump «tcp[tcpflags] == tcp-syn»para capturar paquetes TCP con solo el indicador SYN (Sincronizar) configurado, mientras que todos los demás indicadores están desactivados.
  • tcpdump «tcp[tcpflags] & tcp-syn != 0″para capturar paquetes TCP con al menos el indicador SYN (Sincronizar) establecido.
  • tcpdump «tcp[tcpflags] & (tcp-syn|tcp-ack) != 0″para capturar paquetes TCP con al menos los indicadores SYN (Sincronizar) o ACK (Reconocer) establecidos.

Puedes escribir tu propio filtro dependiendo de lo que estés buscando.

Responda las preguntas a continuación

¿Cuántos paquetes tienen activada únicamente la bandera TCP Reset (RST)?

57

¿Cuál es la dirección IP del host que envió paquetes de más de 15000 bytes?

185.117.80.53

Tarea 5 Visualización de paquetes

Tcpdump es un programa completo con numerosas opciones para personalizar la impresión y visualización de los paquetes. Hemos seleccionado las siguientes cinco opciones:

  • -q: Salida rápida; imprimir información breve del paquete
  • -e:Imprimir el encabezado a nivel de enlace
  • -A: Mostrar datos de paquetes en ASCII
  • -xx: Muestra los datos del paquete en formato hexadecimal, conocido como hex
  • -X: Mostrar encabezados de paquetes y datos en hexadecimal y ASCII

Para demostrar cómo las opciones anteriores manipulan la salida, primero mostraremos dos paquetes capturados sin utilizar ningún argumento adicional.

Terminal

user@TryHackMe$tcpdump -rTwoPackets.pcap

reading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
18:59:59.979771 IP 104.18.12.149.https > g5000.45248: Flags [P.], seq 2695955324:2695955349, ack 2856007037, win 16, options [nop,nop,TS val 412758285 ecr 3959057198], length 25
18:59:59.980574 IP g5000.45248 > 104.18.12.149.https: Flags [P.], seq 1:30, ack 25, win 2175, options [nop,nop,TS val 3959057384 ecr 412758285], length 29

Información breve del paquete

Si prefiere líneas de salida más cortas, puede optar por una salida rápida con -q. El siguiente ejemplo muestra la marca de tiempo, junto con las direcciones IP de origen y destino, y los números de puerto de origen y destino.

Terminal

user@TryHackMe$tcpdump -rTwoPackets.pcap-qreading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
18:59:59.979771 IP 104.18.12.149.https > g5000.45248: tcp25
18:59:59.980574 IP g5000.45248 > 104.18.12.149.https: tcp29

Visualización del encabezado a nivel de enlace

Si está en una red Ethernet o WiFi y desea incluir las direcciones MAC en la salida de Tcpdump, solo necesita agregar -e. Esto es útil cuando está aprendiendo cómo funcionan protocolos específicos, como ARP y DHCP . También puede ayudarle a rastrear el origen de cualquier paquete inusual en su red.

Terminal

user@TryHackMe$tcpdump -rTwoPackets.pcap-ereading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
18:59:59.979771 44:df:65:d8:fe:6c (oui Unknown) > 02:83:1e:40:5d:17 (oui Unknown), ethertype IPv4 (0x0800), length 91: 104.18.12.149.https > g5000.45248: Flags [P.], seq 2695955324:2695955349, ack 2856007037, win 16, options [nop,nop,TS val 412758285 ecr 3959057198], length 25
18:59:59.980574 02:83:1e:40:5d:17 (oui Unknown) > 44:df:65:d8:fe:6c (oui Unknown), ethertype IPv4 (0x0800), length 95: g5000.45248 > 104.18.12.149.https: Flags [P.], seq 1:30, ack 25, win 2175, options [nop,nop,TS val 3959057384 ecr 412758285], length 29

Visualización de paquetes como ASCII

ASCII significa Código Estándar Americano para el Intercambio de Información; los códigos ASCII representan texto. En otras palabras, se -Amostrarán todos los bytes asignados a letras, números y símbolos del idioma inglés.

Terminal

user@TryHackMe$tcpdump -rTwoPackets.pcap-Areading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
18:59:59.979771 IP 104.18.12.149.https > g5000.45248: Flags [P.], seq 2695955324:2695955349, ack 2856007037, win 16, options [nop,nop,TS val 412758285 ecr 3959057198], length 25
E..M..@.5..)h…..BY…….|.;5}………..
..1…k……j.3.2…..&9a…..-L
18:59:59.980574 IP g5000.45248 > 104.18.12.149.https: Flags [P.], seq 1:30, ack 25, win 2175, options [nop,nop,TS val 3959057384 ecr 412758285], length 29
E..Ql.@.@.VV..BYh……..;5}……………
..k…1…….1.y.&VC<#._J$..z…D#.`

Visualización de paquetes en formato hexadecimal

El formato ASCII funciona bien cuando el contenido del paquete es texto plano en inglés. No funcionará si el contenido ha sido cifrado o incluso comprimido. Además, no funciona con idiomas que no utilizan el alfabeto inglés. Por lo tanto, necesitamos otra forma de mostrar el contenido del paquete, independientemente del formato. Al tener 8 bits, cualquier octeto puede mostrarse como dos dígitos hexadecimales (cada dígito hexadecimal representa 4 bits). Para mostrar los paquetes en formato hexadecimal, debemos agregar -xxlo que se muestra en la terminal a continuación.

Terminal

user@TryHackMe$tcpdump -rTwoPackets.pcap-xxreading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
18:59:59.979771 IP 104.18.12.149.https > g5000.45248: Flags [P.], seq 2695955324:2695955349, ack 2856007037, win 16, options [nop,nop,TS val 412758285 ecr 3959057198], length 25
        0x0000:  0283 1e40 5d17 44df 65d8 fe6c 0800 4500
        0x0010:  004d fbd8 4000 3506 d229 6812 0c95 c0a8
        0x0020:  4259 01bb b0c0 a0b1 037c aa3b 357d 8018
        0x0030:  0010 f905 0000 0101 080a 189a 310d ebfa
        0x0040:  6b2e 1703 0300 146a 8f33 1832 e6a2 fb99
        0x0050:  eb26 3961 dad4 1611 152d 4c
18:59:59.980574 IP g5000.45248 > 104.18.12.149.https: Flags [P.], seq 1:30, ack 25, win 2175, options [nop,nop,TS val 3959057384 ecr 412758285], length 29
        0x0000:  44df 65d8 fe6c 0283 1e40 5d17 0800 4500
        0x0010:  0051 6ca8 4000 4006 5656 c0a8 4259 6812
        0x0020:  0c95 b0c0 01bb aa3b 357d a0b1 0395 8018
        0x0030:  087f 17e0 0000 0101 080a ebfa 6be8 189a
        0x0040:  310d 1703 0300 18f4 31fa 798d 2656 433c
        0x0050:  2389 5f4a 24c2 fa7a 1496 8444 238e 60

La suma -xxnos permite ver el paquete octeto a octeto. En el ejemplo anterior, podemos examinar detalladamente los encabezados IP y TCP , además del contenido del paquete.

Lo mejor de ambos mundos

Si desea mostrar los paquetes capturados en formatos hexadecimales y ASCII, Tcpdump lo facilita con esta -Xopción.

Terminal

user@TryHackMe$tcpdump -rTwoPackets.pcap-Xreading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
18:59:59.979771 IP 104.18.12.149.https > g5000.45248: Flags [P.], seq 2695955324:2695955349, ack 2856007037, win 16, options [nop,nop,TS val 412758285 ecr 3959057198], length 25
        0x0000:  4500 004d fbd8 4000 3506 d229 6812 0c95  E..M..@.5..)h…
        0x0010:  c0a8 4259 01bb b0c0 a0b1 037c aa3b 357d  ..BY…….|.;5}
        0x0020:  8018 0010 f905 0000 0101 080a 189a 310d  …………..1.
        0x0030:  ebfa 6b2e 1703 0300 146a 8f33 1832 e6a2  ..k……j.3.2..
        0x0040:  fb99 eb26 3961 dad4 1611 152d 4c         …&9a…..-L
18:59:59.980574 IP g5000.45248 > 104.18.12.149.https: Flags [P.], seq 1:30, ack 25, win 2175, options [nop,nop,TS val 3959057384 ecr 412758285], length 29
        0x0000:  4500 0051 6ca8 4000 4006 5656 c0a8 4259  E..Ql.@.@.VV..BY
        0x0010:  6812 0c95 b0c0 01bb aa3b 357d a0b1 0395  h……..;5}….
        0x0020:  8018 087f 17e0 0000 0101 080a ebfa 6be8  …………..k.
        0x0030:  189a 310d 1703 0300 18f4 31fa 798d 2656  ..1…….1.y.&V
        0x0040:  433c 2389 5f4a 24c2 fa7a 1496 8444 238e  C<#._J$..z…D#.
        0x0050:  60

Resumen y ejemplos

La siguiente tabla proporciona un resumen de las opciones de línea de comandos que cubrimos.

DominioExplicación
tcpdump -qRápido y sencillo: breve información del paquete
tcpdump -eIncluir direcciones MAC
tcpdump -AImprimir paquetes como codificación ASCII
tcpdump -xxMostrar paquetes en formato hexadecimal
tcpdump -XMostrar paquetes en formato hexadecimal y ASCII

Responda las preguntas a continuación

¿Cuál es la dirección MAC del host que envió una solicitud ARP?

52:54:00:7c:d3:5b

Tarea 6 Conclusión

En esta sala, hemos cubierto varias opciones de Tcpdump. Junto con Wireshark y Tshark, Tcpdump es una herramienta excelente para comprender mejor los protocolos de red. Mantuvimos el nivel de esta sala sencillo; sin embargo, mostramos gran parte del potencial de Tcpdump, especialmente al examinar miles y millones de paquetes. Asegúrese de haber tomado nota de las distintas opciones de Tcpdump que cubrimos en esta sala.

Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *