Seguridad Wireless - Wifi
Sistemas operativos => Zona GNU/Linux => Aplicaciones y diccionarios linux => Mensaje iniciado por: alist3r en 20-08-2011, 20:24 (Sábado)
-
AVISO:
los monos y otros simios que no quieran aprender y que solo quieran el diccionario de marras pueden irse directos a la última linea de este post a descargar el diccionario para luego irse sin hacer ninguna pregunta. gracias :)
Como ya sabeis mucha gente protege sus redes wifi con una clave consistente en su número de movil. incluso algunos instaladores de adsl le piden su numero de movil al cliente para configurarles la seguridad WEP o WPA con dicho numero como contraseña.
en estos supuestos, cuando la seguridad es WEP, esto no cambia nada: la red ya es insegura de por sí por el simple hecho de ser WEP y no importa qué contraseña tenga; pero veamos cuando está protegida con WPA:
la manera estúpida de Auditar estas redes es haciendo un wordlist que comprenda desde 600000000 hasta 699999999.
eso son 100 millones de combinaciones. a una media de 800 keys por segundo en mi aircrack, tardo 125.000 segundos, o lo que es lo mismo: 34 horas y 43 minutos.
No es descabellado hacer un ataque de fuerza bruta y esperar pacientemente. Ya queda claro que no es buena idea proteger redes wifi con contraseñas de tipo "mi número de móvil".
he dicho que la forma estúpida de hacerlo era esta: un diccionario desde 600000000 hasta 699999999.
Pero yo no soy estúpido :)
REFINANDO EL DICCIONARIO
Todos sabemos que en ese rango de numeros hay muchos espacios en blanco, numeraciones que no se usan, y que por tanto el wordlist se podría optimizar muchísimo.
Solo hay que preguntarle a google, a ver si tiene una lista de prefijos de numeros de movil:
http://personal.telefonica.terra.es/web/oscarmartinez/v2/+010209+1112List+of+mobile+companies+prefixes.html
y ahora guardamos esa lista en un txt, por ejemplo en prefijostelefonicos.txt
con un poco de paciencia y un editor de texto, le damos a estos prefijos telefónicos un formato que sea compatible con el formato de plantillas de mi generador de diccionarios favorito, el crunch.
y tenemos esto...
600%%%%%%
6010%%%%%
6011%%%%%
6012%%%%%
6021%%%%%
6030%%%%%
605%%%%%%
606%%%%%%
607%%%%%%
608%%%%%%
609%%%%%%
610%%%%%%
6111%%%%%
6116%%%%%
615%%%%%%
616%%%%%%
617%%%%%%
618%%%%%%
619%%%%%%
620%%%%%%
622%%%%%%
625%%%%%%
626%%%%%%
627%%%%%%
628%%%%%%
629%%%%%%
630%%%%%%
6321%%%%%
633%%%%%%
634%%%%%%
635%%%%%%
636%%%%%%
637%%%%%%
638%%%%%%
639%%%%%%
6400%%%%%
6401%%%%%
6422%%%%%
6441%%%%%
6442%%%%%
6443%%%%%
6444%%%%%
645%%%%%%
646%%%%%%
647%%%%%%
648%%%%%%
649%%%%%%
650%%%%%%
651%%%%%%
652%%%%%%
653%%%%%%
654%%%%%%
655%%%%%%
656%%%%%%
657%%%%%%
658%%%%%%
659%%%%%%
660%%%%%%
661%%%%%%
662%%%%%%
663%%%%%%
664%%%%%%
665%%%%%%
666%%%%%%
667%%%%%%
6688%%%%%
669%%%%%%
670%%%%%%
671%%%%%%
6720%%%%%
6721%%%%%
6722%%%%%
6723%%%%%
6724%%%%%
6725%%%%%
675%%%%%%
676%%%%%%
677%%%%%%
678%%%%%%
679%%%%%%
680%%%%%%
6846%%%%%
685%%%%%%
686%%%%%%
687%%%%%%
6886%%%%%
6888%%%%%
689%%%%%%
690%%%%%%
691%%%%%%
692%%%%%%
6931%%%%%
6932%%%%%
6933%%%%%
6934%%%%%
6935%%%%%
6936%%%%%
6937%%%%%
6938%%%%%
6939%%%%%
695%%%%%%
696%%%%%%
697%%%%%%
6981%%%%%
699%%%%%%
en total, 105 prefijos.
puede que haya más prefijos nuevos actualizados por ahi. si alguien no encuentra su numero de movil en el diccionario, que me avise.
total, que ya hemos pasado de tener 105 prefjos telefonicos a tener 105 plantillas de crunch. crunch ya sabe qué es lo que tiene que hacer con una de esas, y en cada simbolo "%" crunch realizará una sustitución por todas las combinaciones posibles del 0 al 9.
asi que ahora, para cada plantilla que tenemos, tenemos que ejecutar crunch con los debidos parámetros para que genere un diccionario.
crunch 9 9 -t 600%%%%%% -o diccionario1
crunch 9 9 -t 6010%%%%% -o diccionario2
crunch 9 9 -t 6011%%%%% -o diccionario3
crunch 9 9 -t 6012%%%%% -o diccionario4
crunch 9 9 -t 6021%%%%% -o diccionario5
crunch 9 9 -t 6030%%%%% -o diccionario6
...
etc etc etc
Pero aquí somos gente refinada, no unos machacas, asi que no vamos a andar leyendo a ojo nuestro archivo prefijostelefonicos.txt para luego andar picando a mano 105 comandos.
Evidentemente tenemos que usar scripting para automatizar el proceso.
He utilizado un miniprograma en bash para automatizar esta parte. Con solo 5 lineas de código es suficiente:
numerodediccionario=1
for plantilladecrunch in $(cat prefijostelefonicos.txt); do
crunch 9 9 -t $plantilladecrunch -o diccionario"$numerodedicionario".dic
let numerodediccionario=$numerodediccionario+1
done
Despues de escasos minutos, tenemos 105 archivos .dic, cada uno con los diferentes trozos de diccionario correspondientes a cada prefijo telefónico:
diccionario1.dic
diccionario2.dic
...
Ahora me gustaria concatenarlos todos en uno solo para no andar mareando la perdiz, así que, desde la misma consola, me hago un miniprograma de una sola linea que me los junte:
root@blah:~# for fragmento in $(ls diccionario*.dic | sort -n); do cat $fragmento >> diccionariocontodo.dic
el motivo por el que utilizo este comando tan complejo en lugar de un simple
cat diccionario*.dic >> diccionariocontodo.dic
es porque quiero concatenar los archivos en orden numérico ("sort -n" hace la magia)
diccionario1
diccionario2
diccionario3
diccionario4
diccionario5
diccionario6
diccionario7
diccionario8
diccionario9
diccionario10
diccionario11
...
y si lo hicera con un simple cat, los archivos quedarian concatenados en un orden alfabético super feo que no me interesa:
diccionario1
diccionario10
diccionario11
...
diccionario100
diccionario101
..
diccionario2
diccionario20
...
FInalmente hacemos unas pruebas.
Buscamos el número de movil de mi tia, que tiene varios años de antiguedad, de esta forma comprobamos que el proceso de refinamiento no se ha dejado fuera números válidos.
grep 6xxxxxxxx diccionariocontodo.dic
donde 6xxxxxxxx es el numero de mi tia.
Luego pruebo con mi número, que solo tiene unos meses de vida. De esta forma comprobamos que los números mas recientes tambien estan comprendidos en la lista de prefijos que conseguimos por internet.
El resultado tambien ha sido positivo: Mi número está en el diccionario.
RESULTADO FINAL
De 99.999.999 combinaciones hemos bajado a 73.500.000, logrando una mejora del 26,5% de velocidad a la hora de Auditar una contraseña basada en un número de teléfono movil.
Ahora para Auditar una red WPA cuya contraseña es el número de movil de su dueño, hemos pasado de necesitar 34h 43m inicialmente a 25h 30m como máximo.
DESCARGA: DICCIONARIO CON TODOS LOS NUMEROS DE MOVIL DE ESPAÑA
comprimido con gzip, 157Mb
http://www.multiupload.com/SSCMSNJX8G
MD5: cf930a55cb620376830485d9896855f7
Post fusionado: 20-08-2011, 22:19 (Sábado)
hala, ya está editao. es que salí un rato y esto quedó subiendo :)
-
Hola... te ha quedado un diccionario monumental y digo monumental por lo grande que es y aunque lo has refinado un monton siguen siendo 25 horas de diccionario..jajaja
a mi particularmente me gustan mas manejables o en trozos como dices al principio... bueno y la pregunta seria...
¿ como harias para crear un diccionario solo de una provincia concreta ?
recibe un saludo....
-
hombre, me temo que al ser numeros de moviles no podemos clasificarlos por provincia, porque no existe tal clasificcacion.
de hecho ni siquera es ya valida la clasificacion por operador de los móviles,debido a la portabilidad de numeros moviles vigente desde hace unos años.
PD: si ese diccionario te parece monumental, no te metas a trabajar en serio con ellos, que te dará un mareo. por ahi hay diccionarios de 20gb.
PPD: a mi me gustaria, puestos a pedir, tener un diccionario mágico que tuviera todas las claves de todo, y que ademas se pasara en un segundo, pero como eso implica violar las leyes de la física, pos me temo que no podrá ser... jajajaja.
no quereis fuerza bruta? pues bienvenidos a su maravilloso mundo: 25 horas es MUY POCO TIEMPO en términos de bruteforcing. No es para novatillos.
-
yo tengo una duda pero del script eso de automatizar tareas me gusta
numerodediccionario=1
for plantilladecrunch in $(cat prefijostelefonicos.txt); do
crunch 9 9 -t $plantilladecrunch -o diccionario"$numerodedicionario".dic
let numerodediccionario=$numerodediccionario+1
done
esto deberiamos guardarlo en formato.sh darle permisos de ejecucion y correrlo desde la terminal
o escribirlo en una linea en la terminal y ejecutarlo? de los modos he probado pero no me rula.
luego se pueden precom****r como explicaste en los Post anteriores (caso tele2) no?
Xdon por reavivar viejos hilos
edito: despues de hacer los 105 prefijos me encuentro que al unirlos tengo el mismo problema:
introduzco en la terminal
for fragmento in $(ls diccionario*.dic | sort -n); do cat $fragmento >> diccionariocontodo.dic
incluso cambio ls diccionario*.dic
por ls diccionario*
porque yo no le puse estension .dic
sabeis cual puede ser el problema??
gracias
-
Mi agradecimiento por dicho diccionario, por mi experiencia como tecnico, se suele colocar un 0 delante del numero de movil
Se podria crear dicho diccionario.
-
Link roto y me interesa, alguien lo tiene a mano o nuevo link?
Saludos
-
¿Podrías resubir el diccionario? Gracias
-
para que descargarlo si puedes hacertelo con:
john -i:digits -stdout:8 | grep -E "^[[:digit:]]{8}$" | sed "s/^/6/g"
o para pasarlo a un fichero:
john -i:digits -stdout:8 | grep -E "^[[:digit:]]{8}$" | sed "s/^/6/g" > movil.dic
-
Lo siento pero mis pequeños conocimientos me impiden generar este diccionario y la respuesta anterior no la entiendo.
Gracias por todo, si es posible subirlo algun servidor, este y un diccionario de fechas de nacimiento hasta hoy, ya que tampoco entiendo como se genera.
Muchas Gracias.
-
Subo fichero con el script bash
#!/bin/bash
#
# alist3r (20/08/2011)
#
# https://foro.seguridadwireless.net
#
# Crea diccionario con todos los telefonos moviles de españa (menos los que
# empiezan por 7)
# Crunch debe estar instalado
#
# error: "let not found", run with "bash" rather than "sh": bash dictelfmovil.sh
# error: "let not found", ejecuta con "bash" en lugar de "sh": bash dictelfmovil.sh
#
# revision Niroz (12/11/2012)
clear
let "numerodicci=1"
fichero=diccionario$numerodicci
for prefijo in $(cat prefijostelf); do
crunch 9 9 -t $prefijo -o $fichero;
let "numerodicci=$numerodicci+1"
fichero=diccionario$numerodicci
done
echo 'Quieres tener un unico fichero con el diccionario, (s)i/(n)o?'
read opcion
if [[ $opcion = "s" ]]; then
cat diccionario* >> dictelfs
rm diccionario*
echo 'Se guardo el archivo: dictelfs'
else
echo 'Se guardaron 105 archivos: diccionario'
fi
Ejecutar:
Terminal -> sh dictelfmovil.sh
Si error: "let not found", por ejemplo en Ubuntu, ejecuta con "bash" en lugar de "sh": bash dictelfmovil.sh
Probado, salvo prueba en contra, en WifiWay 3.4 y Ubuntu 12.04
https://www.box.com/s/y8nv8m4rc8cakvscnepv
md5: f39d0464f646d5c8595d6c5c4a119da3
-
Diccionario ya creado para descarga: http://ge.tt/7iPGHnR/v/0?c
-
buena idea la de crear el diccionario, pero creo que 73500000 se ùeden reducir, de la siguiente manera:
reducimos los prefijos a 72,
======================cortar========================
600
629
654
676
605
630
655
677
606
633
656
678
607
634
657
679
608
635
658
680
609
636
659
685
610
637
660
686
615
638
661
687
616
639
662
688
617
645
663
689
618
646
664
690
619
647
665
691
620
648
666
692
622
649
667
693
625
650
669
695
626
651
670
696
627
652
671
697
628
653
675
699
========================cortar======================
creando prefijosmovil.txt
y crearemos el diccionario evitando los que tengan numeros que se repitan 4 o mas veces
while read p;do echo $p;crunch 9 9 '1234567890' -d 3 -t $p%%%%%% -o "$p"numbers.txt; done < prefijos.txt
esto creara los ficheros a concatenar
para que tengan un cero al inicio
while read p;do echo $p;crunch 10 10 '1234567890' -d 3 -t 0$p%%%%%% -o 0"$p"numbers.txt; done < prefijos.txt
ahora solo queda unir los ficheros
for p in 6*txt; do cat $p >> numerosmovil.txt;done
for p in 0*txt; do cat $p >> numeros0movil.txt;done
for p in *txt; do cat $p >> movilbrute.txt
un saludo