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:
- Conceptos de redes
- Fundamentos de la creación de redes
- Protocolos básicos de red
- Protocolos seguros de red
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.
| Dominio | Explicación |
| tcpdump -i INTERFACE | Captura paquetes en una interfaz de red específica |
| tcpdump -w FILE | Escribe los paquetes capturados en un archivo |
| tcpdump -r FILE | Lee los paquetes capturados de un archivo |
| tcpdump -c COUNT | Captura un número específico de paquetes |
| tcpdump -n | No resolver direcciones IP |
| tcpdump -nn | No resuelva direcciones IP ni números de protocolo |
| tcpdump -v | Visualizació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.
| Dominio | Explicación |
| tcpdump host IPotcpdump host HOSTNAME | Filtra paquetes por dirección IP o nombre de host |
| tcpdump src host IPo | Filtra paquetes por un host de origen específico |
| tcpdump dst host IP | Filtra paquetes por un host de destino específico |
| tcpdump port PORT_NUMBER | Filtra paquetes por número de puerto |
| tcpdump src port PORT_NUMBER | Filtra paquetes por el número de puerto de origen especificado |
| tcpdump dst port PORT_NUMBER | Filtra paquetes por el número de puerto de destino especificado |
| tcpdump PROTOCOL | Filtra 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 1 | Entrada 2 | Entrada1 &Entrada 2 |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
|(O) toma dos bits y devuelve 1 a menos que ambas entradas sean 0. Esto se muestra en la siguiente tabla.
| Entrada 1 | Entrada 2 | Entrada 1 |Entrada 2 |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
!(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 |
| 0 | 1 |
| 1 | 0 |
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.
| Dominio | Explicación |
| tcpdump -q | Rápido y sencillo: breve información del paquete |
| tcpdump -e | Incluir direcciones MAC |
| tcpdump -A | Imprimir paquetes como codificación ASCII |
| tcpdump -xx | Mostrar paquetes en formato hexadecimal |
| tcpdump -X | Mostrar 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!!!