domingo, 26 de agosto de 2012

[Hack: Ataque dirigido parte.3] Penetrar en una red

Ya preparamos la tarjeta de red en la entrada:
http:\\gonzac-studios.blogspot.com.ar/2012/08/hack-ataque-dirigido-parte1-mejorando.html
E instalamos y configuramos la maquina virtual:

Quizá esta es una de las partes mas entretenida. Hay que aplicar todos los recursos necesarios para poder tener acceso a la red (En caso que la red no esté abierta, obviamente).

INGENIERÍA SOCIAL:
El primer paso es conseguir toda la información que nos pueda ayudar, no estoy hablando de enumeración de sistemas. Sino de ir físicamente al lugar y "preguntar".
Lo mas sencillo seria fingir ir a hacer unos tramites, utilizar el smartphone y preguntar la contraseña para conectarse. Otro caso, conversar mientras se espera y principalmente no demostrar conocimientos informáticos. Si hay algo que aprendí es que la gente se siente orgullosa del lugar donde trabaja y con gusto te termina explicando como se trabaja en el lugar, el sistema y la red. No hace falta estrictamente preguntar por la red, ya que hay que pasar desapercibido. Entonces en este punto anotar "nombres", cualquier otro nombre alternativo o anagrama que represente a la organización, información 2.0 (paginas y redes sociales), fechas y números (teléfonos, dni, etc). Una forma un poco mas "ruidosa" podría ser fingir estar haciendo un informe escolar sobre la organización.
Ahí no termina todo, también en lo posible hay que buscar datos en las redes sociales, nombre de hijos, fecha de cumpleaños e intereses.
Ya con toda esta información tenemos gran cantidad de posibles contraseñas. Para aumentar mas la posibilidad a estas contraseñas añadimos una combinación numérica como, 123 o 123456. Que a mi parecer seria las mas utilizadas. Incluso pueden crear "diccionarios" (lista de palabras a utilizar para fuerza bruta) con las palabras y números para crackear la red.

ANÁLISIS FÍSICO:
Si hasta ahora no consiguieron entrar a la red va a haber que usar técnicas hack para WEP o WPA. Pero para esto habrá que ubicarse relativamente cerca del "punto de acceso", por suerte tenemos nuestra antena o tarjeta de red mejorada (No hace falta que sea una parabólica, puede construirse una guía ondas, o inclusive sustituir la antena que viene por una direccional).

Otro punto importante es observar todo el perímetro, en caso de ver algún enrutador, las computadoras como están conectadas e inclusive las cámaras. Observar toda la zona exterior, y donde nos vamos a ubicar. Ademas, seria recomendable desde un automóvil polarizado o una camioneta tipo van. No por nada se eligieron en las películas, ademas del espacio no quedarás como el loco de la antena, recuerda que la idea seria pasar desapercibido. Muchos dirán que al estar dentro de la estructura metálica del auto, actuará como jaula de faraday bloqueando la señal, pero no es del todo cierto.
Para determinar el angulo de visión de las cámaras hay que tener en cuenta dos factores, el primero, que se utilizan para un mayor rendimiento a corta distancia y segundo que utilizan un lente estándar. Es decir que cada una tienen un angulo aproximadamente de 50º.

Dependiendo de la red, vamos a necesitar quizá bastante tiempo por lo que sería ideal tener una batería de larga duración y un cargador con un conector al encendedor del automóvil, como se vió en la entrada sobre las baterías:
http://gonzac-studios.blogspot.com.ar/2011/11/baterias-de-notebook-upgrade-msi.html

HACK CLAVE WEP:
El cifrado que se utiliza en WEP, no es mas que un RC4. Este es un cifrado de flujo de clave simétrica o privada, es decir que se utiliza una misma clave tanto para cifrar como para descifrar el mensaje. Y se denomina de flujo porque el cifrado se realiza bit a bit, byte a byte expandiendo la clave, a diferencia del cifrado en bloque. Y luego se le aplica una función xor en conjunto con una clave pseudoaleatoria. En el caso de la clave WEP se combina la calve secreta con un vector de inicialización público. Quedando una formula de la siguiente manera
R= Texto (XOR) RC4(IV,k)
Que sirve para cifrar, y luego se invierte para descifrar como toda operación matemática.
¿Como actúa la vulnerabilidad? Pues, es bastante sencillo. Si tenemos un Resultado1 para un X1 (en este caso un texto) y un Resultado2 para un X2, aplicando un poco de matemáticas podemos obtener una equivalencia.
R1 = X1 (xor) RC4(iv,k)
R2 = X2 (xor) RC4(iv,k)
Si, R1 (xor) R2 = [X1 (xor) RC4(iv,k) ] (xor) [X2 (xor) RC4(iv,k)] entonces X1(xor)X2.
Como los iv son aleatorios, mientras mas paquetes se hayan capturados mas posibilidades hay de que se repitan los iv.
Y para el texto plano simplemente se reconoce a partir de la estructura de trafico ip o paquetes broadcast, etc.

En la practica, iniciamos la maquina virtual y arrancamos la placa de red en /Configuración/Dispositivos USB
Abrimos una consola y tecleamos iwconfig para saber la interfaz de nuestra placa, luego iniciamos el modo monitor con airomon-ng start 'interfaz'.

Ahora que sabemos la interfaz del modo monitor, en este caso mon0. Ya podemos capturar los paquetes que viajan.
Tecleamos airodump-ng 'interfaz_monitor' para monitorear las redes, sus datos y los dispositivos conectados.
Paramos la captura con Control+C, y ya tenemos los datos necesarios. De forma parecida, vamos a capturar los paquetes pero filtrando el contenido por el MAC del acces point (BSSID) y el canal por el cual se transmite (columna CH), guardando la información en un archivo pcap. Para lo que tecleamos airodump-ng -c 'canal' --bssid 'mac' -w 'nombre_del_archivo' 'interfaz_monitor'
*Nota: el nombre del acces point (ESSID) no puedo mostrarlo por razones de confidencialidad.

Ahora abrimos otra consola y se debe enviar una falsa autenticacion para asociarse al AP y mas tarde poder inyectar paquetes. Para eso, usamos el comando aireplay-ng -1 'tiempo_de_reasociacion' -e 'nombre_del_Ap(essid)' -a 'mac_del_Ap(bssid)' -h 'nuestra_mac' 'interfaz_monitor' .

A diferencia de otros tutoriales, lo voy a hacer de la forma compleja. Esta se aprovecha de algo llamado en redes, fragmentacion. En resumen, como un paquete tiene que tener una longitud determinada (MTU), si se supera esa cantidad se debe fragmentar en varios paquetes donde cada uno tiene el numero de fragmento y de secuencia. Si recuerdan lo que dije al comienzo, se puede obtener texto plano a partir del tipo de paquetes etc. Un paquete valido posee una cabecera estática LLC del control de enlace lógico en los primeros 8 bytes. A estos datos solo hay que aplicarle la operación XOR. Como se necesita añadirle una sección ICV a los paquetes, solo quedará espacio para 4 bytes por lo que se utiliza la fragmentacion.
aireplay-ng -5 -b 'mac_del_Ap(bssid)' -h 'nuestra_mac' 'interfaz_monitor'
-Nos preguntara si usar el paquete, y respondemos Yes
-Al finalizar, se guardará todo en un archivo xor.

Una vez obtenida la informacion solo hay que crear el paquete que luego se va a inyectar. Para eso usamos la herramienta packetforge de la siguiente forma:
packetforge-ng -0 -a 'mac_del_Ap(bssid)' -h 'nuestra_mac' -k 255.255.255.255 -l 255.255.255.255 -y 'nombre_del_xor' -w 'nombre_del_paquete'
*Nota: la ip -k y -l son la del acces point y una ip valida. Los valores 255, es debido a que se desconoce estos valores.
Luego solo hay que inyectar el paquete con el comando aireplay-ng -2 -h 'nuestra_mac' -r 'nombre_del_paquete' 'interfaz_monitor'.
-Nos preguntará usar ese paquete, y respondemos Yes
Lo único que queda es esperar a atrapar suficientes IVs, que aparecen como #Data en la ventana donde se está corriendo el airodump. Lo ideal es capturar unos 60.000 para estar seguros, pero aveces se puede con solo unos 15.000.
Finalmente corremos el Aircrack para obtener la contraseña, de la siguiente forma: aircrack-ng -s 'nombre_del_archivo(el indicado al comienzo con airodump)*.cap'
-Por fin!, ya tenemos la contraseña. En este caso secfinanzas05

HACK CLAVE WPA:
En las claves wpa se siguió utilizando el algoritmo rc4, pero para protegerlo de ataques se añadió un contador de tramas y un código de redundancia cíclica para comprobar la integridad de las mismas. Esto evita los ataques de replicacion, a lo que ademas añade un bloqueo en caso intentos de ataques. Con el tiempo se fue mejorando, y surgiendo otros tipos como wpa2. Generalmente se utiliza autenticacion PSK, es decir claves pre-compartidas (Existen otros). Su cifrado tkip genera claves diferentes y dinámicas por usuario a partir de un hash aleatorio, la MAC del usuario y un vector de inicializacion.
Debido a esto la única forma de romper la clave es mediante fuerza bruta. Por lo que debemos obtener el denominado "handshake" que se genera y se envía al momento que un 'cliente' se conecta a la red.
Al igual que con la clave wep, iniciamos el modo monitor, luego el airodump para ver las redes, y monitoreamos el trafico hasta capturar el handshake.

--------
Para no esperar tanto tiempo y si hay alguien conectado. Simplemente lo deautentificamos para que se vuelva a conectar y así capturar el handshake.
Una vez que tenemos el cliente, abrimos una nueva consola y tecleamos
aireplay-ng -0 1 -a 'mac_del_Ap(bssid)' -c 'mac_del_cliente(station)' 'interfaz_monitor'
-------
Ya tenemos el hanshake ahora solo queda crackearlo. Pero no lo vamos a hacer a ciegas.
1)Lo ideal si usaron ingeniería social, pueden construir un diccionario con posibles contraseñas.
2)Si ese diccionario no dio resultado, usamos un diccionario de contraseñas mas utilizadas.
3)Si la organización pertenece a algún rubro especifico, utilizamos un diccionario de palabras especificas por ejemplo palabras de informática.
4)Podemos dividir en 2 diccionarios con nombres, uno con nombres de mujeres y otros de hombres.
5)Utilizar un diccionario con palabras comunes, medianamente amplio.
6)Utilizar un diccionario con un rango de números.

Para usar un diccionario con aircrack solo se realiza de la siguiente forma:
aircrack-ng -w 'ruta_del_diccionario' -b 'mac_del_Ap' -a 2 'nomber_archivo'
Sino generando una salida con john the ripper:
john -incremental=digits --stdout | aircrack-ng -w - -b 'mac_del_Ap' -a 2 'nomber_archivo'

REDUCIR EL TIEMPO:
Teniendo el hanshake capturado podemos transportar el archivo generado.
TRABAJO DISTRIBUIDO: Una forma de reducir significativamente el tiempo es utilizando múltiples computadoras que trabajen paralelamente para resolver la contraseña, por lo que conviene siempre tener distintas listas en archivos separados. Una notebook con un procesador de dos núcleos resuelve aproximadamente unas 450 contraseñas por segundo. Si tenemos 3 notebook trabajando al mismo tiempo serian unas 1350 por segundos.
PARALELISMO: Actualmente el desarrollo de las tarjetas gráficas, han creado el termino gpgpu o gpu de propósito general. Si bien el procesador de estas tarjetas no tiene una frecuencia mayor a la de un CPU. Su tecnología de unidades segmentadas, permite que una gran cantidad de unidades funcionales puedan resolver cantidades enormes de cálculos paralelamente. Aplicaciones como pyrit y oclhashcat permiten utilizar el gpu. Tal es la diferencia que una tarjeta NVIDIA Tesla S1070 es capaz de resolver aproximadamente 52.400 contraseñas por segundo.
OVERCLOCKING: Aunque actualmente no se practica con mucha frecuencia debido al uso masivo de portátiles. Este es una buena opción para mejorar algo del rendimiento. Es imprescindible que aunque no se haya modificado el reloj, se mantenga frió el cpu.
LISTAS PRECOMPUTADAS: Las listas PMKs son tablas que utilizan la PMK (clave maestra pareja), que se compone de la clave y el nombre de la red. Es decir que si tenemos un nombre de red genérico podemos usar estas tablas para saltarnos el paso donde aircrack calcula la PMK por cada palabra.

Próxima entrada:

6 comentarios:

  1. HOla pude hackear una red wap psk con el metodo de john the ripper. Era unos numeros muy facil!
    gracias

    ResponderEliminar
    Respuestas
    1. Que bueno que te haya servido. Recuerda que entrar a una red sin autorizacion es ilegal, dependiendo de tu país de origen.

      Saludos

      Eliminar
  2. El sistema operativo que usas para esto es Linux? se puede hacer desde el MS-DOS de windows? por los momentos soy algo ignorante en el tema.

    ResponderEliminar
    Respuestas
    1. Es backtrack de linux, en http:\\gonzac-studios.blogspot.com.ar/2012/08/hack-ataque-dirigido-parte2-preparando.html explica como instalarlo para usarlo en forma "virtual" en una ventana de windows.
      Desde windows directamente casi no se consiguen los drivers para poner la placa en modo monitor.

      saludos

      Eliminar
  3. quisiera saber los pasos para descifrar smgstore.db (.db)
    solo con esa extension por, por k asi aparece en mi bberry
    y aparte tengo otros archivos que genera, te pondre como aparecen los demas archivos asi "messageStore.db.d.1354509123823.bak"
    mi correo es arthur_chunco@hotmail.com
    agradeceria, pos es de tal importancia

    ResponderEliminar
    Respuestas
    1. te agradeceria que comentes en la entrada especifica del tema. Los achivos de whatsapp en Blackberry tienen enciptacion propia del telefono. X lo que la key es demaciado larga para fuerzabruta.
      ¿Intentaste abrirlo con el block de notaS?

      saludos

      Eliminar