Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf8 -*-
- import md5
- def Recoleccion(direccion): #obtenemos todos los datos a crackear
- archivo=open(direccion,"r")
- datos=archivo.readlines()
- matriz=[]
- for x in range(0,len(datos)):
- columna=[]
- delete1=datos[x].replace("\n","") #eliminamos salto de linea en windows \n
- delete2=delete1.replace("\r","") #eliminamos salto de linea en linux \r
- columna.append(delete2.split(":")) #agregamos los datos en una lista
- matriz.append(columna) #tendremos todos los datos juntos
- return matriz #retornamos loa dtos
- def Diccionario(dicc): #Creamos la lista de password que estaba en el archivo .txt
- archivo=open(dicc,"r")
- datos=archivo.readlines()
- matriz=[]
- for x in range (0,len(datos)):
- columna=[]
- delete1=datos[x].replace("\n","") #eliminamos salto de linea en windows \n
- delete2=delete1.replace("\r","") #eliminamos salto de linea en linux \r
- columna.append(delete2) #agregaos los datos en una lista
- matriz.append(columna) #tendremos todos los datos juntos
- return matriz #retornamos los datos
- def Cracker(palabra, datos): #le pasamos la palabra y una lista con 3 datos (usuario:hash:salt)
- name,cifrado,salt=datos[0][0],datos[0][1],datos[0][2]
- generando=md5.new()
- generando.update(palabra[0]+salt) #generamos el nuevo hash del password y el salt concatenado
- if (generando.hexdigest()==cifrado): #verificamos si coincide con el hash original de los datos a crackear
- print "[+]",
- return True
- else:
- return False
- def empezar(u_diccionario,u_datos): #esta es la funcion madre
- dic_palabras=Diccionario(u_diccionario) #datos del diccionario
- datos=Recoleccion(u_datos) #datos a crackear
- encontrados=[]
- for x in datos: #a cada dato a crackear
- for y in dic_palabras: #le pasamos todas las posibles palabras del diccionario
- vamos=Cracker(y,x) #verificamos si coinciden
- if (vamos==True): #si es cierto
- encontrados.append(x+y) #agregamos todo a una lista final
- break
- print "#",
- print ""
- return encontrados #retornamos todos los password encontrados
- print ''' _ _ _____ _
- | | | | / ____| | |
- | | ___ ___ _ __ ___ | | __ _| | _ __ __ _ ___| | _____ _ __
- _ | |/ _ \ / _ \| '_ ` _ \| |/ _` | | | '__/ _` |/ __| |/ / _ | '__|
- | |__| | (_) | (_) | | | | | | | (_| | |____| | | (_| | (__| | __| |
- \____/ \___/ \___/|_| |_| |_|_|\__,_|\_____|_| \__,_|\___|_|\_\___|_|
- TrackMaze-2013 | http://trackmaze.blogspot.com/
- '''
- dic=raw_input("[+] Ingrese la direccion del diccionario a utilizar: ")
- a_hash=raw_input("[+] Ingrese la direccion de los datos a crackear: ")
- print "\n"
- print "-----------------------------------------------------------------------------"
- print "Crackeando ... ",
- final=empezar(dic,a_hash)
- print "-----------------------------------------------------------------------------"
- if (len(final)!=0):
- print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
- print "|{0:10}|{1:32}|{2:16}|{3:14}|".format("Usuario", "Hash", "Salt", "Clave")
- print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
- for x in range (0,len(final)):
- print "|{0:10}|{1:32}|{2:16}|{3:14}|".format(final[x][0][0],final[x][0][1],final[x][0][2],final[x][1])
- else:
- print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
- print " [+]LOS DATOS NO COINCIDEN, INTENTELO DE NUEVO CON OTRO DICCIONARIO[+] "
- print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
- print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
- print "\n\n\n"
Add Comment
Please, Sign In to add comment