Como Utilizar mitmproxy para leer y modificar el tráfico HTTPS
La captura de HTTP y el tráfico HTTPS en su propia máquina es bastante simple:
El uso de herramientas como Wireshark o Firebug , olfateando las conexiones locales es sólo cuestión de segundos.
La captura y / o alterar el tráfico HTTP / HTTPS de otras máquinas de la red (por ejemplo, el teléfono inteligente u otros ordenadores portátiles), por otro lado no es tan fácil.
Especialmente en olfateando con seguridad SSL HTTPS conexiones parece imposible al principio usando mitmproxy , sin embargo, hace que esto sea posible en un camino a seguir muy fácil y sencillo.
Este pequeño tutorial muestra cómo utilizar mitmproxy para oler de forma transparente en y altera (!) Las conexiones HTTPS de su teléfono u otros dispositivos de la red.
Contenido
- 1. ¿Cómo funciona?
- 1.1. Atacando las conexiones HTTP
- 1.2. Atacar a las conexiones HTTPS
- 1.3. Más detalles
- 2. Instalar y ejecutar mitmproxy
- 2.1. instalar mitmproxy
- 2.2. Instalar el certificado CA mitmproxy en el teléfono
- 2.3. Activar el reenvío de IP y el puerto de redirección
- 2.4. Comience mitmproxy
- 2.5. Cambiar la pasarela estándar del teléfono
- 2.6. Captar y alterar HTTP / HTTPS solicitudes y respuestas
- 2.7. Pare mitmproxy y deshacer los cambios de iptables
- 3. Nuevos pensamientos
- 3.1. El uso de DNS en lugar de la pasarela estándar
- 3.2. ¿Por qué esto es más aterrador de lo que piensa
- 3.3. Olfateando en la no-tráfico HTTPS
1. ¿Cómo funciona?
Mitmproxy es una aplicación de código abierto proxy que permite la interceptación de conexiones HTTP y HTTPS entre cualquier cliente HTTP (S) (como un navegador móvil o de escritorio) y un servidor web usando un típico man-in-the-middle (MITM). Al igual que en otros servidores proxy (como el calamar ), que acepta conexiones de los clientes y las envía al servidor de destino.Sin embargo, mientras que otros servidores proxy suelen centrarse en el filtrado de contenidos o de optimización de la velocidad a través de la memoria caché, el objetivo de mitmproxy es permitir que un atacante monitor, captura y alterar estas conexiones en tiempo real.
1.1. Atacando las conexiones HTTP
Para las conexiones HTTP sin cifrar, esto es bastante simple: mitmproxy acepta una conexión desde el cliente HTTP, por ejemplo un navegador móvil, muestra la solicitud (y sus parámetros de solicitud) al atacante en la pantalla, y envía la solicitud al servidor web de destino como pronto como el atacante confirma - tal vez después de ajustar la solicitud de carga útil un poco. mitmproxy simplemente actúa como un intermediario:Para el cliente, que parece como si el servidor mitmproxy estaba simplemente transmitiendo su conexión (como el router o servidores de su ISP hacer). Y al servidor, parece que el servidor mitmproxy es el cliente.
1.2. Atacar a las conexiones HTTPS
Durante el ataque a cifrar el tráfico HTTP se puede hacer sin tener que lidiar con los certificados X.509 y las autoridades de certificación (CA), conexiones HTTPS con cifrado SSL encripta cada petición y respuesta entre el cliente y el servidor de extremo a extremo.Y debido a que los datos transferidos se cifran con un secreto compartido, un hombre medio (o un equivalente) no pueden descifrar los paquetes de datos intercambiados.
Cuando el cliente abre una conexión SSL / TLS para el servidor web seguro, verifica la identidad del servidor mediante la comprobación de dos condiciones:
En primer lugar, se comprueba si el certificado fue firmado por una CA conocida al cliente. Y en segundo lugar, se asegura de que el nombre común (CN, también: el nombre de host) del servidor coincide con el que se conecta.
Si se cumplen ambas condiciones, el cliente asume la conexión es segura.
Con el fin de ser capaz de olfatear en la conexión, mitmproxy actúa como una autoridad de certificación, sin embargo, no es un muy digno de confianza uno:
En lugar de emitir certificados a personas u organizaciones reales, mitmproxy genera dinámicamente certificados a cualquier nombre de host que se necesita para una conexión.
Si, por ejemplo, un cliente desea conectarse a https://www.facebook.com, mitmproxy genera un certificado para "www.facebook.com" y lo firma con su propia CA.
Siempre que confía el cliente esta CA, ambos de los anteriores mencionados son ciertas condiciones (CA de confianza, misma CN) - lo que significa que el cliente cree que el servidor mitmproxy es, de hecho, "www.facebook.com".
La siguiente figura muestra el flujo de petición / respuesta para este escenario. Este mecanismo se denomina proxy HTTPS transparente.
Para este ataque funcione, hay algunas condiciones que se deben cumplir:
- Mitmproxy como pasarela estándar (HTTP y HTTPS): Para HTTP y HTTPS proxy, el servidor que ejecuta mitmproxy debe, por supuesto, ser capaz de interceptar los paquetes IP - lo que significa que debe estar en algún lugar en el camino de la trayectoria de paquetes. La forma más sencilla de lograr esto es cambiar la puerta de enlace predeterminada en el dispositivo cliente a la dirección del servidor mitmproxy.
- CA de confianza mitmproxy (HTTPS): (y confiar en) Para el proxy HTTPS funcione, el cliente debe conocer la CA mitmproxy, es decir, el archivo de claves de CA se debe agregar al almacén de confianza del cliente.
1.3. Más detalles
En caso de que la descripción no es lo suficientemente detallada para usted: Hay una maravillosa explicación de cómo funciona la mitmproxy y sus diferentes modos de mitmproxy en la página oficial del proyecto.2. Instalar y ejecutar mitmproxy
Después de esta pequeña sesión teórica, pongamos manos a la obra.2.1. instalar mitmproxy
La instalación de mitmproxy es muy simple, porque se ha empaquetado usando el sistema de gestión de paquetes de Python (PIP). Otras dependencias mitmproxy se pueden instalar con apt-get:
1- apt - get install python - pyasn1 python - flask python - urwid python - dev libxml2 - dev libxslt - dev libffi - dev
2- pip install mitmproxy
A continuación, es necesario instalar el certificado de CA generada mitmproxy-en el dispositivo para el que desea capturar / alterar la conexión HTTPS. Esto puede ser un navegador de escritorio o un teléfono móvil (Android, iOS, ..).
He aquí un breve resumen para Android:
- Cargar el certificado, en ~ / .mitmproxy / mitmproxy-ca-cert. Cer a /sdcard/Download/mitmproxy-ca-cert.cer de su dispositivo Android.
- Vaya a Configuración, Seguridad y haga clic en "Instalar de almacenamiento del dispositivo"
- Enter "mitmproxy-ca-cert" (sin sufijo!) Y haga clic en "OK"
- Ahora haga clic en "credenciales de confianza" y seleccione la pestaña "Usuario". El certificado debe aparecer ahora en la lista.
2.3. Activar el reenvío de IP y el puerto de redirección
La aplicación mitmproxy ejecuta internamente en el puerto TCP 8080, pero externamente tiene que escuchar en puertos 80 / HTTP y 443 / HTTPS. Por lo tanto, un reenvío de IP en general (el sistema debe actuar como un router) y una redirección 8080-80 y 443 es necesario para todos los paquetes IP que llegan. La tabla de "nat" de iptables puede ser utilizado para hacer eso con bastante facilidad.
1
2
3
|
sysctl - w net .ipv4 .ip_forward = 1
iptables - t nat - A PREROUTING - i eth0 - p tcp -- dport 80 - j REDIRECT -- to - port 8080
iptables - t nat - A PREROUTING - i eth0 - p tcp -- dport 443 - j REDIRECT -- to - port 8080
|
2.4. Comience mitmproxy
Como se mencionó anteriormente, mitmproxy ejecuta en el puerto 8080, pero también se necesita el 80 y el 443 en obligarse, los tres puertos no pueden ser utilizados por otras aplicaciones al mismo tiempo.Así que simplemente dejar todo lo que pueda estar bloqueando los puertos (servidor web Apache, Tomcat, Glassfish, etc.).
Si no está seguro, echa un vistazo a -ntap netstat.
Importante nota al margen: mitmproxy tiene la opción "-p", lo que le permite elegir un puerto diferente al de 8080.
Esta opción no funcionó para mí cuando lo probé. Mientras lo hacía escuchar en el puerto dado, fueron interceptados ninguna solicitud. La pantalla sólo se quedó en blanco. Es por desgracia me costó tres horas para averiguarlo.
Para iniciar realidad mitmproxy, sólo tiene que ejecutar este comando:
mitmproxy - T -- host
Usted verá una pantalla en negro en blanco con una barra azul en la parte inferior - y no pasará nada porque su teléfono (o navegador) aún no se comunica a través de mitmproxy. Familiarizarse con la interfaz de usuario, leer los documentos en el sitio oficial , y echa un vistazo a la página de ayuda escribiendo?.
2.5. Cambiar la pasarela estándar del teléfono
Para ser capaces de detectar en las conexiones del teléfono (o el navegador de) HTTP / HTTPS, es necesario cambiar la puerta de acceso estándar a la dirección IP del servidor mitmproxy.Usted puede hacer esto en Android, como se muestra a continuación:
- Ir a Ajustes, Wi-Fi y largo de prensa de la red conectada.
- Seleccione la opción "Modificar configuración de red."
- Marque "Mostrar opciones avanzadas", establecer la configuración IP a "estático" y cambiar manualmente la dirección de puerta de entrada a la dirección del servidor mitmproxy. Clic en Guardar".
2.6. Captar y alterar HTTP / HTTPS solicitudes y respuestas
Después de cambiar la configuración, comienzan a interactuar con el dispositivo (ir a facebook.com, actualizar su estado de WhatsApp, abrir su navegador). Si todo funciona, debería ver un montón de HTTP y HTTPS (!) Las solicitudes en la pantalla mitmproxy.Puede desplazarse hacia arriba y hacia abajo usando las teclas de flecha. Pulse la tecla de retorno para mirar a una petición con más detalle si lo desea.
Como se dará cuenta, en este momento, usted no tiene la oportunidad de alterar cualquier petición. Usted puede simplemente mirar a ellos después de que sucedieron. Para interceptar efectivamente, alterar y luego enviar la solicitud (o respuesta), usted tiene que fijar un filtro de interceptación. Para hacerlo, pulse i e introduzca una expresión de filtro tales como "facebook.com" (interceptar todas las peticiones que contienen "facebook.com" en su URL) o simplemente ". *" (Interceptar todas las peticiones / respuestas).
Flujos interceptados aparecerán de color naranja en la interfaz de usuario. No van a ser procesados hasta que se acepta (con o sin la edición de ellos). Para aceptar un flujo, presione a. Para aceptar todos los flujos de cartera, presione A.
flujos interceptadas también pueden ser inspeccionados con mayor detalle pulsando la tecla de retorno. En contraste con antes, sin embargo, también pueden ser editados pulsando la tecla e. Dependiendo del modo que elija, puede editar diferentes partes de la solicitud: encabezado, cuerpo, etc. - utilizando vim u otros editores.
2.7. Pare mitmproxy y deshacer los cambios de iptables
Antes de parar mitmproxy asegúrese de que usted no desea guardar cualquiera de los flujos. Si lo hace, w lo hará. Para salir, pulse q y luego y.Para deshacer los cambios de iptables que hemos hecho anteriormente, simplemente escriba iptables-t nat -F (/ borrar toda la tabla de color). Si usted tiene cualquier otra entradas de la tabla 'nat', es posible que desee para quitar las entradas manualmente una por una. Si no está seguro, consulte primero con iptables-t nat -L.
Si lo desea, también deshacer la configuración de reenvío IP escribiendo sysctl -w net.ipv4.ip_forward = 0.
3. Nuevos pensamientos
3.1. El uso de DNS en lugar de la pasarela estándar
El siguiente método requiere cambiar la pasarela estándar del dispositivo / teléfono. Si bien este método funciona bastante bien, se requiere cambiar la configuración de red del dispositivo. En lugar de utilizar la pasarela estándar para redirigir las conexiones, también se podría pensar en utilizar un servidor DNS falsos para hacer eso.Por lo que la puerta de enlace predeterminada en el teléfono sigue siendo el mismo. En su lugar, el servidor DNS en el router se cambia a un servidor DNS local que devuelve la dirección IP mitmproxy para todos los dominios a ser monitoreados. Esto debería funcionar perfectamente bien si mitmproxy y el servidor DNS no se ejecutan en la misma máquina. Si lo hacen, mitmproxy resolvería el dominio de sí mismo, lo que por supuesto no conducen a nada.
Todavía no he probado esto, sin embargo, estoy seguro de que debería funcionar.
3.2. ¿Por qué esto es más aterrador de lo que piensa
No soy mucho de un tipo de conspiración de tipo, pero los recientes titulares sobre las actividades de espionaje de Internet de varias agencias de inteligencia de todo el mundo (cf. PRISM , Tempora ) realmente me he sorprendido un poco. ¿Por qué? Bien, considere los dos siguientes pensamientos:El acceso a Internet de Puntos de Intercambio: Si una persona (o un organismo gubernamental) pueden acceder a Internet y las comunicaciones telefónicas en un punto neutro (por ejemplo, el documento DE-CIX o similar) que significa que esta persona puede capturar todas las conexiones que pasan por que nodo. Eso incluye el tráfico HTTP, el tráfico de correo a través de SMTP, etc. - simplemente todo que el uso de TCP o UDP como transporte. tráfico sin cifrar (HTTP, SMTP, FTP) pueda ser leído por cualquiera que tenga acceso a este nodo. El tráfico cifrado (HTTPS, o cualquier TLS / SSL asegurado conexión) puede, sin embargo, no ser descifrado por esa persona.
El acceso a una autoridad de certificación de confianza: Si esa misma persona también tiene acceso a una autoridad de certificación cuyos certificados CA son de confianza a nivel mundial (como una de las entidades emisoras de certificados de confianza treinta y tantos que se entregan con todos los navegadores y sistemas operativos), esa persona puede utilizar el ataque descrito anteriormente man-in-the-middle descifrar cualquier conexión TLS / SSL.
En resumen: el acceso a los puntos de intercambio de Internet además de una clave privada de un certificado de entidad emisora raíz principal de una autoridad de certificación de confianza es igual a la capacidad de romper todas las conexiones TLS / SSL que pasa por el nodo respectivo. Miedo, ¿verdad?
3.3. Olfateando en la no-tráfico HTTPS
Olfateando el tráfico con mitmproxy está limitada a sólo HTTP y HTTPS conversaciones - lo que significa que no se puede escuchar en el tráfico no HTTP (S) con mitmproxy. Si usted está interesado en oler transparente tomas llanura SSL, es posible que desee probar SSLsplit.mitmproxy y proxydroid. La primera de ellas como bien indica su nombre, se trata de un proxy con capacidades de realizar ataques mitm. mitmproxy es muy similar a Burp o ZAP, pero para línea de comandos. Está escrita en python y permite modificar tráfico automáticamente mediante scripts.
La segunda es una aplicación que instalaremos en nuestro móvil y que añadirá reglas en el firewall para redirigir todo el tráfico HTTP/S hacia mitmproxy.
Para montar nuestro laboratorio, primero deberemos instalar en nuestra máquina mitmproxy. En Debian/Ubuntu se puede hacer con:
# apt-get install python-pip # pip install mitmproxy
Una vez instalado, iniciamos mitmproxy para que nos genere la CA. Los certificados los podemos encontrar en /home/usuario/.mitmproxy/.
En nuestro caso, nos interesa el archivo mitmproxy-ca-cert.cer que tendremos que copiar a nuestro dispositivo Android en la carpeta /sdcard/Downloads/.
Una vez copiado el certificado en la memoria del teléfono, ya lo tenemos casi hecho. Para instalarlo en Android 4 (En otras versiones no debe diferir mucho) hay que ir a Ajustes -> Seguridad -> Instalar desde almac dispositivo.
Nos aparecerá un popup con los datos y a partir de este momento podremos ver el certificado en el apartado Credenciales de confianza
Y luego cambiar su puerta de entrada estándar:
Hecho esto, cuando mitmproxy genere los certificados para cada sitio, la CA que acabamos de instalar le garantizará al móvil que son confiables y podremos descifrar el tráfico.
Ahora solo nos queda redirigir todo el tráfico hacia nuestra máquina para analizar ese tráfico cómodamente. Para ello, utilizaremos proxydroid (necesitamos ser root), y lo configuraremos mínimamente con la dirección IP donde está corriendo el mitmproxy, el puerto y el tipo de proxy:
Si usted ha hecho todo correctamente, usted debería ser capaz de ver todo el tráfico que el teléfono envía, como esto:
Ahora solo nos queda arrancar mitmproxy y empezar a jugar:
2.2. Cerrar WhatsApp y datos de usuario clara
WhatsApp sólo se negocia una nueva contraseña con el servidor cuando por primera vez se comunica con ella. Si ya tiene WhatsApp en marcha y funcionando en su dispositivo iPhone o Android, lo que necesita para limpiar los datos del usuario, de modo que WhatsApp puede negociar una nueva contraseña - que luego se puede olfatear usando mitmproxy.El borrado de los datos de usuario existentes es muy simple. Sólo tienes que ir a Ajustes, el Administrador de aplicaciones y vaya a WhatsApp. En la pantalla de WhatsApp, haga clic en "Forzar detención" y luego "Borrar datos".
2.3 Sniff contraseña WhatsApp y restaurar los datos de usuario
Después de limpiar todos los datos de usuario de WhatsApp, es como si usted acaba de comprar un teléfono nuevo o restablecer el sistema operativo de su teléfono inteligente.La próxima vez que abra WhatsApp, tiene que volver a conectarse a su cuenta de WhatsApp y el intercambio de una nueva contraseña de inicio de sesión. Teniendo en cuenta que ahora tiene un rastreador en su lugar y puede capturar toda la comunicación del teléfono, sólo tiene que leer la contraseña fuera del aire.
Asegúrese de que mitmproxy se está ejecutando. Después, simplemente abrir WhatsApp y siga las pantallas:
2.4. Examinar los resultados mitmproxy
Si todo ha ido según lo planeado, ahora debería ver un par de peticiones al dominio v.whatsapp.net - especialmente algo como esto:- https://v.whatsapp.net:443/v2/exist?cc=49&in=<<your entrada >> y ...
- https://v.whatsapp.net:443/v2/code?cc=49&in=<<your entrada >> y ...
- https://v.whatsapp.net:443/v2/register?cc=49&in=<<your entrada >> y ...
Puede encontrar su contraseña de la cuenta de WhatsApp en el último de esas tres solicitudes (https://v.whatsapp.net:443/v2/register?...). Use las teclas de flecha para acceder a esta entrada y pulse la tecla INTRO. A continuación, pulse TAB para pasar al resumen 'Respuesta'. Y ahí está - una respuesta JSON del servidor de WhatsApp como una respuesta a la solicitud de registro,. Su nombre de usuario WhatsApp se indica mediante la tecla "entrada", la contraseña de la tecla "PW".
Copiar la contraseña y guardar la conversación con el servidor mediante el uso de WhatsApp de mitmproxy función de ahorro: Volver a la pantalla principal pulsando q, y luego presionar s e introduzca un nombre de archivo (por ejemplo /home/user/WhatsApp-password.mitmproxy). Más tarde, puede cargar esta conversación con L.
2.5. Utilice la contraseña en los scripts
Entonces, ¿cuál es la buena contraseña para? Se puede utilizar esta contraseña en scripts o aplicaciones de Internet para enviar y recibir mensajes de WhatsApp. Yo uso el marco PHP WhatsAPI para recibir notificaciones de mi servidor y HTPC. A partir de ahora, sólo lo uso para recibir alertas y advertencias de mi servicio de monitorización ( Nagios ) y recibir notificaciones de mis guiones de descarga de podcast.3. Lo que esto no se puede hacer
Un comentario adicional a lo que este método no logra: Por desgracia, el método descrito anteriormente no permite leer o modificar los mensajes de WhatsApp se envían desde su teléfono o recibidos por el teléfono. La aplicación WhatsApp sólo realiza tareas administrativas a través de HTTPS (tales como cambios de estado o el inicio de sesión). No obstante, enviar o recibir mensajes a través de HTTPS.En su lugar, WhatsApp utiliza un derivado del Jabber / XMPP protocolo para comunicarse. Se comunica en el puerto 5222
Desde la Actualización (julio de 2013): WhatsApp no utiliza TLS / SSL en el puerto 5222 como he dicho anteriormente injustamente. En su lugar, utiliza su propio protocolo propietario para intercambiar y cifrar mensajes. Eso hace que huele en la conexión un poco más complicado, ya que simplemente escuchar a la toma no es suficiente. Mientras que los mensajes de WhatsApp individuales ( "nodos") pueden ser extraídos utilizando tcpdump (Proveedores: tcpdump -i eth0 -vs -X 'puerto 5222'), los resultados son bastante decepcionantes en un primer momento:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
20 : 03 : 46.645026 IP ( tos 0x0 , ttl 50 , id 42975 , offset 0 , flags [ DF ] , proto TCP ( 6 ) , length 267 )
50.22.231.44 - static . reverse . softlayer . com . xmpp - client > pbox . fritz . box . 38975 : Flags [ P . ] , cksum 0xc9a7 ( correct ) , seq 143 : 358 , ack 124 , win 514 , options [ nop , nop , TS val 924424164 ecr 631853177 ] , length 215
0x0000 : 4500 010b a7df 4000 3206 1406 3216 e72c E . . . . . @ . 2...2.. ,
0x0010 : c0a8 b21c 1466 983f ae43 0976 fdc2 b59d . . . . . f . ? . C . v . . . .
0x0020 : 8018 0202 c9a7 0000 0101 080a 3719 97e4 . . . . . . . . . . . . 7...
0x0030 : 25a9 5079 8000 5e54 18d1 a86c 8e70 cf13 % . Py . . ^ T . . . l . p . .
0x0040 : 290f 3a28 6add b8f6 f8e3 10d7 7bc5 f965 ) . : ( j . . . . . . . { . . e
0x0050 : b672 fe25 fdb8 4730 ce3a dcbe b040 0df4 . r . % . . G0 . : . . . @ . .
0x0060 : 84c4 581d d8df 996e 50d5 7f12 b6bf 24f7 . . X . . . . nP . . . . . $ .
0x0070 : 0d72 f46d 704d cb21 7a56 2032 bc1a e15c . r . mpM . ! zV . 2...
0x0080 : 88db d754 e3a3 4aa7 e7dc a2ad d2f4 2841 . . . T . . J . . . . . . . ( A
0x0090 : f3b8 d52c 6180 005e 524b 1573 757d 2095 . . . , a . . ^ RK . su } . .
0x00a0 : 5f64 28da 3518 1e37 1a07 0f41 265a 867c _d ( . 5..7...A & Z . |
0x00b0 : f016 6e0e 114b 73f2 329f d1b2 b17b dc6f . . n . . Ks . 2.... { . o
0x00c0 : 1d16 0b62 194e 9d26 b5cd d5d1 321e b033 . . . b . N . & . . . . 2..3
0x00d0 : ce40 8afe e6c6 79bf 4ada 5149 f29a be13 . @ . . . . y . J . QI . . . .
0x00e0 : 291c 503d 4661 5cb5 047b 2dfe 41f9 5db9 ) . P = Fa . . { - . A . ] .
0x00f0 : 6442 0eac 0a8d 8000 1222 6248 7dc9 b7a5 dB . . . . . . . " bH } . . .
0x0100 : 563d 4a9a cafe 42f8 011f ee V = J . . . B . . . .
|
Sin embargo, debido XML es hablador, WhatsApp codifica los nombres de etiqueta una atributos con un diccionario, por lo que ciertos números corresponden a ciertas etiquetas. El fragmento anterior es una representación codificada y encriptada de los siguientes Etiquetas XML:
1
2
3
4
5
6
|
<message from = "49xxxxxxxx@s.whatsapp.net" id = "1375004720-28" type = "chat" t = "1375034628" >
<notify xmlns = "urn:xmpp:whatsapp" name = "Philipp Heckel" > </notify>
<request xmlns = "urn:xmpp:receipts" > </request>
<body> Hi there! </body>
<offline> </offline>
</message>
|
Después de eso, el servidor proporciona un desafío que - en combinación con la contraseña - se utiliza para cifrar el resto de la comunicación.
El cifrado real se basa en un sistema de cifrado RC4 con tamaño de clave de 256 bits, y la clave se deriva de la contraseña y el desafío (como una sal) usando PBKDF2 .
Todas estas cosas hacen que sea más complejo para oler los mensajes del hilo. Sin embargo, los chicos de WhatsAPI ya aplicadas con éxito este protocolo, de modo que una gran parte de su código puede ser reutilizado para leer mensajes de WhatsApp de la interfaz de red.
Actualmente estoy trabajando en un guión para hacer precisamente eso. Mi enfoque actual es usar tcpdump para escuchar eth0 y canalizar la salida a un script PHP que analiza los paquetes TCP y utiliza WhatsAPI para decodificar / desencriptar la comunicación. No es la solución más elegante, pero hasta ahora funciona bastante bien. Voy a actualizar este post tan pronto como tenga algo que vale la pena compartir.
No hay comentarios
Comentarios