En este paso, exploraremos cómo formatear los datos de tráfico HTTP capturados en formato JSON utilizando la utilidad Tshark de Wireshark. JSON (JavaScript Object Notation) es un formato de datos ligero que es fácil de leer tanto para humanos como para máquinas. Esto lo hace ideal para analizar el tráfico de red de forma programática.
Antes de comenzar, entendamos por qué la salida en formato JSON es valiosa:
- Organización estructurada de datos.
- Fácil integración con otras herramientas y scripts.
- Formato estandarizado para el intercambio de datos.
- Primero, asegúrese de estar en el directorio de trabajo predeterminado donde ejecutaremos nuestros comandos:
cd ~/project
- Ahora, ejecutemos Tshark para capturar las solicitudes HTTP y mostrarlas en formato JSON. Este comando combina el filtrado con el formato JSON:
sudo tshark -Y "http.request" -T json -e http.request.method -e http.host -e http.request.uri
Desglosemos lo que hace cada parte de este comando:
-Y "http.request"
: Este filtro le dice a Tshark que solo muestre los paquetes de solicitud HTTP.
-T json
: Especifica que queremos la salida en formato JSON.
- Campos
-e
: Estos extraen piezas específicas de información de cada solicitud HTTP:
http.request.method
: El método HTTP utilizado (GET, POST, etc.).
http.host
: El dominio del sitio web que se está accediendo.
http.request.uri
: La ruta o recurso específico que se está solicitando.
- Para generar tráfico de prueba que podamos capturar, abra una segunda ventana de terminal y ejecute estos comandos curl:
curl http://example.com
curl http://example.org/sample
Cuando ejecute el comando Tshark mientras se genera este tráfico de prueba, verá una salida estructurada de la siguiente manera:
[
{
"_index": "packets-1",
"_source": {
"layers": {
"http.request.method": ["GET"],
"http.host": ["example.com"],
"http.request.uri": ["/"]
}
}
},
{
"_index": "packets-2",
"_source": {
"layers": {
"http.request.method": ["GET"],
"http.host": ["example.org"],
"http.request.uri": ["/sample"]
}
}
}
]
Note cómo cada solicitud HTTP se convierte en un objeto JSON separado con campos claramente etiquetados. Esta estructura hace que sea sencillo identificar:
- Qué sitio web se accedió.
- Qué tipo de solicitud se realizó.
- Qué página o recurso específico se solicitó.
El formato JSON es especialmente útil cuando desea guardar estos datos para un análisis posterior o alimentarlos a otras herramientas que pueden procesar datos JSON automáticamente.