elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 51
31  Programación / Desarrollo Web / [JSTL] Como comprobar si una variable es un numero en JSTL en: 10 Abril 2011, 20:42 pm
Hola en problema es el siguiente:

En JSTL para recoger los parametros de la URL (método GET) lo hago mediante la variable ${param.nombre} (para una url al estilo pagina.jsp?nombre=valor)

El problema es que la variable es un numero (debería serlo), y tengo que hacer la comprobación <c:when test="${param.nombre > 4}">. Eso da un error si el parametro es nulo o es una letra. para comprobar si es nulo entonces lo hago asi <c:when test="${(param.nombre != null) && (param.nombre > 4)}">

Llegados a este punto tengo el problema de que si alguien introdujera el parametro como una letra (por ejemplo pagina.jsp?nombre=asd) el servidor daria un fallo en ejecucion porque no puede comparar un string con un numero. ¿Como puedo añadir una comparación en JSTL o que podría hacer para evitar que me falle si se introducen letras en lugar de numeros en el parametro?

Saludos ;)
32  Seguridad Informática / Wireless en Linux / Re: [Guia] Parchear aicrack-ng para que funcione con diccionarios WEP hexadecimales en: 25 Octubre 2010, 07:12 am
OK gracias por el aporte, realmente no lo había mirado en windows solo en linux.

Citar
P.D: Por cierto, yo la opción -n para introducir la longitud de la clave como parámetro no la utilizo y funciona bien, al menos con diccionarios en formato ASCII.

Si el diccionario es de 128bit no es necesario especificar el parametro -n pero si es de otra longitud (como de por ejemplo 64bits) si es necesario, o al menos a mi sino no me funciona.

Saludos ;)

EDIT: Ayer probando unos diccionarios me pasó lo mismo que a ti, que empieza el ataque PTW, probe poniendo el -K pero me empezaba el ataque Korek normal, es como si no me reconociera el diccionario. Despues de varias comprobaciones el problema era justamente ese, no me reconocía el diccionario. Al parecer ocurría porque el diccionario era mayor de 2GB. Probe a acortar el mismo diccionario a menos de 2GB y funcionaba perfectamente jeje, asik hay que tener en cuenta que aircrack-ng no reconoce diccionarios mayores de 2GB (al menos para las contraseñas WEP)
33  Seguridad Informática / Hacking Wireless / Re: [R-WlanXDecrypter 0.9] - Generador de diccionarios para claves por defecto de R en: 12 Octubre 2010, 02:44 am
Para que funcione correctamente hay que poner el valor del separador en formato decimal. Si por ejemplo quieres separar los bytes con el simbolo # (por poner un ejemplo) no puedes poner esto:

Código:
R-WlanXDecrypter diccionario.txt -h #

Con eso no funcionará, hay que expresar el valor del caracter en su formato decimal, el valor decimal del caracter # es 35. Por lo tanto tienes que poner:

Código:
R-WlanXDecrypter diccionario.txt -h 35

Lo mismo se aplica para el parámetro -cm, no puedes especificar el símbolo directamente tienes que poner su representacion decimal

Recuerda que si no especificas el valor para -h se coje 58 (el simbolo : ) y para -cm se coje 48 (la representacion decimal del 0 ascii).

Y una pregunta por curiosidad, porque quieres cambiar el separador? hay algun programa que utilice un formato diferente para diccionarios hexadecimales o algo?
34  Seguridad Informática / Hacking Wireless / Re: [R-WlanXDecrypter 0.9] - Generador de diccionarios para claves por defecto de R en: 11 Octubre 2010, 07:45 am
Post actualizado a la última versión 0.9

Realmente no varía mucho a la primera versión, principalmente he corregido algunos pequeños errores y ahora se verá antes de crear el diccionario lo que ocupará y el número de claves que tendrá, tambien se verá el status del proceso de creación del diccionario por pantalla (puede ser util en ordenadores lentos o con diccionarios grandes para ver el progreso actual). En el post principal en el apartado 'Changelog' están los principales cambios.

Saludos ;)
35  Seguridad Informática / Wireless en Linux / Re: [Guia] Parchear aicrack-ng para que funcione con diccionarios WEP hexadecimales en: 7 Octubre 2010, 21:58 pm
Si, es muy importante poner la longitud como parámetro o no funciona.

Hay una cosa que tambien quiero probar, y es haber si se puede utilizar un diccionario hexadecimal de 128bits con -n 64 para contraseñas de 64 bits, es decir, para no necesitar tener un diccionario hexadecimal de 64bits y otro de 128bits, simplemente tener uno de 128 y utilizando -n 64 a ver si trunca la clave para convertirla en una de 64 (ya que al fin y al cabo lo que resta de la clave de 128 con respecto a la de 64 son todo 0's), pero vamos tampoco es que sea muy necesario simplemente es para ahorrar algun GB en mi ordenador jeje...

Y weno ahora me queda intentar compilarlo para Windows. Tambien miraré a ver si consigo compilarlo con el compilador de Intel, ya que he leido por aí que existen versiones del aricrack-ng compiladas con este compiler pero no he encontrado ninguna para probar.


Saludos ;)
36  Seguridad Informática / Wireless en Linux / Re: [Guia] Parchear aicrack-ng para que funcione con diccionarios WEP hexadecimales en: 7 Octubre 2010, 21:08 pm
Ya me comentarás que tal te fue, cualquier duda, sugerencia o lo que sea ponedla aqui.

Lo que no conseguí hacer fue compilarlo en la versión para windows, ¿aircrack-ng para windows que es compilado con el mismo codigo usando Cygwin?

Saludos ;)
37  Seguridad Informática / Hacking Wireless / [R-WlanXDecrypter 1.0] - Generador de diccionarios para claves por defecto de R en: 7 Octubre 2010, 19:44 pm
R-WlanXDecrypter 1.0
by nhaalclkiemr & millanzarreta - (incluido en la suite Wifiway desde la versión 2.0.2)

Aqui os presento una utilidad que he creado para la generación de diccionarios de claves por defecto de R, una compañía de Galicia. Son las conocidas como R-WlanX (donde X es un número) o nombres similares. Recientemente también se ven bastantes redes wifimedia_R-XXXX (las X son números), las cuales también analizaremos.

He visto por aí que existe un Rwlandecrypter (por eso le puse otro nombre), sin embargo lo he probado y no me ha convencido, crea un diccionario de apenas 14 MB que incluye solo una pequeña parte de las posibles claves por defecto.

Antes de presentar el programa me gustaría analizar estas redes para tener claro que tipo de contraseñas utilizan los routers de R por defecto.

Analisis

Redes wifimedia_R-XXXX:

Estas redes son las que vienen con ciertos routers que proporciona R. La compañía los proporciona si tienes contratado un cierto servicio llamado wifimedia. Dicho servicio viene por defecto de forma gratiuta para conexiónes de 30Mb o más, aunque también se puede contratar por cierto precio para conexiones de menos velocidad, pero esto último no es común. Es decir, estas redes suelen ser de alta velocidad. Traen contraseña WPA/WPA2, sin embargo, la contraseña por defecto es ridicula. Por esto mismo en ocasiones el técnico que instala el router cambia esta contraseña, aunque eso no es lo normal.

La contraseña por defecto de estas redes es la MAC del router con el último digito terminado en 0, las letras suelen ser minúsculas pero en ocasiones pueden ser mayúsculas. Un ejemplo:

Código:
SSID: wifimedia_R-1234
MAC: 00:26:5B:1E:28:A5

La clave será: 00265b1e28a0
También puede ser: 00265B1E28A0

Como se puede observar la seguridad de estos routers es ridícula, no hace falta ni capturar paquetes ni usar el programa R-WlanXDecrypter ni nada.

Redes R-WlanX con Clave WEP:

Lo primero es aclarar que ni el SSID ni la MAC dan detalles sobre la clave. El numero del SSID normalmente suele ser el canal (aunque no siempre) del AP. No siempre se cumple el formato exacto de "R-WlanX", a veces se mezclan mayusculas minusculas, a veces hay espacios, a veces guiones, a veces nada separando las palabras; e incluso a veces se ven palabras adicionales en el SSID.

La manera más universal de definir las contraseñas por defecto de R es que son números seguidos de ceros. ¿Cuantos números antes de los 0's? Normalmente 8, en alguna ocasión 6. Ahora independiente de esto tenemos cuatro posibilidades de tipos de contraseñas por defecto (descartando contraseñas mayores de 128 bits):

  • Contraseña WEP 128 bit ASCII (ej.: "2010945600000") : El tipo de contraseña más común
  • Contraseña WEP 128 bit Hexadecimal (ej.: 20:10:94:56:00:00:00:00:00:00:00:00:00): Raras, pero haberlas hailas
  • Contraseña WEP 64 bit ASCII: Nunca he visto una de este tipo
  • Contraseña WEP 64 bit Hexadecimal (ej: 20:10:94:56:00): Se ven bastantes

¿Significan algo los números? ese tema es bastante misterioso:

-Algunas claves empiezan por un año (ej.: "2008") seguidas de 4 numeros aleatorios; se cree que el año es el de fabricación de router, pero nos encontramos muchos años futuros (ej.: "2023"), asi que no parece ser ese el caso. Igualmente la mayoría de claves empiezan por 2, si queremos reducir el intervalo de busqueda podemos empezar buscando claves que empiecen por 2. Recientemente se ha descubierto que este número parece ser el ID que R asigna a su cliente (dato completamente desconocido para nosotros que solo está presente en sus facturas).

-En otros casos, sobre todo cuando se tratan de 6 numeros seguidos de 0's (en vez de 8 ) se cree que puede ser el número de telefono sin el prefijo. Saber esto no nos ayuda mucho, pero en caso de estas claves tan solo son 6 números seguidos de 0's en vez de 8, lo que reduce muy sustencialmente nuestro intervalo de busqueda

Bueno, independientemente del origen de los numeros, nos encontramos con que solo varían como máximo 8 digitos, que siempre son numeros, por lo que  tenemos 10^8=100.000.000 de posibilidades para cada tipo de contraseñas, que no son tampoco muchas. En un ordenador portatil actual de gama media se comprobarían todas las claves en unas 2 horas o menos aproximadamente.

Redes R-WlanX con Claves WPA:

En la actualidad es más frecuente ver routers de R con claves por defecto WPA que con claves WEP, aunque el patrón de contraseñas es similar al WEP. En este caso las contraseñas por defecto son claves de 8 dígitos pero sin seguir de 0's, al estilo XXXXXXXX (ej.: "20109456"). Este número parece ser el ID del cliente, y parece ser que este número tambien empieza en la mayoría de ocasiones (hasta ahora en todas las probadas) por 2, por lo que las contraseñas se nos reducirian solamente a las que empiezan por 2 (estilo 2XXXXXXX).

Tambien se han detectado casos de claves WPA de 10 dígitos, aunque siguen siendo solo 8 dígitos variables, pero con dos 0's a continuación (aunque estas son mucho menos frecuentes). Al estilo XXXXXXXX00 (ej.: "2010945600"). Al igual que con las claves de 8 dígitos, solo se han encontrado casos de contraseñas que empezaran por 2 al estilo 2XXXXXXX00.

El tercer patrón de claves WPA que se ha detectado se trata de una contraseña de 16 dígitos, pero que realmente es una contraseña de 8 dígitos variables repetida dos veces, al estilo ABCDEFGHABCDEFGH (ej.: "2015483920154839").

A la modesta velocidad de crackeo de 1000key/sec, tardaríamos sobre 28horas en comprobar el diccionario completo de claves. Si probamos solo las claves que empiezan por 2, tardaríamos aproximadamente 3 horas en comprobarlas.

Con esto terminamos el análisis y procedo a explicar la aplicación.

R-WlanXDecrypter

El programa soporta actualmente plataformas Unix y Windows. Las opciones básicas son las necesarias para crear diccionarios para contraseñas WEP, y las opciones adicionales, que explicaré mas tarde, son una manera de crear diccionarios más personalizados y que también sirven para claves WPA.

El proyecto está ahora disponible con su código fuente en GitHub. Se creará un tag por cada versión que se libere, y los desarrollos principales se harán sobre el master:
https://github.com/millanzarreta/R-WlanXDecrypter



Opciones básicas

  • -n <nbits>: Crea el diccionario para claves de 64bits, 128bits, etc... Aunque tambien es compatible para claves más grandes como 512bits nunca me he encontrado una de R de ese tipo. Si no especificamos el parámetro el programa coge una clave por defecto de 128bits
  • -h <sep>: Se creará un diccionario en formato hexadecimal, no es un formato alternativo de guardar las claves, sino que es un diccionario diferente a uno creado sin esta opción -h. El parametro <sep> es el caracter (en decimal) separador de los bytes expresados en formato hexadecimal, si no se especifica por defecto es : , que es el símbolo más utilizado para esta función y el que utiliza aircrack-ng

Utilizando solo estas opciones podemos crear diccionarios universales para las contraseñas de R con claves WEP. Si creais el diccionario para aircrack-ng es importante recordar que no admite diccionarios mayores de 2GB. Por defecto el programa crea claves de 8 digitos seguido de 0's (y asi incluimos tambien a las de 6 dígitos). En las notas de la nueva versión de aircrack-ng comentan que debería soportar diccionarios mayores de 2GB, pero comprobandolo empíricamente a mi me siguen sin funcionar.

-Primero crearemos un diccionario ASCII para contraseñas de 128bits, ocupará 1,40GB:

Código:
R-WlanXDecrypter rwlan128.txt

-Ahora crearemos un diccionario Hexadecimal para contraseñas de 64 bits, ocupará 1,48GB:

Código:
R-WlanXDecrypter rwlan64hex.txt -h -n 64

-Con esos dos diccionarios deberían bastar para la mayoría de routers de R. Aún asi siempre podremos generar un diccionario Hexadecimal para contraseñas de 128bits. Este diccionario ocuparía 3,72GB:

Código:
R-WlanXDecrypter rwlan128hex.txt -h

Si creamos el diccionario para aircrack-ng hay que recordar que no admite diccionarios de más de 2GB, por lo que tendremos que dividir en dos este diccionario (por ejemplo: dos diccionarios de 1,86GB cada uno):

Código:
R-WlanXDecrypter rwlan128hex1.txt -h -max 49999999
R-WlanXDecrypter rwlan128hex2.txt -h -min 50000000

-Tambien podremos crear un diccionario para claves ASCII de 64bits, aunque nunca vi ninguna de este tipo en R el diccionario tan solo ocupa 683KB:

Código:
R-WlanXDecrypter rwlan64.txt -n 64
    Se supone que en estos diccionarios están todas las claves que puede contener un router de R, pero tenga en cuenta que pueda que existan claves de mayor longitud que 128bits, aunque nunca he visto ninguna hasta la fecha.

Opciones avanzadas:

  • -c <nchar>: Por defecto en las palabras del diccionario varian 8 digitos y despues se rellenan con 0's asta completar la longitud de la clave. Se puede utilizar esta opción si queremos especificar otro numero de digitos variables
  • -cm <decchar>: Por defecto las claves se rellenan con 0's. Con este parámetro podremos especificar otro carácter de relleno (especificar el codigo decimal del carácter)
  • -min <num>: Con esta opción podemos definir el comienzo del diccionario especificando el valor mínimo. Se especifica el valor minimo excluyendo el relleno (es decir, solo contando el número formado por los bytes variables)
  • -max <num>: Con esta opción podemos definir el final del diccionario especificando el valor máximo. Se especifica el valor máximo excluyendo el relleno (es decir, solo contando el número formado por los bytes variables)
  • -rep <num>: Con esta opción podemos especificar que la parte variable de las contraseñas generadas se repita num veces
  • -r: Si especificamos esta opción las palabras del diccionario estarán separadas por el byte LF (char 10). Por defecto están separadas por 2 bytes: CR+LF (char 13)(char 10). La mayoría de programas reconocen ambos formatos. Con esta opción ahorramos 1 byte por cada palabra.
  • -m <nbytes>: Hace lo mismo que -n (por eso no es compatible con esa opción) pero con esta opción podemos definir manualmente el número de bytes de la clave. Cuando hablamos de contraseñas de pongamos 128bits, 24 de estos se utilizan para el IV, por lo que la clave es realmente de solo (128-24)/8=13 bytes.-n 64 es equivalente a -m 5, -n 128 a -m 13, etc...
  • -q: No mostrara el estado del proceso de creación del diccionario

Con las opciones por defecto los diccionarios generados son de un gran tamaño y con muchas palabras, y se puede tardar mucho tiempo en comprobarlas todas dependiendo del equipo. Con estas opciones avanzadas podemos definir diccionarios más personalizados. Varios ejemplos útiles:

-Como ya hemos dicho, en algunas ocasiones las claves son solo 6 numeros seguidos de 0's, en ese caso crearemos los diccionarios anteriores (excepto el de 64bits ASCII ya que no tiene sentido reducirlo) pero para 6 bytes variables en lugar de 8. Los diccionarios creados ocupan tan solo 67,7MB los 3 juntos. De esta manera podemos hacer una comprobación rapida con el aircrack-ng para claves con 6 numeros variables antes de utilizar los diccionarios grandes:

[/list]
Código:
R-WlanXDecrypter rwlan128-c6.txt -c 6
Código:
R-WlanXDecrypter rwlan64hex-c6.txt -h -n 64 -c 6
Código:
R-WlanXDecrypter rwlan128hex-c6.txt -h -c 6

-Ya nombramos que muchas de las contraseñas por defecto de R suelen empezar por 2. Utilizando -min y -max podremos definir diccionarios de solo ese rango (empiecen por 2). Los 3 diccionarios que estamos creando (128bits ascii, 64bits hex y 128bits hex) ocuparían la decima parte cada uno:

Código:
R-WlanXDecrypter rwlan128-start2.txt -min 20000000 -max 29999999
Código:
R-WlanXDecrypter rwlan64hex-start2.txt -h -n 64 -min 20000000 -max 29999999
Código:
R-WlanXDecrypter rwlan128hex-start2.txt -h -min 20000000 -max 29999999

Caso WPA:

-Podemos utilizar el programa con las opciones vistas para crear un diccionario para claves WPA. En este caso tenemos que indicar que cree un diccionario de 8 digitos, todos variables. El diccionario tendrá 100.000.000 claves y ocupará 953.67MB:

Código:
R-WlanXDecrypter rwlanwpa.txt -m 8

-Si queremos reducir el tiempo de búsqueda, podemos crear un diccionario que contenga unicamente las claves que empiezan por 2. El diccionario tiene 10.000.000 claves y ocupa 95.37MB:

Código:
R-WlanXDecrypter rwlanwpa-start2.txt -m 8 -min 20000000 -max 29999999

La mayoría de claves WPA de R son de 8 cifras, pero tambien se han detectado algunos casos de claves de 10 cifras con 8 dígitos variables seguidas de dos 0's. Para crear ese diccionario sería así:

-El diccionario completo para WPA de 10 cifras tiene 100.000.000 claves y ocupa 1144.41MB:

Código:
R-WlanXDecrypter rwlanwpa10.txt -m 10

-Si solo queremos reducir el tiempo de búsqueda, podemos probar las claves que empiezan por 2. Este diccionario tiene 10.000.000 claves y ocupa 114.44MB.

Código:
R-WlanXDecrypter rwlanwpa10-start2.txt -m 10 -min 20000000 -max 29999999

Por último, también se ha detectado un patrón de contraseñas de 16 dígitos, que son realmente contraseñas de 8 dígitos variables que se repiten.

-El diccionario completo para WPA de 16 cifras tiene 100.000.000 claves y ocupa 1716.61MB:

Código:
R-WlanXDecrypter rwlanwpa16-rep1.txt -m 16 -rep 1

-Si solo queremos reducir el tiempo de búsqueda, podemos probar las claves que empiezan por 2. Este diccionario tiene 10.000.000 claves y ocupa 171.77MB.

Código:
R-WlanXDecrypter rwlanwpa16-rep1-start2.txt -m 16 -rep 1 -min 20000000 -max 29999999


Hasta ahora todas las redes analizadas empiezan por el número 2. Por eso se recomienda empezar con los diccionarios que solo recojen claves que empiezan por 2, y utilizar los diccionarios generales de 8 y 10 cifras solo en el caso de que estos no funcionen.

Descarga

Incluye versiones compiladas para linux y windows y el código fuente.

-Versión actual (1.0 ):

-Mirror 1: https://www.dropbox.com/s/5aojiwb58nqqvkm/R-WlanXDecrypter1.0.zip?dl=1
-Mirror 2: https://github.com/millanzarreta/R-WlanXDecrypter/raw/release-1.0/R-WlanXDecrypter1.0.zip

-Versiones antiguas (0.9 ):

-Mirror 1: https://www.dropbox.com/s/srlrovcubxm3son/R-WlanXDecrypter0.9.zip?dl=1
-Mirror 2: https://github.com/millanzarreta/R-WlanXDecrypter/raw/release-0.9/R-WlanXDecrypter0.9.zip

-Versiones antiguas (0.8 ):

-Mirror 1: https://www.dropbox.com/s/p0mt5t0uyjmqdxt/R-WlanXDecrypter0.8.rar?dl=1
-Mirror 2: https://github.com/millanzarreta/R-WlanXDecrypter/raw/release-0.8/R-WlanXDecrypter0.8.rar

Changelog

v1.0 [27/10/2014]
-----------------
+Añadida opción -rep <num> que permite que la parte variable se repita <num> veces
+Cambio en el tipo de variables por otros más adecuados
+Corregido el error que mostraba mal el proceso de creación si el diccionario era mayor a 2GB
+Corregido un error que se producia en ocasiones al crear diccionarios hexadecimales y que producia un tamaño de palabra diferente al especificado
+Corrección de varios errores menores

v0.9 [11/10/2010]
-----------------
+Mostrar tamaño archivo final y numero de claves
+Mostrar status del proceso
+Añadido quiet mode -q
+Corregido bug en las opciones -min y -max
+Pequeña optimización del bucle generador de claves
+Corrección de pequeños fallos generales

v0.8 [06/10/2010]
-----------------
+Primer lanzamiento publico

Anexo: Como usar diccionarios Hexadecimales en aircrack-ng

Para definir en aircrack-ng un diccionario hexadeximal hay que especificar h: antes de la ruta del diccionario y siempre debemos especificar la longitud de las claves WEP del diccionario que estamos usando:

Código:
aircrak-ng -n 128 -w h:"rwlan1281hex.txt" captura.cap
Código:
aircrak-ng -n 64 -w h:"rwlan64hex.txt" captura.cap

Aun así, en la versión actual de aircrack-ng 1.1, existen varios bugs y dificultades que impiden el correcto funcionamiento de los diccionarios hexadecimales. He creado un post al respecto aqui que explica detalladamente como solucionar este problema.

Parece que en la nueva versión de aircrack-ng aún siguen presentes estos bugs.

Saludos ;)



LAST EDIT: Actualizado a la versión 1.0
38  Seguridad Informática / Wireless en Linux / [Guia] Parchear aicrack-ng para que funcione con diccionarios WEP hexadecimales en: 7 Octubre 2010, 19:43 pm
Como algunos ya sabreis, los diccionarios hexadecimales no funcionan en la versión actual de aircrack-ng 1.1 debido a varios bugs en el codigo fuente. Ahora propondre una solución para esto.

Primero explicar que es un diccionario hexadecimal y porque usarlos:

Un diccionario hexadecimal es igual que un diccionario normal pero en vez de definir palabras ASCII definimos el valor de los bytes de una palabra en hexadecimal (separamos los bytes con un separador, el más común y el que usa aircrak-ng es : ). Destacar que aunque cada linea representa una palabra hexadecimal los valores (0-F) estan escritos en ASCII, por lo que los diccionarios ocupan mucho más de lo que deberían, por ejemplo una palabra de 4 bytes ocupa 11 bytes en un diccionario hexadecimal. Un diccionario hexadecimal visualizado con un editor de texto cualquiera tendria este estilo:

Código:
24:35:1A:4E:20:01
D4:35:1A:4E:56:02
A2:24:1D:4E:20:06
...

¿Por que se usan este tipo de diccionarios? Pues basicamente nos permite representar todas las combinaciones posibles, mientras que las palabras ASCII incluyen solo a un pequeño grupo de carácteres. Hay gente que define las contraseñas en modo hexadecimal, si un byte de esa contraseña es por ejemplo 6, es muy dificil que encontremos la contraseña con un diccionario ordinario puesto que no es un carácter representable.

Vale, ahora pasemos a aircrack-ng. Verdaderamente los diccionarios hexadecimales son utiles para ataques con diccionarios a routers con claves predeterminadas, muchos fabricantes establecen las contraseñas por defecto en modo hexadecimal. Para definir en aircrack-ng un diccionario hexadeximal hay que especificar h: antes de la ruta del diccionario y siempre debemos especificar con -n el tamaño en bits de las claves del diccionario:

Código:
aircrak-ng -n 64 -w h:"ruta_diccionario.txt" captura.cap


Pero ahora nos encontramos un problema, aircrack-ng tiene un bug conocido y con la solución en el tracker de web pero aun sin corregir en el programa. Para información detallada: http://trac.aircrack-ng.org/ticket/685.
Para solucionarlo tenemos que modificar el código del source aircrack-ng.c.

El problema consiste en que no se libera memoria que se reserva dinamicamente, por lo que el sistema envia una señal KILL a aircrack-ng, en windows produce directamente un error. Para solucionarlo debemos ir al final de la función next_key (aproximadamente linea 4326), donde veamos este código:

Código:
free(tmp);
tmp=NULL;

debemos cambiarlo por:

Código:
free(tmp2);
tmp2=NULL;

Así ya tenemos solucionado este problema.


Sin embargo existen aun más complicaciones en el código, esta vez en la función crack_wep_dict (aproximadamente linea 4377). El problema se encuentra en esta parte del codigo casi al principio de la función:

Código:
		i = strlen( key );

origlen = i;

while(i<opt.keylen)
{
key[i] = key[i - origlen];
i++;
}

key[i] = '\0';
      

Como sabreis las contraseñas WEP son de tamaño fijo, es decir son de 64bits (5bytes), 128bits(13bytes), etc...
Como en los diccionarios las contraseñas pueden tener diferente tamaño, lo que hace aircrack es duplicar el contenido, por ejemplo si encuentra en un diccionario la palabra "hola" y esta analizando contraseñas de 128bits, cambiara la palabra "hola" por "holaholaholah". Para esto detecta el final de la palabra cuando encuentra el caracter nulo '\0', y aqui esta el error. En un diccionario hexadecimal podriamos tener la palabra 12:34:00:53:2A y debido a lo comentado anteriormente, aicrack-ng solo nos leera los dos primeros bytes 12:34 y rellenara el resto, con lo que nos estropea cualquier palabra que tenga algun byte 00 (muy común en muchas contraseñas hexadecimales para rellenar).

Realmente este relleno no es para nada necesario, si utilizamos diccionarios para ataques WEP deben ser del tamaño justo a una clave WEP para que el resultado sea efectivo. Sabiendo esto modificaremos el codigo para que no rellene la contraseña. Reservaremos memoria con calloc para rellenar automaticamente con caracteres nulos, tambien eliminaremos la definición de la variable origlen que ya no es necesaria (podria darnos errores con make). En la función crack_wep_dict eliminamos directamente el código citado anteriormente. Y en esa misma función al principio modificamos el codigo:

Código:
    int i, origlen, keysize;
    char *key;

    key = (char*) malloc(sizeof(char) * (opt.keylen + 1));

por:

Código:
    int i, keysize;
    char *key;

    key = (char*) calloc(1,sizeof(char) * (opt.keylen + 1));


Con estos cambios aplicados, ahora solo tenemos que compilar de nuevo y ya tenemos nuestro aircrack-ng parcheado para que funcione con diccionarios hexadecimales. Yo recomiendo que esta nueva compilación se use solo para esto, para utilizar diccionarios hexadecimales en claves WEP. Para el resto de funciones mejor utilizar la versión compilada original (seguramente ofrezca un mayor rendimiento por las optimizaciones). Para compilar podeis utilizar el Makefile que traen los propios sources mediante make -f Makefile

Una aclaración importante: cuando utilizamos ataque de diccionario para contraseñas WEP debemos especificar con el parametro -n la longitud de la clave. Por defecto establece la longitud a 128bit, si estamos utilizando un diccionario de 64bits debemos especificarlo con -n 64 o no funcionará correctamente.

Bueno, para los vagos aqui os pongo una versión del aircrack-ng 1.1 modificada como explique anteriormente para que funcione con diccionarios hexadecimales. Van el source modificado y el ejecutable (Linux y Windows). Compilado con gcc versión 4.2.2 en Linux, y gcc 4.3.4 mediante Cygwin para Windows (junto al ejecutable de Windows incluyo las librerias de cygwin necesarias para que funcione):
Mirror 1: http://www.fileden.com/files/2006/9/18/225525/aircrack-ng-parchedhexdictionaries.zip
Mirror 2: http://www.megaupload.com/?d=0CLDYUI8

Estos archivos los he compilado yo con gcc (tal y como indico arriba). Desconozco como compilaron los binarios originales, pero seguro que lo hicieron con mejores optimizaciones. Es por esto que no recomiendo substituir los binarios originales por estos ejecutables que he compilado yo porque seguramente sean algo más lentos. Lo óptimo sería utilizar los binarios originales siempre que se pueda, excepto cuando necesitemos utilizar un diccionario hexadecimal, que será cuando hechemos mano de nuestra versión recompilada.

Espero que les sirva de ayuda.

Saludos ;)
39  Programación / Programación Visual Basic / Re: Ayuda Con Aplicacion Protegida.. en: 24 Abril 2008, 17:50 pm
Supongo k comprovará algun archivo o alguna entrada en el registro...

aki kizás usando Ingieneria Inversa te sea facil :xD

Saludos ;)
40  Seguridad Informática / Abril negro / Re: Abril Negro 2008: Taller de Formato PE by Ferchu en: 17 Abril 2008, 16:19 pm
Si ya se k se habla de direcciones en vez de offsets...pero es que tu haces esa distincion y por eso la hice yo...pork en realidad la direccion virtual hay que sumarle la ImageBase y en muchos de los datos te dan la direccion virtual sin la ImageBase...entonces era para no complicarme...

Pero weno entonces mi teoría estaba bien  :xD

Sobre lo de agregar una sección ya lo había hecho alguna vez...lo k no entiendo es pork ponemos el Bound Import Table (tanto el adress como el size) a 0...ya se k es para desvincularlo...pero y luego esa tabla no es importante? en teoría no es la Import Table la que contiene la lista de API's (importaciones)??

No se digo yo que alguna funcion tendrá...y weno puede que en notepad.exe no sea importante pero a lo mejor con otro archivo podríamos dejarlo inservible? o no? es k weno si no hay espacio por ai siempre se pueden agregar más 0's aunke el notepad.exe final ocupe más que el original...

Saludos ;)
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 51
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines