-[ 0x07 ]-------------------------------------------------------------------- -[ TABLA DE TIEMPOS DEL JOHN THE RIPPER 1.4 ]-------------------------------- -[ by +NetBul ]-------------------------------------------------------SET-15- --------------------------------------- JOHN THE RIPPER v1.4 - TABLA DE TIEMPOS --------------------------------------- @98 by +NetBuL --------------------------------------- Aprovechando el concurso de password cracking en SET 14 habia escrito esta tabla de tiempos, y aunque no pude acabarla a tiempo :-( espero que os siga siendo util. Es una tabla *orientativa* del tiempo que necesita el John The Ripper para crackear en modo incremental (calcula todas las combinaciones posibles). Y digo orientativa porque solo es eso ... aunque aquellos que tengan un P166MMX y usen el John v1.4 para crackear un passwd con 1 cuenta (o con 2134 cuentas) pueden tomar los tiempos como 'muy probables' ;-D Los tiempos son 'el peor tiempo posible', es decir 'el peor caso' que se da cuando no se encuentra ninguna contrase€a. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ | 1 cuenta | | 2134 cuentas (128 dif. salts) | | (media 13000 c/s) | | (media 227000 c/s) | |==============================| |==================================| | | | | | \ / | | john -i:all passwd | | / \ | | -------------------------- | | ------------------------------ | | Combinac. | Tiempo | | Combinaciones | Tiempo | | -----------|-------------- | | ------------------------------ | | 95^8 | 16182,2 a€os | | 95^8 x 2134 | 1977656,1 a€os | | 95^7 | 170,3 a€os | | 95^7 x 2134 | 20817,4 a€os | | 95^6 | 1,7 a€os | | 95^6 x 2134 | 219,1 a€os | | 95^5 | 6,8 dias | | 95^5 x 2134 | 2,3 a€os | | 95^4 | 1,7 horas | | 95^4 x 2134 | 8,8 dias | | 95^3 | 1 min | | 95^3 x 2134 | 2,2 horas | | 95^2 | 1 seg | | 95^2 x 2134 | 1,4 min | | 95^1 | 1 seg | | 95^1 x 2134 | 1 seg | | | | | | | | | | \ / | | john -i:alpha passwd (-i:capital) | | / \ | | -------------------------- | | ------------------------------ | | Combinac. | Tiempo | | Combinaciones | Tiempo | | -----------|-------------- | | ------------------------------ | | 26^8 | 185,9 dias | | 26^8 x 2134 | 62,2 a€os | | 26^7 | 7,1 dias | | 26^7 x 2134 | 2,3 a€os | | 26^6 | 6,6 horas | | 26^6 x 2134 | 33,6 dias | | 26^5 | 15,2 min | | 26^5 x 2134 | 1,2 dias | | 26^4 | 35 seg | | 26^4 x 2134 | 1,1 horas | | 26^3 | 1 seg | | 26^3 x 2134 | 2,7 min | | 26^2 | 1 seg | | 26^2 x 2134 | 6 seg | | 26^1 | 1 seg | | 26^1 x 2134 | 1 seg | | | | | | | | | | \ / | | john -i:digits passwd | | / \ | | -------------------------- | | ------------------------------ | | Combinac. | Tiempo | | Combinaciones | Tiempo | | -----------|-------------- | | ------------------------------ | | 10^8 | 2,1 horas | | 10^8 x 2134 | 10,8 dias | | 10^7 | 12,8 min | | 10^7 x 2134 | 1 dia | | 10^6 | 1,2 min | | 10^6 x 2134 | 2,6 horas | | 10^5 | 7 seg | | 10^5 x 2134 | 15,6 min | | 10^4 | 1 seg | | 10^4 x 2134 | 1,5 min | | 10^3 | 1 seg | | 10^3 x 2134 | 9 seg | | 10^2 | 1 seg | | 10^2 x 2134 | 1 seg | | 10^1 | 1 seg | | 10^1 x 2134 | 1 seg | | | | | | | | | \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ NOTAS: -------- - 95^8 es el numero de combinaciones posibles con 95 caracteres diferentes y un tama€o (minimo y maximo) de 8 caracteres : [john.ini] ... [Incremental:All] CharCount = 95 MinLen = 8 MaxLen = 8 ... Por tanto el tiempo para un MinLen = 1 y MaxLen = 8 sera la suma de los tiempos correspondientes : (MinLen=1;MaxLen=8) == (MinLen=MaxLen=1) + (MinLen=MaxLen=2) + (MinLen=MaxLen=3) + ... + (MinLen=MaxLen=8) - El numero de combinaciones/segundo (c/s) que he usado en la tabla es una media aproximada despues de 'correr' el John durante unas horas (generalmente el num de c/s se estabiliza a partir de los 15 minutos). - El numero de c/s que calcula el John (y por tanto el tiempo que tardara) depende de varios factores, entre ellos : + la maquina que se use [yo he usado un Pentium 166MMX, TX, 16Mb EDO] + la version del John [en este caso la v1.4 para MSDOS] --> la version 1.5 ya esta disponible en : http://www.false.com/security/john/ + logicamente el numero de cuentas que contiene el passwd y ... + ... el numero de 'salts' diferentes, ej: john -i:all (MinLen=MaxLen=3) | c/s | Tiempo total ---------------------------------|-------------|------------- 95^3 x 5 cuentas (5 dif. salts) | 13700 c/s | 5:12 minutos 95^3 x 5 cuentas (4 dif. salts) | 17100 c/s | 4:10 minutos 95^3 x 5 cuentas (NO dif. salts) | 65900 c/s | 1:05 minutos CONSEJOS: ----------- - Para empezar a crackear un fichero passwd *siempre* es mejor empezar con una buena lista de palabras (wordlist) ya que es infinitamente mas rapido y proporcionalmente las posibilidades de exito son mucho mayores. Tambien es interesante usar la opcion -rules junto con la wordlist (aunque tarda aprox. 45 veces mas). Algunos ejemplos: + Con la lista que viene con el John (password.lst <-- 2030 palabras) y con el passwd de 2134 cuentas, en solo 19 segundos saca 36 cuentas. + Lo mismo de antes pero con la opcion -rules, en 14 minutos 21 seg. crackea 53 cuentas. + Con una wordlist de 250.000 palabras y con el passwd de 2134 cuentas del ejemplo ... tarda 36:18 minutos y crackea 64 cuentas. (sin -rules) (una kk de lista, no? X-D) - Antes de usar el modo incremental es tb. conveniente usar la opcion -single , es bastante rapido. - Si finalmente os meteis a fondo con el modo incremental conviene poner siempre MinLen = 1 en el john.ini, que mas da tardar 3 a€os que 3 a€os y 40 minutos ... ;-D - En caso de liaros con algo que vaya a durar dias la opcion -restore permite seguir con la sesion por donde se quedo. El fichero donde se guarda esta informacion se llama tb restore. --> En mi caso tengo una linea al final del autoexec.bat : john -restore:restore asi que antes de salir de casa por las ma€anas enciendo el PC y lo dejo 'sudando' hasta la hora de comer ... :-) - Si a alguien se le pasa por la cabeza liarse con algo tipo 95^8 x 2000 cuentas (+ o - 2 millones de a€os) le recomiendo que se tome una aspirina, dos cubatas o 3 Viagras y se tumbe un rato a la bartola a pensar si realmente valen la pena esas malditas password .... eso si, mucho cuidado con una sobredosis de Viagra que igual te quedas empalmao toda tu vida .... X-DDDDDD - Por si alguien aun no lo sabe, el John The Ripper es 'descaradamente' el password cracker mas rapido de todos los que hay. En la pagina de Mentes Inquietas podeis encontrar (cuando lo vuelvan a poner) una comparativa de crackeadores (@ by Zebal) que seguro que os saca de dudas. [thx GuyBrush ;-D] - Por ultimo conviene que no hagais caso de todo el rollo cutre este y que os leais la ayuda del John The Ripper ... feliz crackeo .. X-DD [[.....]] Esto en principio acababa aqui pero como he tenido un poco mas de tiempo he hecho un "programilla pocacosa" que seguro que os sera mas util que la tabla de arriba (y ademas rellena mi articulo que falta le hacia al pobre ;-D). El tema es tan facil como lanzar el John The Ripper con el fichero passwd de turno (con -i:all por ej.) durante unos 15 minutos (o al menos hasta que se estabiliza el numero de c/s), apuntar el numero de c/s y el numero de cuentas (passwords) a crackear y por ultimo ejecutar el programa pasandole estos 2 datos. Para imprimir los resultados hay que redirigir la salida a un fichero. Despues que cada uno decida lo que mas le conviene, no ? :-> Como antes he dicho los tiempos son maximos y aproximados, aunque da una buena idea de lo que tardara. La tabla del ejemplo anterior (2134 cuentas (128 dif. salts) , 227000 c/s) quedaria asi: JOHNTIME - Tabla de Tiempos - John The Ripper (incremental mode) @98 by +NetBuL para SET #15 (http://www.ThePentagon.com/paseante) ---------- TIEMPO MAXIMO -----------|--- C/S = 227000 ---- 2134 cuentas --- ---- Anyos : dias:hors:mins:segs ---|--- Combinac. --> [ -i:ALL ] 1977656 : 104 : 8 : 52 : 36 | 95^8 x 2134 [ MinLen=MaxLen= 8 ] 20817 : 158 : 8 : 32 : 28 | 95^7 x 2134 [ MinLen=MaxLen= 7 ] 219 : 47 : 18 : 32 : 36 | 95^6 x 2134 [ MinLen=MaxLen= 6 ] 2 : 111 : 22 : 10 : 24 | 95^5 x 2134 [ MinLen=MaxLen= 5 ] 0 : 8 : 20 : 41 : 47 | 95^4 x 2134 [ MinLen=MaxLen= 4 ] 0 : 0 : 2 : 14 : 20 | 95^3 x 2134 [ MinLen=MaxLen= 3 ] 0 : 0 : 0 : 1 : 24 | 95^2 x 2134 [ MinLen=MaxLen= 2 ] 0 : 0 : 0 : 0 : 0 | 95^1 x 2134 [ MinLen=MaxLen= 1 ] ---- Anyos : dias:hors:mins:segs ---|--- Combinac. --> [ -i:ALPHA & CAPITAL ] 62 : 91 : 17 : 46 : 40 | 26^8 x 2134 [ MinLen=MaxLen= 8 ] 2 : 143 : 21 : 54 : 56 | 26^7 x 2134 [ MinLen=MaxLen= 7 ] 0 : 33 : 14 : 41 : 20 | 26^6 x 2134 [ MinLen=MaxLen= 6 ] 0 : 1 : 7 : 1 : 35 | 26^5 x 2134 [ MinLen=MaxLen= 5 ] 0 : 0 : 1 : 11 : 35 | 26^4 x 2134 [ MinLen=MaxLen= 4 ] 0 : 0 : 0 : 2 : 45 | 26^3 x 2134 [ MinLen=MaxLen= 3 ] 0 : 0 : 0 : 0 : 6 | 26^2 x 2134 [ MinLen=MaxLen= 2 ] 0 : 0 : 0 : 0 : 0 | 26^1 x 2134 [ MinLen=MaxLen= 1 ] ---- Anyos : dias:hors:mins:segs ---|--- Combinac. --> [ -i:DIGITS ] 0 : 10 : 21 : 8 : 8 | 10^8 x 2134 [ MinLen=MaxLen= 8 ] 0 : 1 : 2 : 6 : 48 | 10^7 x 2134 [ MinLen=MaxLen= 7 ] 0 : 0 : 2 : 36 : 40 | 10^6 x 2134 [ MinLen=MaxLen= 6 ] 0 : 0 : 0 : 15 : 40 | 10^5 x 2134 [ MinLen=MaxLen= 5 ] 0 : 0 : 0 : 1 : 34 | 10^4 x 2134 [ MinLen=MaxLen= 4 ] 0 : 0 : 0 : 0 : 9 | 10^3 x 2134 [ MinLen=MaxLen= 3 ] 0 : 0 : 0 : 0 : 0 | 10^2 x 2134 [ MinLen=MaxLen= 2 ] 0 : 0 : 0 : 0 : 0 | 10^1 x 2134 [ MinLen=MaxLen= 1 ] Y por ultimo el prog.: <++> set_015/netbul/johntime.c /************************************************************/ /* JOHNTIME.C @98 by +NetBuL para SET */ /* - Tabla de Tiempos - John The Ripper (modo incremental) */ /* Mas info en SET 15 (http://www.ThePentagon.com/paseante) */ #include #include void tiempo(int basef,int expf,int cuentasf,long int csf) { float total; long int anys; int dias, hors, mins, segs; total=(pow(basef,expf)*cuentasf) / csf; /* t. total en segundos */ segs = fmod(total,60); total = total/60; mins = fmod(total,60); total = total/60; hors = fmod(total,24); total = total/24; dias = fmod(total,365); total = total/365; anys= total; printf(" %10ld : %3d : %2d : %2d : %2d",anys,dias,hors,mins,segs); } void main() { int exp; long int cs = 0; int cuentas = 1; printf("\n\n\tJOHNTIME - Tabla de Tiempos - "); printf("John The Ripper (incremental mode)"); printf("\n\t@98 by +NetBuL para SET #15 (http://www.ThePentagon.com/paseante)"); printf("\n\n\tMedia de c/s (+o- estable): "); scanf("%ld",&cs); printf("\tNumero de cuentas en PASSWD: "); scanf("%d",&cuentas); printf("\n\n\n ---------- TIEMPO MAXIMO -----------|"); printf("--- C/S = %ld ---- %d cuentas ---\n",cs,cuentas); /* 95 caracteres == ALL */ printf("\n ---- Anyos : dias:hors:mins:segs ---|--- Combinac. --> "); printf("[ -i:ALL ]\n"); for (exp=8; exp>0; exp--) { tiempo(95,exp,cuentas,cs); printf(" | %d^%d x %d\t[ MinLen=MaxLen= %d ]\n",95,exp,cuentas,exp); } /* 26 caracteres == ALPHA & CAPITAL */ printf("\n ---- Anyos : dias:hors:mins:segs ---|--- Combinac. --> "); printf("[ -i:ALPHA & CAPITAL ]\n"); for (exp=8; exp>0; exp--) { tiempo(26,exp,cuentas,cs); printf(" | %d^%d x %d\t[ MinLen=MaxLen= %d ]\n",26,exp,cuentas,exp); } getchar(); getchar(); /* 10 caracteres == DIGITS */ printf("\n ---- Anyos : dias:hors:mins:segs ---|--- Combinac. --> "); printf("[ -i:DIGITS ]\n"); for (exp=8; exp>0; exp--) { tiempo(10,exp,cuentas,cs); printf(" | %d^%d x %d\t[ MinLen=MaxLen= %d ]\n",10,exp,cuentas,exp); } } /* s'acabo */ <--> Un saludo +NetBuL [ NOTA DEL EDITOR: Joers, siempre se nos adelantan. Resulta que durante la preparacion del articulo salio a la luz publica la version 1.5 de nuestro querido johnnie, y por lo que hemos podido comprobar, se gana bastante en velocidad. No es por hacer publicidad, no nos pagan ni nada de eso, pero hay mas informacion sobre los tiempos del John The Ripper en el numero de Junio de PC Actual. ]