A partir del hash y de la contraseña, obtener patrón?

Iniciado por ‭lipman, 26 Mayo 2011, 02:00 AM

0 Miembros y 1 Visitante están viendo este tema.

‭lipman

Estoy interesado en saber si existe alguna manera, ya sea con algún programa o incluso de alguna manera lógica (no se me ocurre ninguna.. pero tampoco es que esté muy familiarizado con la criptografia) de obtener el patron con el que se encriptan ciertas cadenas.

Es decir, tengo el hash y tengo la cadena cifrada, y quisiera saber cómo se cifra. Supongo que usa MD5, ya que son 32 caracteres hexadecimales, aunque no lo hace directamente, es decir, que no hace md5(cadena). Podria meter basura, quien sabe.

La cosa es que puedo tener tantos conjuntos de hash-cadena cifrada como quiera, la cosa es que no sé como empezar a analizarlos o si esto ya de por si es algo "imposible".

Alguna idea de por donde empezar a atacar el problema?

Un saludo!

APOKLIPTICO

Depende de donde lo hayas sacado, puede ser un md5 con salt, es decir:
md5(cadena+salt) o bien md5(md5(cadena)+salt), o sino md5(md5(cadena)+md5(salt)).

Tenés la cadena hasheada y la cadena original???
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

‭lipman

Exactamente como tu dices: tengo lo inicial y lo final, pero como bien dices, pueden meter ochocientos mil salts y formas y veces de encodearlo a md5, por lo que a priori me parece que es como misión imposible. La unica solución que veo seria crackear el md5, ver de que está compuesto, y si es otro md5 crackearlo..etc, pero si con solo crackear un md5 nos puede llevar años.. lo veo imposible, por eso lo digo.

Pero vamos, como no sé demasiado sobre criptografia, me aventuré a preguntar. Ya que, no sé.. igual existe algun programa que te pueda analizar la entrada, la salida (parto de que tengo muchas, tantas como quiera) y te de lo que pido.

Un saludo!

APOKLIPTICO

Osea que tenés el plaintext??? Sabés como es el algoritmo???
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

‭lipman

Osea, básicamente, yo meto un texto para cifrar:

"a" y me devuelve "xxx" (32 bits, hexadecimal).

Lo que quiero decir es que puedo realizar esta tarea todas las veces que quiera, de manera que puedo ir recolectando distintos textos (cifrados de forma distinta, obviamente)

De tal manera que puedo tener, que se yo, 1000 combinaciones de texto no-cifrado y texto cifrado.

Es decir, tengo el input y el output, lo que meto, y lo que sale. La cuestión es que quiero saber qué pasa realmente dentro, cómo lo cifra, que salt usa (si es que usa) o como lo cifra.

Y claro, esto a simple vista me parece imposible, pero repito que desconozco si hay programas que te analizan estas cosas y te devuelve el algoritmo, y como tampoco sé demasiado sobre criptografia, pues pregunto xD

Un saludo!

APOKLIPTICO

Aham, bueno, son 32 bytes, no 32 bits jeje. Pero más allá de eso, es muy probable que te esté devolviendo un md5 salteado. El tema es que tipo de hash es el que está utilizando. Yo lo que te recomiendo es que empieces a probar con mdcrack, es el programa más eficiente para crackeo de md5 que no utiliza gpgpu y aparte tiene para distintos tipos de md5 (md5md5, md5(md5+salt), etc.), la idea sería que le pases una cadena vacía es decir que le pases "" sin las comillas y ver que te devuelve, luego, lo pasas por el mdcrack y lo que te devuelve va a ser el salt si le das bien al algoritmo.

De donde lo estás sacando? Porque si es un programa conocido, quizas el algoritmo sea conocido.

Un abrazo
APOKLIPTICO
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

‭lipman

Se me fue la cabeza con los bits y bytes, que estoy de exámenes xD (al igual que muchos foreros de aqui fijo).

Esto que te estoy diciendo, lo estoy sacando de una página a la que estoy haciendo un análisis de seguridad en la forma que cifra las contraseñas, por ello que no puede ser algo conocido.

Mañana pruebo con el mdcrack.. pero porqué tengo que pasarle unas comillas? no le puedo pasar directamente alguno de los datos que tengo? (en texto de inicio sin cifrar o el texto final cifrado)

Un saludo!

APOKLIPTICO

Facepalm ¬¬... No tenés que pasarle las comillas, tenés que pasarle una cadena vacía.
Si se el algoritmo es md5(cadena+salt) y cadena = "" (Nada) entonces lo que queda es md5(salt), haces fuerza bruta para sacar el salt y listo.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

‭lipman

No a ver, ya sé que es una cadena vacia, no soy tan corto  :¬¬, pero te digo que no lo entiendo, porque si por ejemplo, conozco la cadena (la de entrada) y no conozco el salt, podria introducir la cadena, (suponiendo que esta sea 1234) de manera que me haga: md5(1234+salt), y si por ejemplo el salt es.. qué se yo, abcd, entonces me devolverá 1234abcd, no se si me explico. Ya que claro, no puedo cifrar cadenas vacias, porque el formulario me obliga a meter un texto.

O incluso, con el mdcrack, tengo la opción de introducirle un salt. Podría introducirle la cadena de texto como salt, para que la usara siempre en las codificaciones, y al final me acabara devolviendo el resultado.

APOKLIPTICO

Podés ponerle una cadena si te parece, pero es más fácil no poniéndosela, pero si tenés que poner una si o si, probá poniendo algo bien corto y simple.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.