Muy buenas a todos, hoy me puse a codear un "password recovery" ya que una amiga perdio su contraseña de 13 caracteres de un documento de word.
Ella dice recordar que era algo como "carlacarlaXXX" donde las X pueden ser un numero del 0-9, una letra de la A-Z o a-z.
Por lo tanto cada X puede ser 62 valores diferentes:
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
a lo que iba que me salen 62^3 combinaciones (hay que descubrir 3 caracteres) que son 238328 combinaciones.

Entonces, a fuerza bruta solo llevaría unas horas sacarla.
He hecho el diccionario y un script en vbs que va comprobando todas las passwords de la lista y funciona correctamente.
Lo he calculado y para comprobar las 238328 combinaciones en mi pc tardaría unas 8 horas (ya que con 1000 tarda 2 minutos ==> Regla de 3 ).

Mi pregunta es, hay alguna forma de hacer el script mas efectivo?
Lo he codeado tan bien como he podido y hace unas 8,33 comprobaciones/segundo.
No es urgente y de hecho el problema con mi amiga ya estara resuelto pero ya que he codeado todo esto me gustaría saber como acelerarlo ya que me descargue otros software de fuerza bruta y son capaces de comprobar hasta unas 104-114 passwords por segundo.

Les dejo el code del script vbs:
[code2=vbnet]On Error Resume Next 'Para que cada vez que de error por una password incorrecta no termine la ejecucion del programa

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\Users\*****\Desktop\Diccionari.txt") 'cambien la ruta del diccionario!
Set oWord = CreateObject("Word.Application")

Do until f.AtEndOfStream 'Repite el bucle hasta que terminen todos los 238328 passwords de la lista del archivo Diccionari.txt
strf=f.readline 'lee la siguiente password del archivo Diccionari.txt
set oDoc = oWord.Documents.Open("C:\Users\*****\Desktop\Prova2.docx",,,,strf) 'Abre el documento de word con la password strf (que es una linea de texto de Diccionari.txt) ¡Cambien la ruta del documento word!
if Not Err.Number <> 0 then 'Si probamos una password incorrecta el script devuelve error. Entonces cuando no devuelva error sera cuando haya probado la password correcta.
oWord.Visible = True 'Entonces hacemos la ventana de word visible con el documento ya abierto
wscript.echo "La contrasenya era: " + strf 'Avisamos de cual era el password.
wscript.Quit 'Cerramos el script
end if

Err.Clear 'limpiamos el ultimo error

Loop

f.Close

'Password de Prova2.docx = carlacarla0G7
'carlacarla0G7 es la password numero 1000 de Diccionari.txt[/code2]


Les dejo el diccionario, script y documento de word protegido para descargar:
[Enlace externo eliminado para invitados]

Muchas Gracias!
Skype: Janpr99
Yo creo que se debe a que VBS es un lenguaje interpretado, normalmente estas herramientas se hacen en C/C++.

PD: ¿carlacarla0G7? Ya solo me hacen falta las llaves de casa. xD

//Regards.
Ikarus: Backdoor.VBS.SafeLoader
Agnitum: Trojan.VBS.Safebot.A
http://indeseables.github.io/
Scorpio escribió:Yo creo que se debe a que VBS es un lenguaje interpretado, normalmente estas herramientas se hacen en C/C++.

PD: ¿carlacarla0G7? Ya solo me hacen falta las llaves de casa. xD

//Regards.
Scorpio Makina! te extraño!
Gracias tio oye pues que mierda voy a tener que traducirla!
El documento word esta en blanco este solo es el de prueba mamoncete hahaha
Saludos
Skype: Janpr99
Estos señores te lo crackean la mar de bien si es una versión de office antigua [Enlace externo eliminado para invitados]

Yo he sacados varios hashses ya y funcionan bien, si son letras y números suelen caer. Eso si, te cobran 3USD si la clave es larga.
Lo del lenguaje es una estupidez, hablamos de ms de diferencia.
De hecho como vbs permite comunicarse asi con word es una eleccion bastante acertada.

Parareliza jan, divide el diccionario entre tu numero de cores
Lo mejor que puedes hacer en este tipo de brute force es usar algún lenguaje que soporte multithreading y dividir el trabajo en varios hilos.
Yo por ejemplo utilizo NodeJs para este objetivo. Saludos

Código: Seleccionar todo

Hazlo, comete errores, vuelve a intentarlo, falla, manda todo a la mierda y empieza otra vez si es necesario. En serio, no pasa nada.
Responder

Volver a “Dudas y Preguntas”