¿Cómo funciona SSLstrip?

82

He estado leyendo sobre SSLstrip y no estoy 100% seguro de mi comprensión de cómo funciona.

Una gran cantidad de documentación parece indicar que simplemente reemplaza las apariciones de "https" por "http" en el tráfico al que tiene acceso. Por lo tanto, una URL que pase como " enlace " se pasaría a la víctima como " enlace ".

En este punto, ¿SSLstrip continúa comunicándose con Twitter a través de HTTPS en nuestro nombre? Algo como esto:

Victim  <== HTTP ==>  Attacker  <== HTTPS ==>  Twitter

¿O es solo el hecho de que el cliente ahora se está comunicando con Twitter a través de HTTP que nos da acceso al tráfico?

Victim  <== HTTP ==>  Attacker  <== HTTP ==>  Twitter

Supongo que sería la primera opción en la que el atacante continúa comunicándose con Twitter a través de HTTPS, ya que se aplica en Twitter, pero me gustaría una aclaración, gracias.

    
pregunta Scott Helme 07.09.2013 - 21:49
fuente

5 respuestas

71

Deberías ver la charla de Moxie Marlinspike Derrotar SSL usando SSLStrip . En resumen, SSLStrip es un tipo de ataque MITM que obliga al navegador de la víctima a comunicarse con un adversario en texto sin formato a través de HTTP, y el adversario distribuye el contenido modificado de un servidor HTTPS. Para hacer esto, SSLStrip está "eliminando" https:// URLs y convirtiéndolos en http:// URLs.

HSTS es una solución propuesta para este problema.

    
respondido por el rook 07.09.2013 - 22:43
fuente
3

Hablando de posibles soluciones: la única manera verdaderamente confiable de prevenir / detectar la eliminación de SSL es mediante el uso de comunicación encriptada siempre & autenticación de canal lateral del TLS (básicamente, se utiliza el intercambio de claves TLS, pero se reemplaza la autenticación basada en PKI / certificado con la autenticación basada en el usuario o dispositivo). Esto significa, en la práctica, que después de un intercambio de claves, el servidor y el usuario terminan con ciertos secretos o claves compartidos. El cliente y el servidor luego usan un canal de autenticación discreto (por ejemplo, mediante SSH u otros métodos de autenticación asimétrica fuerte) y autentican tanto sus identidades como las claves TLS. Si las claves son las mismas, tiene una certeza de 100% de canal cifrado de extremo a extremo.

Si hay un hombre en el medio, podría hacer 2 vectores de ataque:

  1. MITM podría terminar la comunicación TLS con el servidor en su punto y permitir que el usuario se comunique a través de HTTP. Esto no provoca alertas en TLS / HSTS tradicionales. Sin embargo, esto se descubrirá mediante la autenticación de canal lateral, porque el servidor y el cliente tienen claves TLS diferentes (clave 1 y sin clave).

  2. MITM podría usar un certificado falsificado o robado. Esto podría o no activar una alerta, dependiendo del certificado usado (podría ser cada vez más fácil gracias a la iniciativa Let's Encrypt). Este ataque volvería a ser descubierto por el TLS autenticado de canal lateral, porque el servidor tendría una clave diferente a la del cliente (el servidor tiene la clave1, MITM tiene la clave1 al servidor, MITM tiene la clave2 al cliente, el cliente tiene la clave2).

Esto elimina los certificados SSL como un bono y también funcionaría con CDNs Tenga en cuenta que esta solución no es inmune a las puertas traseras al cifrado.

    
respondido por el Ivo 09.10.2015 - 04:00
fuente
1

HSTS es un simple "encabezado http" que MITM puede modificar y modificar

Prefiero complementos como HTTPnowhere o HTTPS en todas partes, con un 90% de éxito ... Otro tipo de complemento es enlace para cifrar los datos después de la negociación del protocolo SSL.

Como cliente, se encuentra en una posición INFERIOR y los enrutadores entre usted e Internet se controlan fácilmente. Entonces, comprenda que los clientes tienen bajos recursos para controlar el tráfico ... y para eso solo la mejor solución es VPN / Stunnel ... pero nunca sabe si las personas con privilegios / ISP / NSA tienen el secreto mágico para interceptar y descifrar esa comunicación ...

    
respondido por el Mário Guedes 15.09.2015 - 14:48
fuente
1

Creo que es importante tener en cuenta que la eliminación se realiza en las cargas de cliente a servidor y requiere que el cliente solicite primero el contenido HTTP.

Usando el ejemplo de Twitter, el cliente primero tendría que solicitar enlace : cuando el sitio redirige al cliente a HTTPS SSL Strip, eliminará la "s" en la respuesta, de manera que el cliente continuará solicitando contenido HTTP, no HTTPS.

Si un cliente solicitó enlace (o HSTS está en uso), se requeriría un ataque SSL MiTM para interceptar la respuesta, lo que deja de funcionar. El propósito de este ataque.

    
respondido por el Matt 18.10.2017 - 07:23
fuente
0

Espero que esto responda a la pregunta

Paso 1: Víctima < == HTTP == > Atacante < == HTTPS == > Twitter

Paso 2: Twitter < == HTTPs == > Atacante (Stipping "S" con SSL STRIP) == > HTTP == > Victima

Paso 3: Ahora la Víctima obtendrá enlace y continuará con lo mismo, que es texto sin formato y no el cifrado.

    
respondido por el jhony 07.11.2017 - 16:49
fuente

Lea otras preguntas en las etiquetas