TrackMaze

JoomlaCracker.py

Feb 10th, 2013
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.82 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf8 -*-
  3. import md5
  4.  
  5. def Recoleccion(direccion): #obtenemos todos los datos a crackear
  6.     archivo=open(direccion,"r")
  7.     datos=archivo.readlines()
  8.     matriz=[]
  9.     for x in range(0,len(datos)):
  10.         columna=[]
  11.         delete1=datos[x].replace("\n","")   #eliminamos salto de linea en windows \n
  12.         delete2=delete1.replace("\r","")    #eliminamos salto de linea en linux \r
  13.         columna.append(delete2.split(":"))  #agregamos los datos en una lista
  14.         matriz.append(columna)      #tendremos todos los datos juntos
  15.     return matriz       #retornamos loa dtos
  16.  
  17. def Diccionario(dicc):      #Creamos la lista de password que estaba en el archivo .txt
  18.     archivo=open(dicc,"r")
  19.     datos=archivo.readlines()
  20.     matriz=[]
  21.     for x in range (0,len(datos)):
  22.             columna=[]
  23.             delete1=datos[x].replace("\n","")   #eliminamos salto de linea en windows \n
  24.             delete2=delete1.replace("\r","")    #eliminamos salto de linea en linux \r
  25.             columna.append(delete2)     #agregaos los datos en una lista
  26.             matriz.append(columna)  #tendremos todos los datos juntos
  27.     return matriz       #retornamos los datos
  28.    
  29.    
  30. def Cracker(palabra, datos):        #le pasamos la palabra y una lista con 3 datos (usuario:hash:salt)
  31.     name,cifrado,salt=datos[0][0],datos[0][1],datos[0][2]
  32.     generando=md5.new()
  33.     generando.update(palabra[0]+salt)   #generamos el nuevo hash del password y el salt concatenado
  34.     if (generando.hexdigest()==cifrado):        #verificamos si coincide con el hash original de los datos a crackear
  35.         print "[+]",
  36.         return True
  37.     else:
  38.         return False
  39.        
  40. def empezar(u_diccionario,u_datos): #esta es la funcion madre
  41.     dic_palabras=Diccionario(u_diccionario)     #datos del diccionario
  42.     datos=Recoleccion(u_datos)      #datos a crackear
  43.     encontrados=[]
  44.     for x in datos: #a cada dato a crackear
  45.         for y in dic_palabras:  #le pasamos todas las posibles palabras del diccionario
  46.             vamos=Cracker(y,x)      #verificamos si coinciden
  47.             if (vamos==True):   #si es cierto
  48.                 encontrados.append(x+y) #agregamos todo a una lista final
  49.                 break
  50.         print "#",
  51.     print ""
  52.     return encontrados  #retornamos todos los password encontrados
  53.    
  54. print '''          _                       _        _____                _            
  55.         | |                     | |      / ____|              | |            
  56.         | | ___   ___  _ __ ___ | | __ _| |     _ __ __ _  ___| | _____ _ __
  57.     _   | |/ _ \ / _ \| '_ ` _ \| |/ _` | |    | '__/ _` |/ __| |/ / _ | '__|
  58.    | |__| | (_) | (_) | | | | | | | (_| | |____| | | (_| | (__|   |  __| |  
  59.     \____/ \___/ \___/|_| |_| |_|_|\__,_|\_____|_|  \__,_|\___|_|\_\___|_|  
  60.             TrackMaze-2013 | http://trackmaze.blogspot.com/
  61.                                                                             '''
  62.        
  63. dic=raw_input("[+] Ingrese la direccion del diccionario a utilizar: ")
  64. a_hash=raw_input("[+] Ingrese la direccion de los datos a crackear: ")
  65. print "\n"
  66. print "-----------------------------------------------------------------------------"
  67. print "Crackeando ... ",
  68. final=empezar(dic,a_hash)
  69. print "-----------------------------------------------------------------------------"
  70.  
  71. if (len(final)!=0):
  72.     print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  73.     print "|{0:10}|{1:32}|{2:16}|{3:14}|".format("Usuario", "Hash", "Salt", "Clave")
  74.     print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  75.     for x in range (0,len(final)):
  76.         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])
  77. else:
  78.     print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  79.     print "     [+]LOS DATOS NO COINCIDEN, INTENTELO DE NUEVO CON OTRO DICCIONARIO[+]   "
  80.     print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  81. print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  82. print "\n\n\n"
Add Comment
Please, Sign In to add comment