send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Release] EnForcer v0.1

  • 4 Respuestas
  • 1473 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado encode

  • *
  • Underc0der
  • Mensajes: 2
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Enero 06, 2014, 06:24:38 pm »
Buenas, hace tiempo hice un crackeador de hashes md5, ahora lo dejo mejorado.

El uso es simple, como argumentos el hash y el modo, m(minusculas), M(mayusculas) y N(numeros) los cuales se pueden juntar Ejemplo: "mMN".

Código simple pero muy mejorable, optimizable.

Código: Python
  1. import sys
  2. import itertools
  3. import hashlib
  4. import time
  5.  
  6. #Const
  7. _m = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
  8.       'w', 'x', 'y', 'z']
  9.  
  10. _M = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
  11.       'W', 'X', 'Y', 'Z']
  12.  
  13. _N = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
  14.  
  15.  
  16. #Help
  17. def _help():
  18.     print ("==========================================================================\n"
  19.            "  EnForcer v0.1 | encode\n"
  20.            "--------------------------------------------------------------------------\n"
  21.            "  Usage: EnForcer.py [md5] [mode: m/M/N]\n"
  22.            "\n"
  23.            "  Example: EnForcer.py 97a57645a3f0e1518f8c9f4d340d4c4f mMN\n"
  24.            "==========================================================================")
  25.  
  26.  
  27. #Break
  28. def _break(_md5, _chars):
  29.     _clen = 0
  30.     print '========================================='
  31.     print ' Breaking: ' + time.asctime()
  32.     print '-----------------------------------------'
  33.     while 1:
  34.         _clen += 1
  35.         for word in itertools.product(_chars, repeat=_clen):
  36.             _word = ''.join(word)
  37.             if _md5 == hashlib.md5(_word).hexdigest():
  38.                 print ' Text: ' + _word
  39.                 print ' MD5: ' + _md5
  40.                 print '-----------------------------------------'
  41.                 print ' Hash Cracked: ' + time.asctime()
  42.                 print '========================================='
  43.                 return
  44.     print ' Hash Not Cracked: ' + time.asctime()
  45.     print '========================================='
  46.  
  47.  
  48. #Main
  49. def _main(_md5, _mode):
  50.     _chain = ''
  51.     if 'm' in _mode:
  52.         _chain = _chain.join(_m)
  53.     if 'M' in _mode:
  54.         _chain = _chain.join(_M)
  55.     if 'N' in _mode:
  56.         _chain = _chain.join(_N)
  57.     if _chain == '':
  58.         _help()
  59.         return
  60.     _break(_md5, _chain)
  61.  
  62. #Args
  63. if len(sys.argv) == 3:
  64.     _main(sys.argv[1], sys.argv[2])
  65. else:
  66.     _help()
« Última modificación: Enero 06, 2014, 06:37:18 pm por 11Sep »

Desconectado WhiZ

  • *
  • Underc0der
  • Mensajes: 395
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Enero 06, 2014, 09:13:40 pm »
Buen code @encode! Te quedó muy limpio!

Para la próxima versión podrías implementar una función que analice el primer parámetro (teóricamente un hash md5) para no perder tiempo con los que no lo son. ;)

Por ej., podrías verificar el tamaño y si es una cadena de tipo alfanumérica.

Saludos!
WhiZ
« Última modificación: Enero 06, 2014, 09:15:48 pm por WhiZ »


Desconectado encode

  • *
  • Underc0der
  • Mensajes: 2
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Enero 06, 2014, 09:44:17 pm »
You are not allowed to view links. Register or Login
Buen code @encode! Te quedó muy limpio!

Para la próxima versión podrías implementar una función que analice el primer parámetro (teóricamente un hash md5) para no perder tiempo con los que no lo son. ;)

Por ej., podrías verificar el tamaño y si es una cadena de tipo alfanumérica.

Saludos!
WhiZ

La proxima versión la quiero desarrollar en c++, multithreading y optimizada.
Hacía mucho tiempo que no tocaba python y mejoré el código que tenia de hace años.

Desconectado WhiZ

  • *
  • Underc0der
  • Mensajes: 395
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Enero 06, 2014, 10:25:00 pm »
Genial! Publicala ni bien tengas el code!

Con respecto al multithreading, te recomiendo hacerlo opcional, para las máquinas mas viejitas jeje.

Espero la próxima versión.

Saludos!
WhiZ


Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5267
  • Actividad:
    48.33%
  • Reputación 26
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #4 en: Enero 07, 2014, 09:31:44 am »
Muy buena encode! esta genial el codigo!
Espero ver mas!! Ahi lo comparti en las redes sociales!

Saludos!
ANTRAX


 

¿Te gustó el post? COMPARTILO!