Foro de elhacker.net

Seguridad Informática => Hacking => Mensaje iniciado por: BeLGaRioN en 27 Noviembre 2011, 17:02 pm



Título: SSLSTRIP
Publicado por: BeLGaRioN en 27 Noviembre 2011, 17:02 pm
Hola a todos,

Llevo algún tiempo probando el envenenamiento de ARP con programas como ettercap y arpspoof, ambos usados conjuntamente con sslstrip. Todo funciona correcto, sslstrip genera errores cada vez que el usuario víctima se identifica en alguna web con cifrado SSL, pero la información se captura y además el usuario no nota absolutamente nada. El tema está en que, en páginas de streaming, por ejemplo youtube, megavideo, etc. He notado que el usuario víctima no puede ver el video hasta que este está totalmente cargado, lo bueno de estas webs es que permiten ver el trozo de video que se ha descargado, pero cuando está funcionando el sslstrip no. Esto llama mucho la atención claro. Primeramente me he asegurado que el problema lo daba el sslstrip, luego he estado probando por si había algún parámetro para iniciar el sslstrip y que esto no sucediera, pero no he conseguido nada. También he buscado en google, pero la gente no parece tener esa curiosidad porque no lo he visto comentado por nadie esto. Así que, recurro a vosotros, ¿alguna idea? ¿a alguien más le ha sucedido y lo ha arreglado de alguna manera?

Gracias de antemano.


Título: Re: SSLSTRIP
Publicado por: BeLGaRioN en 27 Noviembre 2011, 17:03 pm
Por si alguien está convencido de que los errores que genera el sslstrip pueden decir algo, son de este tipo:

http://www.backtrack-linux.org/forums/backtrack-5-beginners-section/41325-i-have-problem-sslstrip-errors-bt5.html?langid=4 (http://www.backtrack-linux.org/forums/backtrack-5-beginners-section/41325-i-have-problem-sslstrip-errors-bt5.html?langid=4)

No creo que tengan que ver ya que, como dije, los genera en páginas con cifrado SSL y ese no es mi problema ya que eso lo hace correctamente, es en páginas con videos en streaming.


Título: Re: SSLSTRIP
Publicado por: adastra en 27 Noviembre 2011, 18:27 pm
y para que necesitas usar sslstrip en una página como youtube?


Título: Re: SSLSTRIP
Publicado por: BeLGaRioN en 27 Noviembre 2011, 18:45 pm
No lo has entendido. No quiero usar sslstrip en una página como youtube, lo que quiero es que la víctima pueda navegar de manera normal por cualquier página sin que note diferencia y ahí están incluídas youtube, megavideo, etc.


Título: Re: SSLSTRIP
Publicado por: adastra en 27 Noviembre 2011, 21:54 pm
No lo has entendido. No quiero usar sslstrip en una página como youtube, lo que quiero es que la víctima pueda navegar de manera normal por cualquier página sin que note diferencia y ahí están incluídas youtube, megavideo, etc.
Vale, ya comprendo. pero creo que el problema en ese caso no es sslstrip, ya que solamente entra en acción cuando una petición utiliza HTTPS. Como estas haciendo el envenenamiento, ettercap? dsniff? otro?


Título: Re: SSLSTRIP
Publicado por: BeLGaRioN en 27 Noviembre 2011, 22:09 pm
Vale, ya comprendo. pero creo que el problema en ese caso no es sslstrip, ya que solamente entra en acción cuando una petición utiliza HTTPS. Como estas haciendo el envenenamiento, ettercap? dsniff? otro?

Ahora estoy usando arpspoof. El asunto es que al hacer el envenamiento de ARP uno de mis ordenadores está haciendo de router y en las páginas con contenido en streaming ocurre esto que te digo, en vez de ir enviando el contenido poco a poco, no lo envía hasta tenerlo todo. Así que si el video es de 10 segundos, apenas se nota, pero si dura 5 minutos tarda en cargar y no es el comportamiento habitual de estas páginas que suelen ir cargándolo poco a poco dure lo que dure el video, así que llama la atención muchísimo.

A ver si al menos obtengo alguna idea que me pueda indicar por donde van los tiros, estoy pensando que al igual que existe una opción para habilitar el ip forwarding, quizás también existe lo mismo para el streaming (repito que, aunque sea un MITM, mi pc atacante está haciendo de router del pc víctima), así que esa es mi teoría, ahora estoy buscando sobre ello. En fin, quizás no es como yo creo, pero es algo que se me ha ocurrido.


Título: Re: SSLSTRIP
Publicado por: BeLGaRioN en 27 Noviembre 2011, 22:12 pm
Ah! Otra cosa que se me olvidaba comentar, el sslstrip sólo trabaja si son páginas https sí, correcto. Pero, en iptables se le indica mediante una regla que todo el contenido dirigido al puerto 80 se lo envíe al sslstrip, por tanto ahí, trabaje o no, lo está recibiendo todo. Es problema del sslstrip seguro porque si no lo pongo a funcionar y no indico esa regla en el iptables todo funciona correctamente.


Título: Re: SSLSTRIP
Publicado por: adastra en 27 Noviembre 2011, 22:29 pm
De acuerdo, lo primero, cambia la regla de iptables que estas utilizando, no te interesa el trafico que viaja por HTTP (puerto 80) te interesa el trafico que viaja por HTTPS (puerto 443).


Título: Re: SSLSTRIP
Publicado por: BeLGaRioN en 27 Noviembre 2011, 22:59 pm
He hecho lo que me has comentado y así funciona youtube y derivados, pero a la hora de intentar abrir páginas como hotmail, gmail, etc. no las encuentra.


Título: Re: SSLSTRIP
Publicado por: adastra en 27 Noviembre 2011, 23:01 pm
Bien, ya tiene mejor pinta, al menos ya sabes porque era el problema del streaming...  :)
Por otro lado, cuando entras hotmail.com (o la que sea), que es exactamente lo que te dice? SSLStrip genera algún log?


Título: Re: SSLSTRIP
Publicado por: BeLGaRioN en 27 Noviembre 2011, 23:02 pm
Pues no, no generó absolutamente nada y el error es el típico 404 de no encontrado.


Título: Re: SSLSTRIP
Publicado por: adastra en 28 Noviembre 2011, 09:27 am
umm, es un poco raro lo que te esta pasando, cual es la regla iptables que estas usando?


Título: Re: SSLSTRIP
Publicado por: BeLGaRioN en 28 Noviembre 2011, 18:34 pm
Según dice en la página del propio sslstrip que es esta:

http://www.thoughtcrime.org/software/sslstrip/ (http://www.thoughtcrime.org/software/sslstrip/)

La regla que hay que meter es de este tipo:

Citar
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port <listenPort>

Esta es la que yo metía y iba todo correcto, pero existe el problema de las webs con contenido en streaming y tras decirme tú aquello, pues metí una exactamente igual sólo que cambiando el 80 por 443. El asunto es que he estado buscando y al parecer esto no se puede hacer, ya que el sslstrip digamos que se comunica con el servidor mediante https y con el cliente por http, para así poder ver las claves en texto plano y si el puerto de destino es el 443, pues sencillamente no funciona. No le llega nada en realidad.


Título: Re: SSLSTRIP
Publicado por: adastra en 28 Noviembre 2011, 21:37 pm
Según dice en la página del propio sslstrip que es esta:

http://www.thoughtcrime.org/software/sslstrip/ (http://www.thoughtcrime.org/software/sslstrip/)

La regla que hay que meter es de este tipo:

Esta es la que yo metía y iba todo correcto, pero existe el problema de las webs con contenido en streaming y tras decirme tú aquello, pues metí una exactamente igual sólo que cambiando el 80 por 443. El asunto es que he estado buscando y al parecer esto no se puede hacer, ya que el sslstrip digamos que se comunica con el servidor mediante https y con el cliente por http, para así poder ver las claves en texto plano y si el puerto de destino es el 443, pues sencillamente no funciona. No le llega nada en realidad.

Tienes razón en todo, he estado probando un poco y al reproducir el mismo fallo, escribí un mensaje privado a Moxie Marlinspike por twitter  (desarrollador de SSLStrip) y dice que efectivamente, es un problema con la implementación, dado que trabaja directamente con paquetes TCP y los  flujos muiltmedia o cualquier tipo de contenido de "framming" (tipicamente utilizando UDP) no es soportado completamente, ya que no estaba pensado para que funcionara en tales casos. Se necesita realizar una extensión de la herramienta para que funcione con este tipo de paquetes...
Le has dado en el clavo completamente, la verdad no me había fijado que tenia ese problema, en el mensaje me ha dicho también, que él ahora mismo esta en otros desarrollos y no tiene espacio para resolver ese problema, tenemos el código por si queremos darle un vistazo, en cuanto tenga un espacio miraré como esta trabajando el programa para ese tipo de paquetes, esta hecho en python, en realidad es muy sencillo y consta de pocas clases, solamente tienes que aprender un poco como funciona la librería phyton twisted, pero vamos que no es realmente complicado. Así que si también te animas puedes mirar el código y vamos comentando lo que vayamos viendo, por supuesto, si tienes disponibilidad para hacerlo.
Saludos.


Título: Re: SSLSTRIP
Publicado por: BeLGaRioN en 30 Noviembre 2011, 20:49 pm
Disculpa la tardanza en contestar, he estado algo liado.

Sobre el tema del streaming, te agradezco que me lo confirmes, le había estado dando vueltas un par de días sin mucho resultado.

Acerca de la propuesta, la verdad es que suena muy interesante, yo no controlo nada de python, tan sólo había probado 4 cosas hace muchos años. No creo que tenga tiempo para dedicarme a ello ya que estoy en la universidad y bueno, con el plan Bolonia este, hay que trabajar cada dia. En fin, quizás algún día no muy lejano me animo, pero por ahora será mejor que no.

Gracias otra vez por confirmarme eso.

Un saludo.


Título: Re: SSLSTRIP
Publicado por: adastra en 30 Noviembre 2011, 21:53 pm
De acuerdo, por mi parte intentaré sacar algún tiempo para sacar una versión un poco más "estable" de SSLStrip.
Suerte y animo con tus estudios!
Saludos.


Título: Re: SSLSTRIP
Publicado por: BeLGaRioN en 3 Diciembre 2011, 19:52 pm
Bueno, para no dejar el tema sin una solución, aunque no sea la anteriormente comentada de modificar el código.

La verdad es que sería genial que el programa, independientemente de si realizaras una petición https://... o una http://..., funcionase (cuando la petición se hace al puerto 443 no funciona), esto no está implementado. Además del problema ya anteriormente comentado de páginas con contenido en streaming (sucede porque todo el contenido que va por el puerto 80 es gestionado por el sslstrip).

En síntesis, pensé en modificar el código, la verdad es que python no es un lenguaje complicado, pero sigo sin saber el por qué no es capaz de enviar el contenido en streaming directamente en vez de esperar a que el pc atacante lo tenga todo para enviarlo al pc víctima. Pero bueno, he encontrado otra manera de solucionarlo cambiando un poco la regla que añadimos al sslstrip, de forma que sólo enviemos al sslstrip la página/s que nos interesa. La regla sería así:

Citar
iptables -t nat -A PREROUTING -p tcp -m iprange --dst-range (rango1)-(rango2) --destination-port 80 -j REDIRECT --to-port (puerto escucha sslstrip, por defecto el 10000)

De forma que si quisiésemos capturar las de hotmail, el rango que he puesto es este:

Citar
iptables -t nat -A PREROUTING -p tcp -m iprange --dst-range 65.0.0.0-65.255.255.255 --destination-port 80 -j REDIRECT --to-port 10000


Título: Re: SSLSTRIP
Publicado por: adastra en 3 Diciembre 2011, 21:45 pm
Esta claro que el sw necesita un cambio en la forma en la que se tratan lo paquetes, sin embargo la solución que propones me parece buena, solamente que limitas con eso se limita muchísimo la extensión de un ataque, ya que solamente funcionará para algunos rangos, excluyendo otros sitios que posiblemente resultan también interesantes, en fin... de momento creo que es una solución aceptable.


Título: Re: SSLSTRIP
Publicado por: tomatoema en 4 Diciembre 2011, 20:09 pm
 :silbar: habeis probado con iptables dirigir el 443 al 80 y poner a escuchar el sslstrip en el 80 :P
o usar fragrouter y dnsspoof


Título: Re: SSLSTRIP
Publicado por: BeLGaRioN en 8 Diciembre 2011, 13:14 pm
:silbar: habeis probado con iptables dirigir el 443 al 80 y poner a escuchar el sslstrip en el 80 :P
o usar fragrouter y dnsspoof

No funcionaría, porque la gente en su gran mayoría hace la petición al 80, luego el servidor, ya sea hotmail, gmail etc. le cambia automáticamente la URL y le dice que debe hacerla al 443. El sslstrip se encarga de, precisamente, que eso último no ocurra yendo todo por el 80. De forma que si rediriges el 443 al 80 para poner ahí al sslstrip a funcionar pues el sslstrip no capturará nada porque no está programado para eso. De hecho, creo que no te funcionaría cualquier página que usara SSL, recuerdo haber hecho bastantes pruebas.

Gracias, en cualquier caso, por el aporte.


Título: Re: SSLSTRIP
Publicado por: D_pit_88 en 9 Diciembre 2011, 11:33 am
alguien me puede explicar o pasarme un linck q de mas información sobre el tema de envenenamiento de url , un resumen rapido