Lee Tu Sesión HTTPS Autorizada

WiresharkBeginner
Practicar Ahora

Introducción

Lantern Room organiza pequeños talleres de farolillos de papel. Su aplicación de reservas utiliza HTTPS, por lo que una captura normal muestra tráfico cifrado en lugar de los detalles de la reserva. Tienes permiso para analizar este servicio de formación controlado y sus visitantes sintéticos. Empieza con una referencia normal y después realiza y captura tu propia visita nueva.

Crearás una captura PCAPNG real y su registro de claves TLS separado para que otra persona autorizada pueda abrirlos. Necesitas navegación básica de Wireshark, filtros de visualización, introducción sencilla de comandos y rutas. No necesitas programar ni administrar certificados. Utiliza Desktop, incluidas sus ventanas de Terminal Emulator y Wireshark. Este laboratorio independiente prepara sus propios archivos y servicio local; la duración es una estimación del autor que incluye lectura y errores habituales.

Haz Legible La Referencia Normal

En este paso descifrarás una reserva normal y aprenderás qué campos establecen su resultado.

Empieza en Desktop. Abre Applications → Terminal Emulator abajo a la izquierda. Ejecuta este comando completo; la terminal permanecerá ocupada hasta que cierres Wireshark.

wireshark -C Booking /home/labex/project/booking/input/casebook.pcapng

-C Booking selecciona el perfil de configuración Booking, preparado e inicialmente vacío. Un perfil conserva los ajustes de esta ventana de análisis. Maximiza Wireshark con el botón de su barra de título. La captura de entrada e input/casebook.keys son originales de solo lectura; guarda tu trabajo en output/.

HTTPS es HTTP transportado dentro de TLS, el protocolo que cifra la conversación de la aplicación. TCP transporta esos registros TLS entre los extremos. Esta grabación utiliza TLS 1.3 y HTTP/1.1. El servicio local es 127.0.0.1:18443; la identidad local de prueba de Hazel es 127.0.0.21. Estas direcciones comparten un contenedor de formación; no son máquinas físicas distintas.

En la barra de filtros de visualización escribe http y pulsa Enter. Al principio no hay filas HTTP descifradas. Vacía la barra para ver el intercambio inicial TLS y los datos cifrados Application Data. El intercambio inicial establece la sesión, mientras Application Data transporta los mensajes de reserva. Una captura por sí sola no proporciona su texto sin cifrar.

Un registro de claves TLS contiene secretos registrados deliberadamente por un cliente autorizado para sesiones concretas. No es una lista de contraseñas ni el certificado del servidor. Un certificado o una clave privada RSA no sustituyen estos secretos de sesión TLS 1.3. En un trabajo real, trata las capturas y los registros de claves como material sensible y compártelos únicamente dentro del alcance autorizado. Aquí todas las identidades, reservas y claves pertenecen al ejercicio local.

Abre Edit → Preferences. Expande Protocols, haz clic en la lista de protocolos y escribe tls para llegar a TLS. En (Pre)-Master-Secret log filename, introduce la ruta absoluta siguiente. Mantén activadas Reassemble TLS records spanning multiple TCP segments y Reassemble TLS Application Data spanning multiple TLS records y pulsa OK.

/home/labex/project/booking/input/casebook.keys

Aplica otra vez el filtro http. Debes ver una solicitud POST y una respuesta HTTP. Si la lista sigue vacía, borra el filtro, comprueba la escritura del nombre del archivo y vuelve a las preferencias TLS. Un registro incorrecto o ajeno explica que Application Data no se descifre; no demuestra que falte una solicitud en la captura.

Selecciona la solicitud POST. HTTP es un protocolo de solicitudes y respuestas: POST envía datos y /api/bookings es el URI que identifica el recurso de reservas. Haz clic derecho en la solicitud y elige Follow → TLS Stream. Follow TLS Stream muestra los bytes de aplicación descifrados; Follow TCP Stream sigue mostrando los bytes de transporte cifrados. Lee la solicitud y la respuesta, desplazándote si hace falta. No deduzcas el remitente del color: lee la línea de solicitud y la línea de estado de respuesta.

El cuerpo de la solicitud es JSON: valores con nombre entre llaves. Lee visitor, attempt, workshop y slot. La respuesta repite esos valores y añade accepted, reason y confirmation. La reserva normal de Hazel tiene accepted: true, reason: "confirmed" y una confirmación que pertenece a hazel-01. En JSON, true es un valor booleano; las comillas rodean texto y null significa ausencia de valor.

HTTP/1.1 200 OK significa que el servidor procesó esta solicitud HTTP. El resultado de la reserva sigue dependiendo de los campos JSON. Esta diferencia será importante en el próximo laboratorio. El gran espacio vacío tras el JSON es relleno de formación intencionado: hace que la respuesta real abarque varios segmentos TLS/TCP; no representa otra reserva.

Lee la referencia autorizada completa

Lee el attempt repetido y los campos accepted, reason y confirmation de la respuesta. El estado HTTP por sí solo no basta.

Cierra la ventana Follow con Close. Wireshark deja un filtro tcp.stream eq ... que muestra la conexión TCP completa seleccionada, incluido el intercambio inicial y sus segmentos. Un filtro de visualización solo cambia la vista. Cierra la ventana principal para guardar el ajuste del perfil y liberar la terminal. La referencia está configurada cuando el perfil Booking descifra su solicitud y respuesta completas.

Captura Y Vuelve A Abrir Tu Propia Visita

En este paso capturarás una nueva visita autorizada y abrirás de forma independiente los paquetes realmente guardados.

Empieza en Desktop, en el indicador de Terminal Emulator que reaparece al cerrar la referencia. Su registro de claves no desbloquea otra sesión TLS. Capturarás una visita nueva y conservarás sus propios secretos junto a la captura.

Ejecuta el iniciador de captura preparado:

python3 /opt/labex/booking/capture.py

Abre la interfaz real de captura en vivo de Wireshark en el perfil separado BookingLive. La fuente fija de paquetes captura únicamente tráfico TCP de loopback en el puerto del curso 18443, con límites de 15 minutos y 4 MB. Utiliza una tubería, un canal de bytes en vivo hacia Wireshark, no una reproducción. No concede privilegios generales de captura ni cambia tus ajustes de inicio de sesión. Mantén abiertas esta terminal y Wireshark. Antes de enviar tráfico, espera Live packet feed ready en la terminal y la ventana de captura activa.

Abre un segundo Terminal Emulator mediante Applications → Terminal Emulator. El panel inferior permite alternar entre las dos terminales y Wireshark. En la terminal nueva ejecuta el cliente autorizado:

python3 /opt/labex/booking/booking.py client

El cliente preparado verifica el certificado y nombre de host del servicio local, realiza una solicitud de reserva real y escribe los secretos de la sesión nueva en /home/labex/project/booking/output/live.keys. Indica que la visita terminó sin mostrar la respuesta. Su valor nuevo de attempt cambia en cada ejecución. El cliente your-visit utiliza 127.0.0.26.

Regresa a Wireshark mediante el panel inferior. Espera a que los paquetes sean realmente visibles, incluido el último paquete que termina la conexión TCP, antes de pulsar el cuadrado rojo Stop de la barra. Que termine el cliente no significa que la interfaz haya recibido ya todos los paquetes. Debes ver el intercambio inicial, el tráfico de aplicación cifrado y el paquete de cierre FIN o RST. FIN cierra una dirección TCP; RST termina inmediatamente la conexión. El RST de cierre de este cliente controlado no es el resultado de la reserva.

Elige File → Save As, o Ctrl+S para la captura sin guardar, conserva el formato pcapng y guarda:

/home/labex/project/booking/output/live.pcapng

Guarda la captura real, no texto de la lista ni una imagen. Mantén el registro de claves separado; no uses Inject TLS Secrets. Cierra la ventana principal de captura después de guardar. En la primera terminal el iniciador debe terminar con native dumpcap status: 0 y devolver el indicador. Cerrar la ventana también cierra la fuente del curso; reconectar una terminal no reinicia el servicio de reservas.

En cualquiera de las terminales abre el archivo guardado en el perfil de revisión inicialmente vacío:

wireshark -C BookingReview /home/labex/project/booking/output/live.pcapng

Aplica http: al principio vuelve a estar vacío. En Edit → Preferences → Protocols → TLS, prueba primero el registro de referencia input/casebook.keys, utilizando su ruta absoluta completa del paso 1. Aplica con OK. Sigue sin descifrar la sesión nueva. Ahora sustituye ese ajuste por el registro nuevo correspondiente:

/home/labex/project/booking/output/live.keys

Pulsa OK y aplica http. Ahora debes ver un POST y su respuesta. Haz clic derecho en el POST y elige Follow → TLS Stream. Lee tu attempt nuevo, comprueba que la respuesta lo repite y examina accepted, reason y su propia confirmation. El resultado válido es una reserva confirmada de paper-lantern para sat-14. Cierra Follow y la ventana principal. Has abierto de forma independiente la captura real guardada sin tomar prestados los secretos de la referencia.

Vuelve a abrir tu propia sesión HTTPS guardada

La solicitud y la respuesta muestran el mismo attempt nuevo. Tu valor generado será distinto del ejemplo; lo importante es la relación correspondiente.

Si detuviste demasiado pronto la captura, conserva el intento incompleto antes de repetirlo. En una terminal ejecuta los dos comandos siguientes únicamente si existen ambos archivos de salida anteriores. mv renombra cada archivo. Estas rutas no contienen espacios, por lo que no necesitan comillas. Ningún comando modifica las entradas ni el servicio.

mv /home/labex/project/booking/output/live.pcapng /home/labex/project/booking/output/live-previous.pcapng
mv /home/labex/project/booking/output/live.keys /home/labex/project/booking/output/live-previous.keys

Después repite la secuencia iniciador → cliente en segunda terminal → paquetes finales visibles → Stop → Save → Close → volver a abrir. Si ya existe un archivo live-previous, elige antes otro nombre de copia sin usar. El cliente rechaza deliberadamente sobrescribir live.keys: protege la captura para que no pierda sus secretos correspondientes. Una ruta de guardado incorrecta se corrige con File → Save As, sin otra visita. Si escribiste mal el filtro, bórralo e introduce http; no reinicies el entorno.

Resumen

Has utilizado Wireshark para descifrar una referencia autorizada, capturar una visita HTTPS nueva real y abrir el PCAPNG guardado con el registro de claves de esa visita. Los secretos incorrectos de referencia no desbloquearon la sesión nueva. Tu resultado reutilizable es output/live.pcapng junto con output/live.keys.

También has separado el estado HTTP del resultado de reserva y leído el attempt repetido por su respuesta. El próximo laboratorio aplica esa diferencia a una reserva fallida y su reintento en una conexión persistente.