Test Foro de elhacker.net SMF 2.1

Seguridad Informática => Análisis y Diseño de Malware => Abril negro => Mensaje iniciado por: 3n31ch en 24 Abril 2017, 02:59 AM

Título: Editor de diccionarios de claves
Publicado por: 3n31ch en 24 Abril 2017, 02:59 AM
Este es un script pequeño que cree con el objetivo de editar los gigantescos diccionarios de passwords que hay en la red.

Muchas veces utilizamos un diccionario de claves grande pensando que es lo mejor, pero no nos detemos a pensar que en ese diccionario hay claves como "%" y si vemos con mas detalle la mayoria de los sitios restringen las claves a un minimo 5-7 caracteres.

Por tanto es importante limitar los diccionarios a las soluciones viables de una password, es por esto que cree Dictditor: Editor de diccionarios por medio de una exprecion regular.

El uso es muy simple:

Usage: python dictditor.py [options]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -i FILE, --input=FILE
                        Dictionary to modify
  -o PATH, --output=PATH
                        Modified dictionary.
  -r REGEX, --regex=REGEX
                        Regular expression to apply.


(En la url del final podran ver un ejemplo de su uso)

El proyecto en la actualidad lo estoy mejorando para poder reordenar el diccionario y a su vez para generar una base de datos online que permita crear diccionarios. Pero por ahora este es el codigo:

Código (python) [Seleccionar]
__version__ = "1.0"
__author__ = "3n31ch"
__website__ = "http://www.elhacker.net/"

import re
from optparse import OptionParser

def printError(error):
print "[ERROR] ", error

def dictditor(inputPath, outputPath, regex):
inputFile = open(inputPath, "r")
outputFile = open(outputPath, "w")
pattern = re.compile(regex)
for line in inputFile:
word = line.replace("\n", "")
if(pattern.match(word)):
outputFile.write(line)
inputFile.close()
outputFile.close()
return;


def main():

print "DICTDITOR - Dictionary Editor"
print "Author: ",__author__
print __website__

parser = OptionParser(usage="usage: python %prog [options]",
                          version= "%prog "+__version__ )
parser.add_option("-i", "--input",
dest="input",
help="Dictionary to modify",
metavar="FILE");
parser.add_option("-o", "--output",
dest="output",
help= 'Modified dictionary.',
metavar="PATH");
parser.add_option("-r", "--regex",
dest="regex",
help= 'Regular expression to apply.',
metavar="REGEX");

(options, args) = parser.parse_args()

if options.input and options.output and options.regex:
dictditor(options.input, options.output, options.regex)
else:
printError("All options are necessary");
parser.print_help()


if __name__ == '__main__':
main()


Link github: https://github.com/3n31ch/dictditor (https://github.com/3n31ch/dictditor)
Título: Re: Editor de diccionarios de claves
Publicado por: Serapis en 25 Abril 2017, 15:52 PM
mmm...está bien, pero yo no diría que es un editor, más bien diría que es un 'Extractor/Selector'... ya que mirando el código, busca un patrón y si coincide guarda la clave a un fichero nuevo, pero no edita esa misma clave, solo busca coincidencias y las copia a otro fichero aislado.
   
Citarfor line in inputFile:
      word = line.replace("\n", "")
      if(pattern.match(word)):
         outputFile.write(line)

Desde luego es útil, porque muchas veces un diccionario completo, no va a ser tan útil como uno más específico (cuando se tienen datos para poder restringirlo).

...pero vamos no es un editor, no modifica una clave existente.
Título: Re: Editor de diccionarios de claves
Publicado por: 3n31ch en 27 Abril 2017, 02:45 AM
Claro, tienes razón. Mas acorde es el nombre "extractor", pero lo seguiré mejorando y seguramente no sea ni editor ni extractor sino mas bien... creador.

(O extractor de base de datos grande en un archivo... pero es mas lindo "creador").