- Comprobación seguridad (WPA-PSK) ¿Podemos
estar más seguros?
1.- Introducción
2.- Requisitos
3.-
Configuración punto de acceso/router y tarjeta wireless (WPA-PSK)
4.- Programa CCW y
configuración de tarjeta para WPA-PSK
5.- Captura general y
particular
6.- Desautentificación
de clientes legítimos
7.- Recuperación de la clave secreta
Publicidad
1.- Introducción
- Una vez analizadas los inseguras que son las redes inalámbricas con cifrado
WEP y facilidad con que se pueden recuperar claves WEP mediante técnicas de reinyección de trafico, desautentificación,
autentificación falsa y captura de datos, se nos plantea el reto de comprobar la seguridad de las
redes WPA. No voy a explicar todo el rollo de este tipo de seguridad,
además que
no me lo se, sino la pauta a seguir para demostrar que siguen siendo inseguras
(aunque ya no tanto según se configuren), pero según su configuración realmente podemos estar
bastantes tranquilos. Hay varias formas de seguridad vía WPA (al menos eso creo yo), pero vamos
fundamentalmente las mas habituales usadas por la mayoría de nuestras redes
domesticas del tipo
WPA-PSK
si entrar en servidores RADIUS. La configuración mediante encriptación
WEP no depende de una buena configuración, simplemente son inseguras. Las
WPA-PSK pueden ser muy seguras, pero siempre que estén bien configuradas.
Solo citar que este tipo de protección difiere de las
WEP en que la clave es dinámica, o sea que cambia cada cierto tiempo y es
especifica para cada terminal (si estoy equivocado es igual ya que lo que vamos a
realizar es un ejemplo de aplicación practica, de como lo haría un posible
atacante no autorizado).
Pero antes de llegar a la demostración tenemos que explicar algunos conceptos
teóricos muy básicos.
Los routers y las
tarjetas inalámbricas deben de tener una clave secreta para una autentificación inicial, para
que lo entendáis, como en el Microsoft Windows 2000 Server donde es
necesario indicar un nombre de usuario y una clave para tener acceso a los
recursos, pues esto diremos en groso modo que es igual. O por ejemplo
cualquier foro donde se nos pide un nombre de usuario y una contraseña.
Por lo tanto vamos a ir a la caza de esta clave secreta y así simulamos un virtual
ataque, de esta forma en función de los resultados podemos prevenir y configurar
nuestro sistema para lograr un alto grado de seguridad wireless.
No es necesario sniffar mucho trafico, no es cantidad
sino calidad. Y solo se puede coger en el momento que un cliente se autentifica
con su punto de acceso. Por eso, aunque la cantidad de trafico no es importante
su nivel de seguridad es mucho mayor debido a que los posibles atacantes deben tener paciencia para encontrar el trafico
correcto. Este trafico correcto donde se realizan las presentaciones entre
estaciones cliente y los punto de acceso se le denomina como
"handshake".
Puede hacerse tanto en windows como en linux. Con la premisa que el numero de
tarjetas que permiten el ataque
0 (desautentificación de clientes) es mucho mayor en linux. Cuando se efectúan ataques 0, dichos
clientes que llamare legítimos se vuelvan a autentificar sobre todo si es
windows quien controla la conexión inalámbrica y no las aplicaciones propias de
las tarjetas inalámbricas. En este ultimo caso, esta reasociación automática es
mas difícil de detectar y analizar. Pero que conste que con paciencia y sin
efectuar ningún tipo de ataque se puede conseguir, simplemente con observar y
capturar el trafico y que este se produzca en el momento de la conexión entre
cliente y punto de acceso.
Parece sencillo verdad (ya no hacen falta millares de
datos capturados), pues no, realmente no es tan sencillo y se puede afirmar que
el nivel de seguridad es mayor.
Se debe esta afirmación a la siguiente cuestión: Una vez obtenido el trafico correcto (con un solo
"handshake" nos vale) hay que
compararlo con las palabras de un diccionario (o sea por método de la fuerza bruta). Dichos diccionarios son meros ficheros secuénciales
donde en cada línea hay diferentes caracteres escritos. Y es en estos
momentos el punto vital para determinar si una red inalámbrica puede ser o no
ser segura, y solo dependerá de nosotros mismos, al contrario que las WEP donde
nunca dependerá de nosotros ya que por definición son inseguras totalmente.
Imaginar que vais aun cajero a sacar dinero y no sabéis
la contraseña pues bien tenemos 1 entre
10000 posibilidades. Es poco y si lo
cajeros nos dejaran mas de 3 intentos sin bloquear la cuenta se haría fácilmente
probando varios días.
Con WPA-PSK y la suite del Aircrack no tenemos
limitación de intentos ya que lo hacemos fuera del acceso directo
(vamos como si tu tuvieras en tu casa una pequeña caja de seguridad con 4
dígitos y probaras todas las combinaciones posibles.
Pero, la clave
secreta de este tipo de seguridad no tiene que porque ser de 4 números decimales (como
son las claves de los cajeros) sino
que puede variar entre 8 y 63 caracteres ASCII si se ejecuta el asistente para
redes inalámbricas del Windows XP Profesional SP2. Cada carácter ASCII a su vez
puede tener diferentes posibilidades, pues un simple calculo de posibilidades
nos dice que el numero total de combinaciones corresponde al numero de
caracteres ASCII elevado entre 8 y 63 en funciona de la longitud de la clave. Es
cierto que no todos los caracteres ASCII podrán ser utilizados como dentro de
las claves, pero el numero final sigue siendo muy elevado.
Por ejemplo, contar solo con números y letras, en total unos 37 mas o
menos. Si la clave es de 8 caracteres, las combinaciones posibles serian
3.51247+E12 y si fuera de 6.3E+98, y eso sin diferenciar entra mayúsculas y
minúsculas. Pues no hay diccionario en el mundo que lleve todas esas
combinaciones. Pero si usamos nombres propios tales como "Feliciano", "Isabelle"
o de animales tales como "rinoceronte" o genéricas como "Internet" estas si
suelen estar en los diccionarios. Pero por ejemplo "ql9sj3rs7f" si seria una
clave buena, solo que tendemos a no usarlas de este tipo, mal hecho, algo
similar a las claves de nuestros correos electrónicos y accesos a paginas
registradas donde siempre usamos las mismas, y sin encima son medianamente
difíciles de recordad, además las apuntamos y las pegamos en la pantalla del
monitor.
Parece que podemos empezar a respirar tranquilo de que
nadie que no este autorizado pueda acceder a nuestra red inalámbrica y absorber
nuestro ancho de banda de conexión a internet.
Por lo tanto
nunca elaboréis una clave mediante el sistema personal que el ser humano tiene
para recordar las cosas, yo personalmente uso claves que casi siempre olvido y
posteriormente tengo que resetar el punto de acceso para poder cambiarla.
Dicho esto, solo cabe añadir que esta demostración esta ideada
para que podamos probarlo con nuestros propios equipos y comprobar el nivel de
seguridad de vuestras instalaciones inalámbricas. Siempre lo diré que hay que
ponerse en el lugar de las personas que tienen conocimientos para acceder a
nuestras redes inalámbricas, hay que estar mas preparados que ellos, y una
simulación de ataque real con nuestros propios equipos nos permitirá obtener
resultados dignos de valorar.
2.- Requisitos
- Como dije anteriormente las pruebas las
realizaremos con nuestros propios equipos, entonces necesitaremos de lo siguiente:
1.- Un router inalámbrico que
incorpore seguridad tipo WPA-PSK, los Zyxel que vienen en el kit ADSL de
telefónica pueden valer. Si no tenemos un router vale lo mismo para un punto de
acceso, pero yo lo explicare para este router. Tampoco es necesario
exclusivamente un router, sino mas concretamente un punto de acceso, pero dichos routers ya lo llevan incorporado.
2.- Un pc
(sea el que sea) pero con 2 tarjetas wireless, una para el trabajo normal y otra para la captura de datos, por lo tanto
la tarjeta con la conexión normal debe de permitir la seguridad WPA-PSK y la tarjeta
para captura debe de permitir el modo monitor y ataque 0
para linux y/o windows. Si solo se permite el modo monitor también vale pero
estaremos mas limitado. Yo en linux lo explicare con el
ataque 0. Si queréis ver como se efectúa un ataque 0 (de desautentificación) en
windows solo tenéis que acceder al
Manual de inyección de trafico en windows.
3.- Sistema
operativo: Yo lo voy a explicar para Linux, pero vale para windows exceptuando que el
ataque 0 tiene un cariz diferente ya que solo es posible con un tarjeta con
el chipset atheros y compatible con el CommView 5.2
para wifi) y por lo tanto si no tenéis una tarjeta con esta
compatibilidad hay que esperar que el cliente se
autentifique por primera vez. Recordad siempre que no todas las tarjetas tanto en linux
como en windows permiten el ataque 0.
Nota: No voy a explicar como
se configura la tarjeta para seguridad WPA-PSK para Windows ya que es muy fácil y
después de leer como funciona un poco esto creo que lo sabréis hacer, además si explicare
como se configura el router,
una vez visto lo del router entenderéis como hacerlo con vuestra tarjeta para
Windows.
Si explicare como configurar para Linux
vuestra
tarjeta para que trabaje con seguridad WPA-PSK, pero lo
haré para la Conceptronic
C54RI. El driver para Linux
lleva un método especifico bastante rápido, para las otras es necesario la suite
de wpa_supplicant
Para configurar la tarjeta de captura creo
que todos ya sabemos como hacerlo en Windows y en Linux.
3.-
Configuración punto de acceso/router y tarjeta wireless (WPA-PSK)
Entramos en la configuración de nuestro
router vía http o con la
aplicación de configuración propia de el. Lo bueno es
que por http puede hacerse tanto en
Linux y en Windows y es la mejor manera para mi
(vosotros hacerlo como mejor sepáis o queráis).
Debemos de encontrar una sección en el
router parecida a esta:

Debe de estar en la
sección de Wireless Lan y en el apartado de
802.1x/WPA.
En Wireless Port Control seleccionamos
Authentification Requerided.
De los timer paso de ellos, pero si
están a
cero poner algún valor, los que están aquí reflejados pueden valer.
En Key
Management Protocol seleccionamos
WPA-PSK.
En Group Data Privacy seleccionamos
TKIP.
Y en Pre-Shared Key ponemos la
clave secreta que es
lo que queremos descubrir, en mi caso puse "josemaria"
(sin las comillas) que pudiera ser perfectamente mi nombre.
Ahora dentro de
Wireless LAN nos vamos hasta
el apartado Wireless.

Habilitamos
"Enable Wireless LAN".
Ponemos el nombre de red (essid),
en este caso "Policia".
En este captura el essid esta configurado para permanecer
oculto. Pero para estas pruebas lo habilitaremos. En el caso que estuviera
oculto seria los mismo ya que ya sabemos como obtenerlo y además no importa para
este tipo de ataques.
Pongo el
canal 1, aunque es igual el que sea. Y de RTS y
fragmentación ni los comento, total no se ni para que se usan.
Bueno pinchamos sobre el boto "Aply" y ya
tenemos listo el router para que trabaje de forma inalámbrica y con seguridad
WPA-PSK.
4.- Programa
CCW y configuración de la tarjeta para WPA-PSK
Como trabajar con Linux y mas exactamente
el uso de comandos resulta muy
estresante y tedioso diseñe esta pequeña aplicación.
Dicha aplicación es un mera interfaz
grafica para la transformación en comandos.
Yo de todas formas nombrare y escribiré los comandos
ejecutados.
Os la enseño:

Es bastante útil. Hoy en día ya estamos por la versión 7. Y el
responsable actual de proyecto que yo inicie es Uxio
Ahora explico como hacerlo en Linux para
una Conceptronic C54RI con el chipset de Ralink RT2500, pero............
tenemos que tener instalado el ultimo
driver. Visitar zona driver Linux.
(Zona clasica old pero funcional)
Supongo que será valido para cualquier
tarjeta con el chipset de Ralink RT2500, como por ejemplo la Conceptronic C54RC.
Coloco un driver que además vale para la reinyección de trafico para seguridad WEP,
y no necesita parche alguno.
Nota: acceso a zona driver de linux nueva,
pinchando:
aquí
Preparo una
script para configurar esta tarjeta
(el nombre de
la script le ponéis el que queráis)
Hay va la captura de pantalla:

Tal cual, creo que no es necesario
comentar nada. Solo decir que para otras tarjetas abra formas alternativa y/o
diferentes de realizarlo. Por ejemplo la suite del wpa_supplicant (o
alguna forma especifica). Este
donde este la ejecutamos, en este caso: ./wpa.sh
Si estamos usando cuyalquier version de CCW y hemos creado
(la script)
en el mismo directorio que dicha aplicación o la tenemos copiada en el, pulsamos
el botón
"Abrir shell" y
ejecutamos:./wpa.sh
Pongo una imagen una vez ejecutada la
script (en el fondo el programa ccw1)

Vemos que la tarjeta y el sistema
reconocen el router, de esta forma sabremos que tenemos una red configurada de
forma inalámbrica y con seguridad WPA-PSK.
No hace falta ni siquiera que
comprobéis el acceso a Internet, con lo que tenemos en estos momentos ya es suficiente para seguir
trabajando.
5.- Captura
general y particular
Bien vamos a lo que realmente
importa. Llegados a este punto, todos ya sabemos como funciona el modo monitor, si no lo sabéis aconsejo
que paréis de leer este manual y os dirijáis al
Manual de drivers
para modo monitor en windows.
El estudio de la inseguridad lo haré
con mi D-LINK G520 chipset súper G Rev. B3
de atheros (Interface ath0).
Activo la tarjeta mediante el comando
apropiado y ejecuto "airmon.sh start ath0"
o :
iwconfig ath0 mode monitor,
o uso el botón especifico del CCW1.
Vemos que todo va bien. Para Windows ya
sabéis, ejecutáis el programa airodump y la tarjeta con sus drivers específicos
para modo monitor.
Hay va una muestra:

Ahora pasamos a la captura general de
todas los canales, en Windows lo mismo, con el airodump.
Comando:
airodump ath0 file 0, o pulsamos el botón
especifico del
CCW1.
Y obtenemos:

Las demás señales que vemos, en el caso
que nos ocupa no importan y por ética profesional y personal las oculto, lo importante es que vemos la
señal wireless creada por nosotros con el router
y la tarjeta C54RI. Vemos la MAC
del router, la MAC del
cliente, el essid y el canal.
Ahora tomamos nota de todo los datos y los introducimos en la
aplicación en el CCW1, o simplemente los
apuntamos.
Tanto para Windows y Linux cerramos la
captura.
Para Windows abrimos de nuevo el airodump
y le colocamos que capture solo en el canal 1.
A la respuesta y/n del
airodump en Windows, respondemos no,
para de esta forma solo tener un fichero del tipo: *.cap.
Es decir los ficheros *.ivs donde solo se incluyen vectores IV no validos
para este tipo de seguridad. Los IVs solo serán validos para la recuperación de
claves para redes inalámbricas con encriptación WEP.
Ejecutamos: "airmon.sh
start ath0 1 "
O pinchamos en el botón adecuado del
CCW1.
Si no sabemos que esto de airmon.sh
pasamos de el:
o sea :
iwconfig ath0 mode monitor channel 1
Ahora abrimos de nuevo el airodump con el
siguiente comando o usando el programa CCW1.
airodump ath0 policiawpa 1
Y que vemos, pues esto:

Ya lo tenemos preparado para la
captura de datos.
Vemos de nuevo el router y el cliente, o
sea la C54RI.
Pero no sabemos si el trafico es el
correcto y además en data solo hay un "1".
No pasa nada, realizamos el ataque 0 sea en linux o con el
winyector
6.-
Desautentificación de clientes legítimos.
Realizamos el ataque 0 mediante el
comando o con el botón especifico de CCW1:
aireplay -0 5 ath0 -a MAC_AP -c MAC_CLIENTE
Pero ojo, para que sea efectivo probar con
diferentes velocidades.
Citar:
iwconfig ath0 rate 54M hasta
iwconfig ath0 rate 24M
Como yo uso este programa lo preparo todo
desde el y me ahorro escribir bastante código, ya que el programa lo hace por
mi.
Ahí va una muestra:

Queda bastante claro, primero iniciamos el proceso de captura y
mientras se esta en ello, realizamos el ataque 0.
Hay modelos de tarjetas y de drivers que permiten hacerlo con la misma tarjeta, es decir en
este caso la atheros (capturar y inyectar).
Y que obtenemos después del
ataque 0:

Vemos que el trafico a aumentado. En el caso que siempre hubiera
trafico dejar la captura unos minutos para que se produzca de forma correcta el
intercambio de claves entre cliente y punto de acceso. En este mismo momento
también se produce el intercambio del nombre de la red (essid) y aunque
estuviera ocultado podría determinarse muy fácilmente.
Para efectuar ataques de este tipo en windows os recomiendo el
Manual de inyección
de trafico en windows o el
Manual inyección aireplay para windows (berni69)

7.-
Recuperación de la clave secreta
Abro una shell (de la forma que sea) y
ejecuto:
aircrack -a 2 -w /ruta_diccionario/diccionario
policiawpa.cap
El fichero esta en *.cap por que no le
pasamos el argumento 1 al airodump, y es
así como lo queremos.
En el
CCW1 deseleccionar la casilla de verificación
"Grabar solo data" ya
que esta viene por defecto seleccionada, sino obtendréis ficheros del tipo
*.ivs. ESte formato siempre se ha mantenido para todas las versiones del ccw.
La ruta (ruta_diccionario) es cualquier carpeta y se
debe de poner de forma
completa. El diccionario es un mero fichero básico de texto secuencial (sin añadidos como
por ejemplo pudieran ser los ficheros de
Word). En cada línea de este fichero nos
encontraremos con
diferentes caracteres (en definitiva claves de
comprobación).
Que nos sale al ejecutar el comando:

Tanto manual se seguridad alta con cifrado
WPA-PSK y solo hemos obtenido un handshake,
pues bien tranquilos con eso es
suficiente, ahora tecleo 3
(cada uno vera lo que tiene en su captura)
que corresponderá al estudio de recuperación de claves WPA-PSK sobre nuestra red
wireless propia y ............... a esperar
socios, es que no hay mucho más por hacer. Muchas veces os saldrá cero, por lo
tanto a repetir el proceso con otro diccionario.
Existen multitud de zonas en Internet donde se pueden conseguir
de forma gratuita los diccionarios aquí comentados, pero que en ningún momento
informare de donde bajarlos, al ser posiblemente pagina de forma muy temporal.
Decir que existen varios LiveCd de linux que ya incorporan diccionarios.
Si el diccionario es bueno y la clave no
es muy difícil puede tardar mucho o infinito, cuando acabe de leer todas la claves
y esta no corresponda a la real, en dicha aplicación nos saldrá la palabra EOF
(final de fichero), pues bien no desesperéis y os
tocara usar otro diccionario. Y si nunca dais con ella, pues enhorabuena,
ya tienes configurada tu red inalámbrica de forma segura, pero el 100% nunca lo
tendrás, esto nunca lo olvides...............
Si tenéis vuestra red wireless configurada con un bajo de
nivel de seguridad (siempre hablamos de WPA-PSK) os saldrá:

Y lo repito para que se vea solo el aircrack 2.3 sin añadir la
aplicación del proyecto ccw.

Consejo: Si después de varios días no la encontráis
y en lugar de estar contentos os ponéis de los nervios y quizás dudéis si
realmente estas herramientas de auditoria wireless funcionan bien, hacerme caso,
abrir el diccionario con un editor normal de texto (el que queráis) y en
cualquier línea del mismo añadir una fila con el
nombre secreto. Veréis como si la encuentra, comprobando que el estudio es
valido, tanto para resultados negativos como positivos para la recuperación de
claves WPA-PSK.
Ya se que esto ultimo parece poco serio para comprobar un nivel
de seguridad,
pero que sepáis que lo importante en este tipo de configuración es capturar el trafico correcto,
y determinar el uso de claves fueras de la lógica normal no contempladas en
ningún diccionario, solo así se consigue un alto rendimiento de la configuración
de seguridad en sistemas inalámbricos o wireless.
En el caso de un atacante real sobre nuestra red wireless, no podrá añadir ninguna clave al
diccionario ya que obviamente no la sabrá. Así tendremos seguro lo que es mas importante; sabremos como configurar
nuestros equipos wireless para darle una mayor seguridad a todo el sistema
(vamos si no eres capaz de recuperar una clave WPA-PSK, no tengas dudas de que
realmente es segura, ya que la mejor defensa es un buen ataque y siempre hay que
analizar tu sistema desde el punto de vista del atacante y corregirlo en ese
sentido, hay que estar lo mas preparado posible).
Recodar que las capturas se hicieron en su momento con la
aplicación ccw1 , pero que ya tenéis el nuevo
ccw7 (se mantienen las
mismas funciones que el ccw1 explicado aquí, pero aumentadas considerablemente).
Todo lo explicado aqui es valido para la nueva
suite del aircrack-ng, podeis ver sus especificaciones de los
comandos en:
¿Como usar aircrack-ng?
- Programa en grupo CCW
Es una mera interfaz en modo grafico donde se recopilan la
mayoría de acciones realizadas para la auditoria wireless en linux. Por eso el nombre de centro de control
integrado wireless.
Su instalación es muy sencilla, lo único que
necesita es bajarse e instalar con anterioridad el programa gambas
para usar su librerías. Este gambas solo hay que instalarlo y no
hacer nada con el.
Para la version 7 será necesario el
gambas2, realmente muy fácil de instalar en Debian.
Si tenéis Debian o Fedora Core la mejor manera de
instalar gambas 1 y 2 es a través de los repositorios.
Para bajar el gambas2 en formato binario
hacerlo mejor de sourceforge.
|
1.- |
Descargar el programa CCW versión 4 en formato tar.gz en
Español |
 |
|
2.- |
Descargar el programa CCW versión 4 en formato tar.gz en
Ingles |
 |
|
3.- |
Descargar el código fuente del CCW versión 7 en formato tar.gz
en Ingles |
 |
|
4.- |
Descargar el código fuente del CCW versión 7 en
formato tar.gz |
 |
|
5.- |
Descargar el programa CCW versión 7 en formato tar.gz
en Ingles |
 |
|
6.- |
Descargar el programa CCW versión 7 en formato tar.gz |
 |
También citar que hemos hablado de la versión 2.3 de la suite
del programa que ceo C. Devine pero existen versiones mas actualizadas que el
mismo diseño,
por ejemplo la 2.41 y la nueva
generación ng.
Yo creo que podemos estar tranquilos con este
tipo de protección de que nadie nos quitara ancho de banda, pero
solo....... si usamos una contraseña realmente difícil de
encontrar en un diccionario.
Nuevas herramientas
en windows para aumentar el análisis de seguridad WPA
