Bien pues hace rato que hice un script en Python que crackear las Passwords de lo que hay en el archivo /etc/shadow en Linux.
El método es demasiado viejo y muy lento pero puede que a alguien le sirva con un buen diccionario, paciencia y suerte xD se puede crackear el password de algunos usuarios.
Aclaro también que es la primer versión que codeo, así que se aceptan sugerencias, criticas constructivas, etc...
Pues aquí el código:
Código: python
Puedes descargar el código aquí: No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Un Saludo!
El método es demasiado viejo y muy lento pero puede que a alguien le sirva con un buen diccionario, paciencia y suerte xD se puede crackear el password de algunos usuarios.
Aclaro también que es la primer versión que codeo, así que se aceptan sugerencias, criticas constructivas, etc...
Pues aquí el código:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os,sys
import crypt
import argparse
autor = '[Z]tuX'
mail = '[email protected]'
web = 'http://ztux.blogspot.com'
version = 1.0
caracteres = ['!','*','x']
usuarios = []
passwordsCifrados = []
def banner():
print """
____ _
____/ ___|_ __ __ _ ___| | __
|_ / | | '__/ _` |/ __| |/ /
/ /| |___| | | (_| | (__| <
/___|\____|_| \__,_|\___|_|\_|
"""
def info():
print 'Autor: '+autor
print 'Mail: '+mail
print 'Sitio web: '+web
print "Versión del programa: "+str(version)
def crackear(usuario,passwordCifrado,diccionario,verbose):
print "[*] Trabajando en "+usuario
cifrado=passwordCifrado.split('$')[1]
if cifrado!= '6':
print "[-] No se ah detectado hash SHA-512"
return -1
salt = passwordCifrado.split('$')[2]
insalt = '$'+cifrado+'$'+salt+'$'
if verbose:
print "[*] Salt: "+salt
print "[*] inSalt: "+insalt
listaPass = open(diccionario,'r')
print "[+] Crackeando Password..."
for palabra in listaPass.readlines():
palabra=palabra.strip('\n')
password = crypt.crypt(palabra,insalt)
if (password == passwordCifrado):
print "[+] Password encontrado para "+usuario+": "+ palabra+"\n"
return 0
print '[-] Password NO encontrado.\n'
return 0
def main():
parse = argparse.ArgumentParser(description='Password Cracker by '+autor)
parse.add_argument('-i','--info',action='store_true',dest='info',help='Muestra información del programador')
parse.add_argument('-v','--verbose',action='store_true',dest='verbose',help="Muestra mas información")
parse.add_argument('-d','--diccionario',action='store',dest='diccionario',help="Diccionario para crackear la Password")
parse.add_argument('-a', action='store', dest='archivo', help='Ruta del archivo a crackear, ejemplo: \'/etc/shadow\'')
argumento=parse.parse_args()
if argumento.info==True:
info()
exit
elif argumento.archivo==None:
print "Falta especificar la ruta del archivo a crackear."
parse.print_help()
exit
else:
banner()
if argumento.verbose:
print "[!] Modo verbose esta encendido."
listaPasswds = open(argumento.archivo,'r')
for linea in listaPasswds.readlines():
linea = linea.replace("\n",' ').split(':')
if not linea[1] in caracteres:
usuario = linea[0]
passwordCifrado = linea[1]
usuarios.append(usuario)
passwordsCifrados.append(passwordCifrado)
if argumento.verbose:
print "Usuarios encontrados en el sistema:"
for i in range(0,len(usuarios)):
print usuarios[i]+" => "+passwordsCifrados[i]
print "Crackeando usuarios:"
for i in range(0,len(usuarios)):
crackear(usuarios[i],passwordsCifrados[i],argumento.diccionario,argumento.verbose)
exit
if __name__=="__main__":
main()
Un Saludo!