domingo, 17 de febrero de 2013

[RT] Tarea 3: Experimentos de monitoreo WIFI

Para la actividad de esta semana practiqué con algunos ataques a redes para vulnerar algún tipo de información.

Retomo el tema que elegí primero y en esta entrada explicaré cómo utilizar la técnica de sniifing junto con arp spoofing para obtener credenciales de acceso a sitios web (nombres de usuario y contraseñas).


  • Sniffing: Es una técnica mediante la cual podemos escuchar todos los paquetes que circulan por una red. Por lo general se aplica se manera local (LAN), en el sentido correcto, para realizar auditorias y controlar el acceso a cierto contenido o controlar el ancho de banda de ciertos usuarios. También se utiliza para detectar infirltraciones en la red o si los paquetes no estan siendo transmitidos a las direcciones correctas.
Para saber mas:

  • Arp Spoofing: Es una técnica de infiltración de redes mediante la cual es posible leer los paquetes de datos en una red local, modificarlos o detenerlos. Consiste en enviar paquetes ARP a la red indicando que la MAC de la maquina atacante esta asociada a la IP de un dispositivo víctima, y que al mismo tiempo la MAC de la maquina del atacante esta también asociada a la IP del router (gateway). De esta forma todos los paquetes de la víctima pasarán primero por la maquina atacante, podrán ser leídos o modificados y finalmente se enviarán al router.

Para saber mas:


Herramientas:


Las herramientas que necesitamos para realizar el ataque son las siguientes:
  • arpspoof: Es una utilidad de linux que sirve para realizar "arp spoofing", para instalarla se utiliza el comando:
sudo apt-get install dsniff

  • ettercap: Un sniffer de linea de comandos en linux. Para instalarla tecleamos en la terminal:

sudo apt-get install ettercap
sudo apt-get install ettercap-text-only (si falla la anterior ubuntu 12.04)

    • sslstrip: Herramienta que se aprovecha del exploit "SSL Strip" para vulnerar toda conexión basada en HTTPS y recuperar información delicada como nombres de usuario y contraseñas. También es capaz de recuperar información de conexiones no cifradas. Para instalarla se siguen los siguientes pasos:

    Procedimiento


    NOTA: Todo el proceso se realizo de manera local sin poner en peligro a terceros, así mismo, las instrucciones son con propósito educacional solamente.

    0. Todos los pasos citados se realizan como usuario root, así que lo primero es abrir 3 terminales diferentes o 3 tabs en una terminal y en todas hay que acceder como usuario root, tecleando el comando:

    sudo su





    1. Primero tenemos que redirigir todos los paquetes de la red a nuestro equipo, para ello haremos ip forwarding. Para poner nuestra maquina en éste estado tecleamos en una pestaña de la terminal el comando:

    echo "1" > /proc/sys/net/ipv4/ip_forward


    2. Despues hay que escribir una regla para configurar las iptables y redirigir todo el trafico HTTP a un puerto de escucha, para ello tecleamos 3 comandos:
              - Primero limpiamos las iptables con los comandos:

    iptables -t nat --flush
    iptables --flush


              - Escribimos la regla con el comando:

    iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
    (el puerto final puede variar si esta ocupado por otro servicio)




    3. Completados los pasos anteriores comenzamos a envenenar la tablas ARP utilizando la herramienta arpspoofing, escribimos en la terminal el comando:

    arpspoof -i -t

    Donde:
    • Interfaz se refiere a la interfaz de conexión a la red, puede ser eth0, eth1, wlan0. Ésto depende de la nomenclatura dada por su sistema.
    • ip_victima es la ip de la maquina que queremos atacar.
    • ip_gateway es la ip del router, lo podemos saber con el comando:
    route -n | grep 'UG[ \t]' | awk '{print $2}'


    En este caso quiero envenenar toda la red por facilidad y mi interfaz es mi tarjeta inalámbrica, así que mi comando queda de la forma:

    arpspoof -i wlan0 192.168.1.254

    Comenzará a correr la herramienta y nuestra terminal se verá así.



    4. Ahora hacemos uso de otra terminal o pestaña, también debemos estar como usuario root. En ella nos posicionamos en la carpeta donde descomprimimos sslstrip y ejecutamos la herramienta con el comando:

     python sslstrip.py -w cap -l 8080 -f


    Con el argumento -w (write) creamos un log para escribir todo lo que la herramienta imprima, ésto es importante porque ahí escribirá la información HTTP y HTTPS que sea recuperada.
    Con el argumento -l (listen) le indicamos el puerto que queremos escuchar, el puerto debe ser el mismo por el que estamos redirigiendo el tráfico HTTP.
    Con el argumento -f (favicon) le indicamos a la herramienta que queremos mostrar un favicon que le dé al usuario la sensación de estar en una conexión segura, ya que en el caso del tráfico HTTPS el candadito color verde desaparecerá.

    Sin más, la terminal se verá así y se quedará mostrando esté mensaje:



    5. Por último, en la última ventana nos mostrará la salida de la herramienta sslstrip que es el archivo que le indicamos con el argumento -w. En mi caso se llama "cap", utilizamos el comando tail para mostrar los últimos cambios al archivo. Entonces el comando queda:

    tail -f cap



    Ahora estamos listos para comenzar a recuperar credenciales en la red donde estamos conectados, solo hay que esperar a que una máquina inicie sesión en algún servicio.
    La información se mostrará en la última pestaña donde usamos el comando tail, como ejemplo accedí desde otra maquina a varios servicios como Facebook o Gmail y se puede ver como se recupera exitosamente la información para inicio se sesión.
    También es capaz de recuperar información de sesiones HTTP normales como foros de discusión y más.
    Este es un ejemplo de la salida del archivo:


    Los dos últimos elementos son los interesantes, el penúltimo es el acceso HTTP a mi cuenta personal de mi universidad, el password viene despues la palabra "HTMLPassword=".
    El último es el acceso a Facebook, se indica que es contenido HTTPS con la palabra SECURE POST y el password viene después de la palabra "pass="
    Ambos passwords modificados para éste ejemplo, ya volvieron a la normalidad :)

    Ettercap debería hacer las veces del comando tail mostrando el contenido de los paquetes que han pasado por sslstrip pero por alguna razón no funciono, posiblemente configuración o algo, esta es una captura del programa en ejecución:



    Cualquier problema, pregunta o corrección al procedimiento lo pueden dejar en lo comentarios



    Referencias:




    1 comentario: