Exportar Objetos HTTP en Tshark

WiresharkWiresharkBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo utilizar la herramienta de línea de comandos tshark de Wireshark para analizar el tráfico HTTP y extraer objetos transferidos de capturas de paquetes. Practicará comandos clave como -r para leer archivos de captura y --export-objects para recuperar contenido HTTP, como imágenes o documentos.

Los ejercicios lo guiarán a través del proceso de exportar objetos HTTP desde un archivo previamente capturado (http.pcap) a un directorio local, filtrar solicitudes específicas e inspeccionar los archivos extraídos. Estas técnicas prácticas son esenciales para el análisis de tráfico de red e investigaciones forenses.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/display_filters -.-> lab-548925{{"Exportar Objetos HTTP en Tshark"}} wireshark/export_packets -.-> lab-548925{{"Exportar Objetos HTTP en Tshark"}} wireshark/packet_analysis -.-> lab-548925{{"Exportar Objetos HTTP en Tshark"}} wireshark/commandline_usage -.-> lab-548925{{"Exportar Objetos HTTP en Tshark"}} end

Abrir una captura HTTP con -r http.pcap

En este paso, aprenderá cómo abrir y examinar un archivo de tráfico HTTP previamente capturado utilizando la herramienta de línea de comandos tshark de Wireshark. Esto es especialmente útil cuando necesita analizar datos de tráfico de red guardados sin capturar paquetes en tiempo real.

Antes de comenzar, entendamos algunos conceptos básicos:

  • Un archivo .pcap es un formato común para almacenar datos de paquetes de red.
  • tshark es la versión de línea de comandos de Wireshark, que permite el análisis de paquetes sin una interfaz gráfica de usuario (GUI).
  • El tráfico HTTP generalmente muestra solicitudes y respuestas web entre clientes y servidores.

Primero, asegúrese de estar en el directorio correcto donde se encuentra nuestro archivo de captura de muestra:

cd ~/project

La opción -r en tshark es crucial aquí: significa "leer" y le permite analizar datos de paquetes desde un archivo guardado en lugar de capturar tráfico en tiempo real. Utilizaremos un archivo de captura de muestra llamado http.pcap que contiene tráfico web HTTP típico.

Para abrir y mostrar el contenido del archivo de captura, ejecute:

tshark -r http.pcap

Este comando mostrará la lista de paquetes directamente en su terminal. Cada línea representa un paquete de red con varios campos importantes:

  • Número de paquete: El número de secuencia del paquete en la captura.
  • Marca de tiempo: Cuándo se capturó el paquete (en segundos).
  • IP de origen: De dónde proviene el paquete.
  • IP de destino: A dónde va el paquete.
  • Protocolo: El protocolo de red que se está utilizando (HTTP en nuestro caso).
  • Longitud del paquete: Tamaño del paquete en bytes.
  • Información: Detalles breves sobre el contenido del paquete.

Por ejemplo, es posible que vea una salida como esta que muestra una solicitud y respuesta HTTP típicas:

1 0.000000 192.168.1.100 → 192.168.1.1 HTTP GET /index.html HTTP/1.1
2 0.000123 192.168.1.1 → 192.168.1.100 HTTP HTTP/1.1 200 OK (text/html)

La primera línea muestra un cliente (192.168.1.100) solicitando una página web, mientras que la segunda línea muestra la respuesta exitosa del servidor. Esta vista básica le ayuda a comprender rápidamente el flujo de tráfico.

Para salir de la vista de paquetes cuando haya terminado de examinar los datos, simplemente presione Ctrl+C. Esto le devolverá al indicador de comando.

Exportar objetos con --export-objects http,./objects

En este paso, exploraremos cómo extraer archivos transferidos a través de HTTP de una captura de paquetes. Cuando se captura tráfico de red que contiene comunicaciones HTTP, archivos como imágenes, PDFs o scripts se transmiten como objetos binarios dentro del protocolo HTTP. Tshark ofrece una forma conveniente de extraer estos archivos para su análisis.

Primero, naveguemos al directorio del proyecto donde se almacena nuestro archivo de captura de paquetes. Esto asegura que todos nuestros comandos funcionen con los archivos correctos:

cd ~/project

Antes de extraer archivos, necesitamos un lugar para almacenarlos. El comando mkdir -p crea un directorio llamado "objects" donde Tshark guardará los archivos extraídos. La bandera -p significa que no mostrará un error si el directorio ya existe:

mkdir -p objects

Ahora usaremos la poderosa función --export-objects de Tshark. Este comando analiza la captura de paquetes, identifica las transferencias de archivos HTTP y reconstruye los archivos originales. La sintaxis tiene dos partes después de --export-objects: "http" especifica el protocolo y "./objects" es nuestro directorio de salida:

tshark -r http.pcap --export-objects http,./objects

Esto es lo que sucede cuando se ejecuta este comando:

  1. Tshark lee el archivo http.pcap (bandera -r).
  2. Analiza el tráfico HTTP e identifica las transferencias de archivos.
  3. Cada archivo encontrado se reconstruye y guarda en el directorio ./objects.

Después de ejecutar el comando, Tshark mostrará cada archivo que extrae. Por ejemplo, es posible que vea una salida como esta que muestra la extracción exitosa de archivos:

Exporting HTTP object 1: image1.jpg
Exporting HTTP object 2: document.pdf

Estos archivos ahora están disponibles en su directorio objects para un examen más detallado. Esta técnica es especialmente útil cuando se analiza el tráfico web o se investigan descargas de archivos durante la resolución de problemas de red.

Listar archivos en ./objects

En este paso, examinaremos los objetos HTTP que se extrajeron de la captura de paquetes en el paso anterior. Estos objetos representan archivos transferidos a través de HTTP, como imágenes, documentos o scripts. Al listar el contenido del directorio ./objects, podemos verificar qué archivos se exportaron correctamente y prepararnos para un análisis más detallado.

Primero, naveguemos al directorio del proyecto donde se almacenan nuestros archivos extraídos. Esto asegura que estamos trabajando en la ubicación correcta:

cd ~/project

Para ver todos los archivos extraídos con información detallada, usaremos el comando ls con dos opciones útiles:

ls -lh ./objects

Esto es lo que hace cada parte:

  • -l muestra la lista en formato detallado con permisos, tamaños y marcas de tiempo.
  • -h muestra los tamaños de los archivos en un formato legible para humanos (KB, MB en lugar de bytes).

Debería ver una salida similar a esta, que muestra los archivos reales extraídos del tráfico HTTP:

total 24K
-rw-r--r-- 1 labex labex 5.2K Jan 1 10:00 image1.jpg
-rw-r--r-- 1 labex labex 12K Jan 1 10:00 document.pdf
-rw-r--r-- 1 labex labex 1.5K Jan 1 10:00 script.js

Si solo necesita saber cuántos archivos se extrajeron (sin ver sus detalles), este comando los cuenta:

ls ./objects | wc -l

La parte wc -l cuenta el número de líneas en la salida, que corresponde al número de archivos. En nuestro ejemplo, mostraría:

3

Filtrar solicitudes específicas con -Y "http.request.uri"

En este paso, exploraremos cómo filtrar solicitudes HTTP específicas de un archivo de captura de paquetes utilizando la herramienta de línea de comandos de Wireshark, tshark. La opción -Y nos permite aplicar potentes filtros de visualización para centrar nuestra atención solo en el tráfico de red que queremos analizar.

Antes de comenzar, asegúrate de estar en el directorio de trabajo correcto donde se encuentra tu archivo de captura de paquetes:

cd ~/project

La estructura básica del comando utiliza tshark -r para leer un archivo de captura de paquetes, seguido de -Y con nuestra expresión de filtro. Cuando trabajamos con tráfico HTTP, podemos filtrar específicamente los paquetes de solicitud HTTP examinando sus rutas URI (Uniform Resource Identifier):

tshark -r http.pcap -Y "http.request.uri"

Este comando procesará el archivo http.pcap y mostrará solo los paquetes de solicitud HTTP que coincidan con nuestro filtro. Para cada paquete coincidente, verás información importante que incluye:

  • El número de paquete (que muestra su posición en la captura)
  • La marca de tiempo de cuándo se capturó el paquete
  • Las direcciones IP de origen y destino
  • La ruta completa de la URI de la solicitud HTTP

Así es como podría verse una salida típica:

10 1.234567 192.168.1.100 → 203.0.113.5 HTTP GET /images/logo.png HTTP/1.1
15 2.345678 192.168.1.100 → 203.0.113.5 HTTP GET /api/data.json HTTP/1.1

Podemos hacer nuestro filtro más específico buscando tipos de archivos o rutas particulares. Por ejemplo, para encontrar solo solicitudes de archivos de imagen PNG, podemos modificar nuestro filtro para buscar ".png" en la URI:

tshark -r http.pcap -Y 'http.request.uri contains ".png"'

Esta técnica es especialmente útil cuando se analiza el tráfico web para identificar recursos específicos que se están solicitando, o cuando se solucionan problemas de tipos particulares de solicitudes web. La sintaxis del filtro de visualización nos da un control preciso sobre qué paquetes vemos en nuestro análisis.

Resumen

En este laboratorio, has aprendido a analizar el tráfico HTTP y extraer objetos transferidos utilizando la herramienta de línea de comandos de Wireshark, tshark. Al trabajar con el archivo http.pcap, has practicado la visualización de detalles de paquetes con la bandera -r y la exportación de objetos HTTP como imágenes y documentos a un directorio designado utilizando --export-objects.

También has explorado cómo filtrar solicitudes HTTP específicas con la bandera -Y para aislar el tráfico basado en URIs. Estas técnicas proporcionan habilidades esenciales para un análisis de red eficiente y la extracción de archivos específicos a través de la interfaz de línea de comandos de tshark.