Facebook Chat Sniffer¿?

Iniciado por Jorgedro, 6 Junio 2011, 04:36 AM

0 Miembros y 3 Visitantes están viendo este tema.

Jorgedro

Hola, les comento mi especie de proyecto:
Estoy 'intentando' hacer algun troyano en C++ para pasar el tiempo, ya progresé algo por el lado de la comunicación (por sockets-puertos), también le hice un keylogger.
Ahora estoy lidiando con lo que sería un log de de conversaciones. Hace un par de minutos logré capturar la conversación de una ventana del msn(usé la función de Windows para hacer un "Hook" y las interfaces IAccesible). La MSDN me ayudo a hacer esta parte(http://msdn.microsoft.com/en-us/library/dd318466(v=vs.85).aspx)
Muy bien, pero la gran mayoría de la gente usa Facebook para chatear. Así que un Sniffer para eso es imprescindible.
El problema viene de que el chat es dentro de la web, es decir, dentro del navegador. Y al probar me di cuenta de que los mismos no dan ninguna información usando IAccesible. Internet Explorer solo te muestra los links y Chrome no muestra nada directamente.
La pregunta es: ¿Como hago para hacer un log de las conversaciones de Facebook? O, lo que es lo mismo,  ¿Como recuperó el texto que hay en una página abierta?
Lo único que encontré hasta ahora fueron un par de plugins para firefox, y unas que usaban winpcap para sniffear la red. Pero no pudo usar winpcap porque la víctima seguramente no la tiene instalada.
Cualquier sugerencia me viene bien!

Neomind

http://developers.facebook.com/docs/chat/

O más intrincado...

onPageLetArrive(

Busca eso en el código fuente de tu Facebook.

Por lo que he podido leer, (y por lo que barrunto), trabaja con AJAX así que tienes
que estar atento a lo que llega en los eventos, o cuando se active un cambio en cierta
parte del código fuente...

Yo que tú me hacía un programilla que me limpiase formatease el texto porque tiene tela si lo quieres leer así jajaja... :)

Saludos y suerte :)

Jorgedro

#2
Cita de: Neomind en  7 Junio 2011, 02:53 AM
http://developers.facebook.com/docs/chat/

O más intrincado...

onPageLetArrive(

Busca eso en el código fuente de tu Facebook.

Por lo que he podido leer, (y por lo que barrunto), trabaja con AJAX así que tienes
que estar atento a lo que llega en los eventos, o cuando se active un cambio en cierta
parte del código fuente...

Yo que tú me hacía un programilla que me limpiase formatease el texto porque tiene tela si lo quieres leer así jajaja... :)

Saludos y suerte :)
El link que me pasaste, tiene un ejemplo en python, por lo que muy bien no lo puede mirar. Pero por lo que veo, para leer los mensajes, etc, estaría necesitando hacer un login?? Como hago un login si no me se la contraseña ni el usuario?

Y que es onPageLetArrive()? Un evento de javascript? Mi programa esta en C++ y esta completamente afuera del navegador. A menos que haya una forma de meterle un código javascript desde mi programa al navegador que tiene facebook.

Gracias por tus ideas!

Neomind

En cuanto a lo del login, si le has metido un troyano lo de cogerle la contraseña y
el usuario es una nimiez, me refiero, si le has metido el troyano deberías tener mil
maneras de recuperar su password y login (mostrando ventanas falsas, pidiendolo
otra vez, mediante keylogger, mirando si lo tiene puesto en "recordar" y
averiguando qué explorador usa, sabiendo cómo y dónde se encriptan las
contraseñas guardadas, etc etc etc.)

PF ya no me acuerdo del onPageLetArrive() lo siento pero no me costó más de 10
min mirarme por encima que creo que tenía que ver con que, era el evento en que
llegaba algún tipo de mensaje u objeto que hacía que se escribiese en el chat.

Hay muchas maneras de captar lo que pasa en otras aplicaciones desde C++ (y
desde muchos otros lenguajes) son maneras un poco chunguillas a mi ver la
verdad. Pero si tienes tiempo y ganas dale duro, aunque si lo que quieres es
divertirte programando y no es para ninguna tesis doctoral ni de proyecto final de
carrera, olvídate del sniffer de facebook.

:) Saludos, espero haber sido de ayuda.

XayOn

Cita de: Neomind en 12 Junio 2011, 05:09 AM
En cuanto a lo del login, si le has metido un troyano lo de cogerle la contraseña y
el usuario es una nimiez, me refiero, si le has metido el troyano deberías tener mil
maneras de recuperar su password y login (mostrando ventanas falsas, pidiendolo
otra vez, mediante keylogger, mirando si lo tiene puesto en "recordar" y
averiguando qué explorador usa, sabiendo cómo y dónde se encriptan las
contraseñas guardadas, etc etc etc.)

PF ya no me acuerdo del onPageLetArrive() lo siento pero no me costó más de 10
min mirarme por encima que creo que tenía que ver con que, era el evento en que
llegaba algún tipo de mensaje u objeto que hacía que se escribiese en el chat.

Hay muchas maneras de captar lo que pasa en otras aplicaciones desde C++ (y
desde muchos otros lenguajes) son maneras un poco chunguillas a mi ver la
verdad. Pero si tienes tiempo y ganas dale duro, aunque si lo que quieres es
divertirte programando y no es para ninguna tesis doctoral ni de proyecto final de
carrera, olvídate del sniffer de facebook.

:) Saludos, espero haber sido de ayuda.

Lo hace por ajax seguro, facebook tira de jabber (XMPP) para toda su mensajeria, luego tiene un cliente web, y AFAIK se envia todo sin cifrar (... anda que...)

Es posible que haga algo parecido a lo de tuenti (tambien si os interesa... =P), busca informacion sobre XMPP Sobre bosh (XEP-0206, AFAIK)

Neomind

+1 sobre: XMPP Sobre bosh (XEP-0206, AFAIK)

Mil gracias por compartir.  :D

Hmm... sin cifrar... ole.

Jorgedro

#6
Bueno, gracias por responder. Haciendo un primer tanteo de las posibilidades, vemos que:
Idea 1: Si desde mi programa obtengo el usuario y contraseña(usando un keylogger, aunque me parece medio sucio) podría conectarme al chat de la víctima y "ver" las conversaciones, todo usando XMPP.
Problema: (a partir de un par de pruebas usando Pidgin:) Si bien se permiten varias conexiones de chat por un mismo usuario, lo que envié ese usuario desde su navegador no va a ser registrado por el troyano.
Posible solución al Prob.: Combinar lo que se lee con el cliente de chat, con el keylogger.
En fin, esto no es una solución que me agrade mucho, aunque es factible de todas maneras.
Idea 2: Con lo que dijo Neomind: ¿cuales son las formas que tanto mencionas para espiar a las otras aplicaciones? Porque la única que conozco es la que ya mencione al principio(Accesibilidad). Tal vez así sea más fácil que la idea 1.

chikocxy

hay una extensión de firefox llamado firesheep este lo que hace es robar las cookies de facebook y permite que las uses tu para iniciar la secion de la persona que este conectada en la red quisa pueda ayudarte el codigo de ese plugins y no nesesariamente tengas que ver solo el chat de la persona si no entrar como si fueras ella.

pero solo es una idea saludo

Jorgedro

Cita de: chikocxy en 17 Junio 2011, 03:06 AM
hay una extensión de firefox llamado firesheep este lo que hace es robar las cookies de facebook y permite que las uses tu para iniciar la secion de la persona que este conectada en la red quisa pueda ayudarte el codigo de ese plugins y no nesesariamente tengas que ver solo el chat de la persona si no entrar como si fueras ella.

pero solo es una idea saludo
Pero eso no es lo que estoy necesitando, obviamente que si ya estoy dentro del navegador, puedo hacer lo que se me cante fácilmente. El problema es que estoy en una aplicación totalmente aparte y no puedo hacer lo que puede hacer un plugin.

XayOn

Cita de: Jorgedro en 16 Junio 2011, 02:46 AM
Bueno, gracias por responder. Haciendo un primer tanteo de las posibilidades, vemos que:
Idea 1: Si desde mi programa obtengo el usuario y contraseña(usando un keylogger, aunque me parece medio sucio) podría conectarme al chat de la víctima y "ver" las conversaciones, todo usando XMPP.
Problema: (a partir de un par de pruebas usando Pidgin:) Si bien se permiten varias conexiones de chat por un mismo usuario, lo que envié ese usuario desde su navegador no va a ser registrado por el troyano.
Posible solución al Prob.: Combinar lo que se lee con el cliente de chat, con el keylogger.
En fin, esto no es una solución que me agrade mucho, aunque es factible de todas maneras.
Idea 2: Con lo que dijo Neomind: ¿cuales son las formas que tanto mencionas para espiar a las otras aplicaciones? Porque la única que conozco es la que ya mencione al principio(Accesibilidad). Tal vez así sea más fácil que la idea 1.
Curiosamente, al revés si pasa, si tu desde XMPP envias un mensaje, se registra en la página de facebook.