Hola.
Si queres capturar los paquetes que te llegan a vos mismo con wireshark, como tu navegador tiene la clave para descifrar el contenido https, podes simplemente exportarla del navegador e importarla a wireshark, para ver en plano el contenido, pero solo de los paquetes que te corresponden a vos.
¿De casualidad has probado Fiddler o Graylog? No estoy seguro si permiten hacer lo mismo o si uno de ellos va más allá.
Hace un tiempo tenía que desarrollar un "programa" para enviar mensajes automáticos vía Facebook usando como entrada mensajes aleatorios y una lista de IDs (usuarios Fb).
Aunque usaba la Dev Tools no conseguía comprender bien qué es lo que ocurría porque Fb tenía mucho código ofuscado y realmente veía muchas peticiones que me resultaba difícil seguirle el ritmo.
Una persona me ayudó y pudo automatizar esto (1ra vez que solicité ayuda en un marketplace por cierto).
Usó C#... pero más allá del lenguaje, lo importante es que pudo encontrar 1 token que siempre usa Fb al enviar mensajes, y los nombres de los parámetros.
Vi que esta persona usaba Fiddler. Entonces, más allá del navegador vi que analizaba el tráfico en general de su PC y usaba unos filtros para facilitar la búsqueda.
Me sorprendió un poco. No he intentado hacerlo por mí mismo... pero con la existencia de herramientas de este tipo, es probable que ya sea capaz... aunque no sé si pueda hacerlo con la misma habilidad que esta persona.
Ahora si queres hacer un ataque MITM, ya sea ARP spoofing, o cualquier otro, y querer capturar y descifrar los paquetes de otros dispositivos pertenecientes a tu red LAN, ahí no vas a poder... Hubo muchas técnicas descubiertas para romper SSL/TLS, pero son técnicas del pasado, que fueron descubiertas, usadas por un período de tiempo muy corto y luego parchado tanto en los navegadores como en los servidores.
Hace un tiempo hice un juego Android con Firebase.
Apliqué algunas reglas de validación básicas para que no sea muy sencillo "hackearlo" incluso conociendo las peticiones.
Con CloudFunctions el servidor realizaba algunas validaciones extras. No fui muy minucioso, porque total, no es que tuviera muchos usuarios jugando en esta app.
El tema es que una persona se asignó puntaje 9999999999 y hacía que la app se cierre. Tuve que cambiar el tipo de dato que guardaba el score de int a float y agregar validaciones para registringir el score máximo.
También pensé en una estructura para la BD no relacional que permitiera que el ranking se calcule únicamente sobre las "jugadas" realizadas en las últimas 48 horas.
La cosa es que una persona pudo modificar su puntaje.
Hace poco probé Charles, instalé un certificado en 1 emulador y configuré un proxy, para que capte todas las peticiones, incluyendo las que van sobre https.
Me llamó la atención el hecho de encontrar una conexión websocket abierta (con relación a Firebase), donde se podía identificar un ApiKey, el ID del proyecto y las rutas consultadas (tras revisar con detenimiento).
No supe cómo enviar 1 mensaje a través de esa conexión abierta para incrementar mi puntaje... pero imagino que debe ser posible de alguna forma.
Aunque no puedo analizar el tráfico de alguien que está en mi red (como comentas), analizar el tráfico de cualquier aplicación que uso, es algo que me deja pensando ...
Deben haber muchas aplicaciones allá afuera que se puedan manipular fácilmente por no estar correctamente validadas.
Acceder a información que supuestamente no debe ser pública, o modificar datos que se supone deben entregarse únicamente al cumplir validaciones client-side; me parece emocionante.
A todo esto, creo que la única forma de hacer un juego seguro sería replicando la misma lógica que ocurre a nivel de cliente, en el servidor. Es un trabajo inmenso, pero creo que necesario.
En la app simple que hice, al acabar de jugar, se envía información del puntaje ganado. Esto hace posible que cualquiera pueda engañar al servidor que obtuvo un puntaje inmenso, o incluso un puntaje coherente tras muchas partidas que nunca existieron.
Tendría que ser un juego completamente online para que no sea fácil de vulnerar.
Sé que no es del todo legal pero, si nos tomáramos un tiempo de analizar cada sitio que visitamos, cada aplicación que usamos, podríamos encontrar cosas que muchos no ven y sacar provecho de alguna manera, sin afectar a otros.
Mi conocimiento es casi nulo en cuanto a técnicas para vulnerar y criptografía... pero si con lo poco que sé, veo que se pueden lograr muchas cosas, no quiero imaginar todo lo que son capaces de hacer ustedes jaja.
Por otro lado está esto de las 7 capas del modelo OSI. No recuerdo muy bien los detalles de cada capa, pero lo más probable es que sólo estemos en uno o 2 niveles, verdad?
Imagino que deben existir vulnerabilidades en todos los niveles
.