Bonsoir à tous,
En tant que nouvel arrivant dans votre communauté, j'aimerai faire don d'une part de mes maigres outils à la communauté.
Voici donc un petit code source dont le but est de générer des dictionnaires pour on s'en doute des attaques par dictionnaires.
J'ai dévellopé ce code en python afin de le rendre portable et multi plateforme (même si certaines fonctionalités ne fonctionnent que sous Linux).
Le code de démarrage est : IESCA.
Je conseillerai aussi de démarrer cela dans la console via la commande:
J'ai essayé de commenter le code afin de le rendre plus compréhensible.
Veuillez m'excusez des possibles fautes d'orthographe dans celui-ci.
Voici donc le script:
Je suis bien évidement à l'écoute de toute idée d'amélioration.
L'option mot de passe md5 est une option liée à un autre script actuellement en version 0.1, donc non opérationnel. Je le posterai dans ce même fil de discussion dès qu'il le sera.
Bien à vous.
En tant que nouvel arrivant dans votre communauté, j'aimerai faire don d'une part de mes maigres outils à la communauté.
Voici donc un petit code source dont le but est de générer des dictionnaires pour on s'en doute des attaques par dictionnaires.
J'ai dévellopé ce code en python afin de le rendre portable et multi plateforme (même si certaines fonctionalités ne fonctionnent que sous Linux).
Le code de démarrage est : IESCA.
Je conseillerai aussi de démarrer cela dans la console via la commande:
Code:
python nomscript.py
Veuillez m'excusez des possibles fautes d'orthographe dans celui-ci.
Voici donc le script:
Code:
""" Generateur de clefs Version: 7.1 Auteur: Anonyme77 Date: 13/11/2012 """ def md5 (): """Genere un dictionnaire de decryptage de md5 a partir d un dico donne""" import os import hashlib print "\nCette fonction utilise un dictionnaire de base pour le transformer en dico md5" print "\n\tDictionnaire de base: " print "\t------------------- fichier1=str(raw_input("\nEntrez le nom du fichier: ")) while ((not(os.path.exists(fichier1))) or (not(os.path.isfile(fichier1)))): fichier1=str(raw_input("\nEntrez le nom du fichier: ")) print "\n\tFichier de sortie: " print "\t----------------- sortie=dirfile() entree=open(fichier1,"r") prevention() for line in entree: line=line.strip() md5=hashlib.md5(line).heigest() sortie.write(line+" "+md5+"\n") def tri(fichier=""): """Trie un fichier. Necessite un systeme LINUX""" import os if(fichier==""): print "\n\t\tFichier a trier" print "\t\t-------------- fichier=str(raw_input("\nEntrez le nom du fichier: ")) while ((not(os.path.exists(fichier))) or (not(os.path.isfile(fichier)))): fichier=str(raw_input("\nEntrez le nom du fichier: ")) prevention() os.popen("sort "+fichier+' >> tmp.txt') os.popen("uniq tmp.txt > "+fichier) os.popen("rm tmp.txt") def dates(): """Genere des dates""" print "\n\tEntrez les annees bornes: " (minimum,maximum)=bornes() fichier=dirfile() print "\n\t\tFormat de la date" print "\t ______________________ " print "\t| |" print "\t| 1.15/mai/1993 |" print "\t| 2.15/Mai/1993 |" print "\t| 3.15/MAI/1993 |" print "\t| 4.15-mai-1993 |" print "\t| 5.15-Mai-1993 |" print "\t| 6.15-MAI-1993 |" print "\t| 7.15mai1993 |" print "\t| 8.15Mai1993 |" print "\t| 9.15MAI1993 |" print "\t| 10.15051993 |" print "\t| 11.05151993 |" print "\t| 12.Toutes ces options |" print "\t| |" print "\t ______________________ " choix=int(raw_input("Entrez votre choix: ")) while(choix<1 or choix>12): choix=int(raw_input("Entrez votre choix: ")) print "\nChargement du/des dictionnaires." if(choix==1 or choix==4 or choix==7): liste1=['janvier','fevrier','mars','avril','mai','juin','juillet','aout','septembre','octobre','nombre','decembre'] print "\nDictionnaire charge avec succes" elif(choix==2 or choix==5 or choix==8): liste1=['Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Nombre','Decembre'] print "\nDictionnaire charge avec succes" elif(choix==3 or choix==6 or choix==9): liste1=['JANVIER','FEVRIER','MARS','AVRIL','MAI','JUIN','JUILLET','AOUT','SEPTEMBRE','OCTOBRE','NOMVEMBRE','DECEMBRE'] print "\nDictionnaire charge avec succes" elif(choix==12): liste1=['janvier','fevrier','mars','avril','mai','juin','juillet','aout','septembre','octobre','nombre','decembre'] liste2=['Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Nombre','Decembre'] liste3=['JANVIER','FEVRIER','MARS','AVRIL','MAI','JUIN','JUILLET','AOUT','SEPTEMBRE','OCTOBRE','NOMVEMBRE','DECEMBRE'] print "\nDictionnaires charges avec succes" else: print"\nAucun dictionnaire n'est necessaire" prevention() while(minimum<=maximum): mois=0 while(mois<=11): jour=1 while(jour<=31): if(choix==1): fichier.write(str(jour)+'/'+liste1[mois]+'/'+str(minimum)+'\n') elif(choix==2): fichier.write(str(jour)+'/'+liste1[mois]+'/'+str(minimum)+'\n') elif(choix==3): fichier.write(str(jour)+'/'+liste1[mois]+'/'+str(minimum)+'\n') elif(choix==4): fichier.write(str(jour)+'-'+liste1[mois]+'-'+str(minimum)+'\n') elif(choix==5): fichier.write(str(jour)+'-'+liste1[mois]+'-'+str(minimum)+'\n') elif(choix==6): fichier.write(str(jour)+'-'+liste1[mois]+'-'+str(minimum)+'\n') elif(choix==7): fichier.write(str(jour)+liste1[mois]+str(minimum)+'\n') elif(choix==8): fichier.write(str(jour)+liste1[mois]+str(minimum)+'\n') elif(choix==9): fichier.write(str(jour)+liste1[mois]+str(minimum)+'\n') elif(choix==10): fichier.write(str(jour)+str(mois+1)+str(minimum)+'\n') elif(choix==11): fichier.write(str(mois+1)+str(jour)+str(minimum)+'\n') else: fichier.write(str(jour)+'/'+liste1[mois]+'/'+str(minimum)+'\n') fichier.write(str(jour)+'/'+liste2[mois]+'/'+str(minimum)+'\n') fichier.write(str(jour)+'/'+liste3[mois]+'/'+str(minimum)+'\n') fichier.write(str(jour)+'-'+liste1[mois]+'-'+str(minimum)+'\n') fichier.write(str(jour)+'-'+liste2[mois]+'-'+str(minimum)+'\n') fichier.write(str(jour)+'-'+liste3[mois]+'-'+str(minimum)+'\n') fichier.write(str(jour)+liste1[mois]+str(minimum)+'\n') fichier.write(str(jour)+liste2[mois]+str(minimum)+'\n') fichier.write(str(jour)+liste3[mois]+str(minimum)+'\n') fichier.write(str(jour)+str(mois+1)+str(minimum)+'\n') fichier.write(str(mois+1)+str(jour)+str(minimum)+'\n') jour+=1 mois+=1 minimum+=1 def concatene(): """Concatene deux fichiers""" import os,sys linux= "linux" in sys.platform print("\n\tNom du fichier de destination") print("\t---------------------------) fil1=str(raw_input("\nEntrez le nom de votre fichier: ")) while ((not(os.path.exists(fil1))) or (not(os.path.isfile(fil1)))): fil1=str(raw_input("\nEntrez le nom du fichier: ")) print("\n\tNom du fichier source") print("\t---------------------------) fil2=str(raw_input("\nEntrez le nom de votre fichier: ")) while ((not(os.path.exists(fil2))) or (not(os.path.isfile(fil2)))): fil2=str(raw_input("\nEntrez le nom du fichier: ")) dest=open(fil1,"a") src=open(fil2,"r") prevention() for line in src: dest.write(line) dest.close() src.close() if(linux): print "\n\tSouhaitez-vous trier le fichier de destination ?" print "\n1.Oui" print "2.Non" choix2=int(raw_input("\nEntrez votre choix: ")) while(choix2<1 or choix2>2): choix2=int(raw_input("\nEntrez votre choix: ")) if(choix2==1): tri(fil1) print "\n\tSouhaitez-vous garder le fichier source ?" print "\n1.Oui" print "2.Non" choix1=int(raw_input("\nEntrez votre choix: ")) while(choix1<1 or choix1>2): choix1=int(raw_input("\nEntrez votre choix: ")) if(choix1==2): os.popen("rm "+fil2) def bornes(): """Laisse l'utilisateur choisir les bornes de generation""" inf=int(raw_input("\nEntrez votre borne inferieure: ")) while(inf<=0): inf=int(raw_input("\nEntrez une borne inferieure >0: ")) sup=int(raw_input("\nEntrez votre borne superieure: ")) while(sup<=0 or sup<=inf): sup=int(raw_input("\nEntrez votre borne superieure (>inf et >0): ")) return (inf,sup) def prevention(): """Cette fonction a pour but d'afficher un message de prvention""" print "\nOperation en cours ..." print "\nPour stopper le processus faites la combinaison CTRL+C" def nombres(): """Cette fonction a pour but de generer des nombres dans un fichier""" print "\tInterval de generation: " print "\t __________________________ " print "\t| |" print "\t| 1. Interval fixe |" print "\t| 2. Illimte |" print "\t| Faites votre choix |" print "\t __________________________ " choix2=int(raw_input("\nEntrez votre valeur: ")) while(choix2<1 or choix2>2): choix2=int(raw_input("\nEntrez votre valeur: ")) if(choix2==1): (minimum,maximum)=bornes() else: minimum=0 maximum=1 fichier=dirfile() prevention() if(choix2==1): while(minimum<=maximum): fichier.write(str(minimum)+'\n') minimum+=1 else: while(True): fichier.write(str(minimum)+'\n') minimum+=1 def lettres(): """Generation de lettres""" import random print "\n\tType de vos lettres" print "\t __________________________ " print "\t| |" print "\t| 1. Majuscules |" print "\t| 2. Minuscules |" print "\t| 3. Aleatoire |" print "\t| Faites votre choix |" print "\t __________________________ " choix2=int(raw_input("\nEntrez votre valeur: ")) while(choix2<0 or choix2>3): choix2=int(raw_input("\nEntrez votre valeur: ")) longu=longueur() if(longu==0): (minimum,maximum)=bornes() fichier=dirfile() i=1 result= '' if(choix2==1): dicomaj=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] if(longu==0): prevention() while(True): longu=random.randint(minimum,maximum) i=1 while(i<=longu): lettre=random.randint(0,25) result+=dicomaj[lettre] i+=1 fichier.write(result+'\n') result='' else: prevention() while(True): i=1 while(i<=longu): lettre=random.randint(0,25) result+=dicomal[lettre] i+=1 fichier.write(result+'\n') result='' elif (choix2==2): dicomin=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] if(longu==0): prevention() while(True): longu=random.randint(minimum,maximum) i=1 while(i<=longu): lettre=random.randint(0,25) result+=dicomin[lettre] i+=1 fichier.write(result+'\n') result='' else: prevention() while(True): i=1 while(i<=longu): lettre=random.randint(0,25) result+=dicomin[lettre] i+=1 fichier.write(result+'\n') result='' else: dicomin=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] dicomaj=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] if(longu==0): prevention() while(True): longu=random.randint(minimum,maximum) i=1 while(i<=longu): typ=random.randint(0,1) lettre=random.randint(0,25) if(typ==0): result+=dicomin[lettre] else: result+=dicomaj[lettre] i+=1 fichier.write(result+'\n') result='' else: prevention() while(True): i=1 while(i<=longu): typ=random.randint(0,1) lettre=random.randint(0,25) if(typ==0): result+=dicomin[lettre] else: result+=dicomaj[lettre] i+=1 fichier.write(result+'\n') result='' def aleatoire(): """Generation de clefs aleatoire""" import random fichier=dirfile() longu=longueur() dicomin=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] dicomaj=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] if(longu==0): (minimum,maximum)=bornes() prevention() while(True): taille=random.randint(minimum,maximum) result='' i=1 while(i<=taille): typ=random.randint(0,1) if typ==0: chiffre=random.randint(0,9) result+=str(chiffre) else: lettre=random.randint(0,25) minmaj=random.randint(0,1) if(minmaj==0): result+=dicomin[lettre] else: result+=dicomaj[lettre] i+=1 fichier.write(result+'\n') else: prevention() while(True): result='' i=1 while(i<=longu): typ=random.randint(0,1) if typ==0: chiffre=random.randint(0,9) result+=str(chiffre) else: lettre=random.randint(0,25) minmaj=random.randint(0,1) if(minmaj==0): result+=dicomin[lettre] else: result+=dicomaj[lettre] i+=1 fichier.write(result+'\n') def dirfile(): """Verification sur le nom de fichier et ouverture (creation)""" import os nom=str(raw_input("\nEntrez le nom de votre fichier: ")) if os.path.exists(nom): while(os.path.isdir(nom)): print "\nUn dossier portant ce nom existe deja." nom=str(raw_input("\nEntrez un nom de fichier correct: ")) if(os.path.isfile(nom)): print "Ce fichier existe deja." choix0=int(raw_input("\nVoulez-vous ecrire a la fin de ce fichier 1 pour OUI et 2 NON? ")) while(choix0!=1 and choix0!=2): choix0=int(raw_input("\nVeuillez entrer un choix plausible (1 Oui- 2 Non): ")) if(choix0==1): print "\nOuverture de votre fichier" fichier=open(nom,"a") else: return dirfile() else: print "\nCreation de votre fichier" fichier=open(nom,"w") print "\nVotre fichier a ete cree." return fichier def cls(): i=0 while(i<=100): print "\n" i+=1 def longueur(): longueur=-1 print "\tLongueur de vos clefs" print "\t __________________________ " print "\t| |" print "\t| O pour aleatoire |" print "\t| Choisissez votre longueur |" print "\t| |" print "\t __________________________ " longueur=int(raw_input("\nEntrez la longueur des vos clefs: ")) while(longueur<0): longueur=int(raw_input("\nEntrez la longueur des vos clefs: ")) return longueur def main(): """Fonction directrice""" import getpass import hashlib import sys linux= "linux" in sys.platform password=getpass.getpass("Entrez votre mot de passe: ") if(hashlib.md5(password).heigest()=="a6bcd1b8f7918aaddf8a35aab7b2f011"): recommencer=1 while(recommencer==1): print "\n\t\t\tGENERATION DE CLEFS" print "\t\t\t-------------------\n" print "\tQue voulez-vous generer ? " print "\t _________________________________ " print "\t| |" print "\t| 1. Des nombres |" print "\t| 2. Des lettres |" print "\t| 3. Des clefs aleatoires |" print "\t| 4. Des dates |" if(linux): print "\t| 5. Trier un fichier |" print "\t| 6. Concatener deux fichiers |" print "\t| 7. Generer un dictionnaire md5 |" else: print "\t| 5. Concatener deux fichiers |" print "\t| 6. Concatener deux fichiers |" print "\t| |" print "\t _________________________________ " choix=int(raw_input("\nEntrez votre choix: ")) if(linux): while(choix<1 or choix>7): choix=int(raw_input("\nEntrez votre choix: ")) if(choix==1): nombres() elif(choix==2): lettres() elif(choix==3): aleatoire() elif(choix==4): dates() elif(choix==5): tri() elif(choix==6): concatene() else: md5() else: while(choix<1 or choix>6): choix=int(raw_input("\nEntrez votre choix: ")) if(choix==1): nombres() elif(choix==2): lettres() elif(choix==3): aleatoire() elif(choix==4): dates() elif(choix==5): concatene() else: md5() print"\nVoulez-vous recommencer une generation (O-N) ? " choix2=str(raw_input("\nEntrez votre choix: ")) while(choix2!='O' and choix2!='N'): choix2=str(raw_input("\nEntrez votre choix: ")) if(choix2=='N'): recommencer=0 else: print "Passez votre chemin, ce programme n'est pas pour vous." main()
L'option mot de passe md5 est une option liée à un autre script actuellement en version 0.1, donc non opérationnel. Je le posterai dans ce même fil de discussion dès qu'il le sera.
Bien à vous.
Commentaire