• STATISTIQUES
  • Il y a eu un total de 3 membres et 12679 visiteurs sur le site dans les dernières 24h pour un total de 12 682 personnes!


    2 membres se sont inscrits dans les dernières 24h!


    Membres: 2 447
    Discussions: 3 590
    Messages: 32 838
    Tutoriels: 77
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Rankk
    Site de challenge construit sur le principe d'une pyramide à 9 level. Level 1: 60,Level 2: 72,Level 3: 68,Lev...
    Challenges
    [EN] Net Force
    Javascript: 9, Java Applets: 6, Cryptography: 16, Exploits: 7, Cracking: 14, Programming: 13, Internet: 15, Steganograph...
    Challenges
    [FR] Zenk-Security
    La communauté zenk-security a pour objet principal la sécurité informatique, nous sommes des tou...
    Hacking
    [FR] Comment ca marche
     Gratuit et accessible à tous, ce site de communauté permet de se dépanner, se faire aider ...
    Webmaster
    [EN] Security Traps
    Site de challenge qui prétend être construit non pas dans le but de parfaire vos connaissances, mais plutôt dan...
    Challenges
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[python] BruteForce
22-02-2013, 06h08
Message : #1
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
[python] BruteForce
Salut,

Je suis tomber sur ça :
http://docs.python.org/2/library/itertools.html
Et donc, je me suis lancer dans le code d'un force-brute en python (ok c'est lent, mais bon...)

Code PYTHON :

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import hashlib, itertools,time,sys

"""
Toute cette première partie définie les variables
"""

hash=input("Hash : ")
func_hash=""
while func_hash not in hashlib.algorithms_available:
    print(", ".join(hashlib.algorithms_available))
    func_hash=input("Func Hash : ")

charset=""

while len(charset)==0:
    if input("Add [a-z] in charset ? y/n").lower()=="y":
        charset+="azertyuiopqsdfghjklmwxcvbn"
    if input("Add [A-Z] in charset ? y/n").lower()=="y":
        charset+="azertyuiopqsdfghjklmwxcvbn".upper()
    if input("Add [0-9] in charset ? y/n").lower()=="y":
        charset+="1234567890"
   
    if input("Add &~"+'"'+"'{(-|`_\^@)]+=}¨^$£ø%µ*?,.;/:§! in charset ? y/n").lower()=="y":
        charset+="&~"+'"'+"'{(-|`_\^@)]+=}¨^$£ø%µ*?,.;/:§!"

len_min=0
while (0<len_min) is False:
    try:
        len_min=int(input("Len min : "))
    except:
        len_min=0

len_max=0
while (len_min<=len_max) is False or (len_max<=len(charset)) is False:
    try:
        len_max=int(input("Len max : "))
    except:
        len_max=0

"""
Dans cette partie on est censé faire une accroximation du temps de calcul
en se basant sur un nombre de calcul effectuer en environ 5s
"""


temps=time.time()
number=0
for cle in itertools.combinations_with_replacement("012",3):
    number+=1
    print(str(number)+"\t"+"".join(cle))
    h = hashlib.new(func_hash)
    h.update("".join(cle).encode())

print(number)
print(int(1814400*60/(time.time()-temps)))

"""
Dans cette dernière partie, on fait les calculs pour trouver le hash

"""


"""
len_courant=len_min
while len_courant<=len_max:
    for cle in itertools.permutations(charset,len_courant):
        h = hashlib.new(func_hash)
        h.update("".join(cle).encode())
        if h.hexdigest()==hash:
            print("Hash trouvé!")
            print(cle)
            sys.exit(0)
    len_courant+=1
"""


 


Mais itertools.combinations_with_replacement("012",3) ne créer par toutes les combinaisons, et ça m'énerve, je trouve pas comment corriger ça :/

Si quelqu'un as une idée, je suis preneur.
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
22-02-2013, 10h21
Message : #2
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
RE: [python] BruteForce
(22-02-2013, 06h08)khaled a écrit : Mais itertools.combinations_with_replacement("012",3) ne créer par toutes les combinaisons, et ça m'énerve, je trouve pas comment corriger ça :/

humm...

Code PYTHON :

>>> import itertools
>>> list(itertools.combinations_with_replacement("012",3))
[('0', '0', '0'), ('0', '0', '1'), ('0', '0', '2'), ('0', '1', '1'), ('0', '1', '2'), ('0', '2', '2'), ('1', '1', '1'), ('1', '1', '2'), ('1', '2', '2'), ('2', '2', '2')]
 


ça serait pas ton python qui te fait avaler des couleuvres un peu ?
+1 (0) -1 (0) Répondre
22-02-2013, 13h34 (Modification du message : 22-02-2013, 13h34 par InstinctHack.)
Message : #3
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: [python] BruteForce
bah nan
les combinaisons, 100, 200 et autre ne sont pas dedans...

EDIT : j'ai trouver la solution, je refait mon code et je le poste Wink
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
22-02-2013, 13h51 (Modification du message : 22-02-2013, 14h20 par gruik.)
Message : #4
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
RE: [python] BruteForce
j'arrete de picoler demain, promis

alors du coup je voudrais pas dire de connerie mais il me semble que "100", "010" et "001" sont en l'occurence une même combinaison

hinhin trouvé :

Code PYTHON :

>>> [i for i in itertools.product('012',repeat=3)]
[('0', '0', '0'), ('0', '0', '1'), ('0', '0', '2'), ('0', '1', '0'), ('0', '1', '1'), ('0', '1', '2'), ('0', '2', '0'), ('0', '2', '1'), ('0', '2', '2'), ('1', '0', '0'), ('1', '0', '1'), ('1', '0', '2'), ('1', '1', '0'), ('1', '1', '1'), ('1', '1', '2'), ('1', '2', '0'), ('1', '2', '1'), ('1', '2', '2'), ('2', '0', '0'), ('2', '0', '1'), ('2', '0', '2'), ('2', '1', '0'), ('2', '1', '1'), ('2', '1', '2'), ('2', '2', '0'), ('2', '2', '1'), ('2', '2', '2')]
 
+1 (1) -1 (0) Répondre
22-02-2013, 14h35
Message : #5
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: [python] BruteForce
@gruik oui, c'est ça, sauf que md5(100)!=md5(010) :p

donc voilà mon code final :
Code PYTHON :

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#85295707257fb71bbcaa28e993dddb06

import hashlib, itertools,time,sys,math

"""
Toute cette première partie définie les variables
"""


def a():
    #Ce code fonctionne mais fait sauter la ram
    your_list = 'abc'
    complete_list = []
    for current in range(len(your_list)):
        a = [i for i in your_list]
        for y in range(current):
            a = [x+i for i in your_list for x in a]
        complete_list=complete_list+a
    print(complete_list)


def bruteforce(charset, maxlength):
    return (''.join(candidate)
    for candidate in itertools.chain.from_iterable(itertools.product(charset, repeat=i)
    for i in range(1, maxlength + 1)))

def number_combinaisons(charset,length_min,length_max):
    number=0
    longueur=len(charset)
    while length_min<=length_max:
        number+=math.pow(longueur,length_max)
        length_max-=1
    return int(number)

hash=""
while hash=="":
    hash=input("Hash : ")


func_hash=""
while func_hash not in hashlib.algorithms_available:
    print(", ".join(hashlib.algorithms_available))
    func_hash=input("Func Hash : ")

charset=""

while len(charset)==0:
    if input("Add [a-z] in charset ? y/n").lower()=="y":
        charset+="azertyuiopqsdfghjklmwxcvbn"
    if input("Add [A-Z] in charset ? y/n").lower()=="y":
        charset+="azertyuiopqsdfghjklmwxcvbn".upper()
    if input("Add [0-9] in charset ? y/n").lower()=="y":
        charset+="1234567890"
   
    if input("Add &~"+'"'+"'{(-|`_\^@)]+=}¨^$£ø%µ*?,.;/:§! in charset ? y/n").lower()=="y":
        charset+="&~"+'"'+"'{(-|`_\^@)]+=}¨^$£ø%µ*?,.;/:§!"

len_min=0
while (0<len_min) is False:
    try:
        len_min=int(input("Len min : "))
    except:
        len_min=0

len_max=0
while (len_min<=len_max) is False or (len_max<=len(charset)) is False:
    try:
        len_max=int(input("Len max : "))
    except:
        len_max=0


"""
Dans cette partie on est censé faire une accroximation du temps de calcul
en se basant sur un nombre de calcul effectuer en environ 5s
"""

test_temps=time.time()

test_charset="0123456789"
test_length=6

for attempt in bruteforce(test_charset,test_length):
    h = hashlib.new(func_hash)
    h.update(attempt.encode())
    h.hexdigest()

test_difference=(time.time()-test_temps)

test_number_combinaisons=number_combinaisons(test_charset,test_length,test_length)
print("Vous avez calculer "+str(test_number_combinaisons)+" combinaisons en "+str(round(test_difference,2))+" secondes")
print("Vous pouvez donc calculer "+str(int(test_number_combinaisons*60/test_difference))+ " par minute")
test_numbre_combinaisons_finales=number_combinaisons(charset,len_min,len_max)
print("Et vous viendrez au bout des "+str(test_numbre_combinaisons_finales)+" combinaisons en "+str(int((test_numbre_combinaisons_finales*test_difference)/test_number_combinaisons))+" secondes.")






"""
Ancienne technique qui ignorais certaine combinaisons

for cle in itertools.combinations_with_replacement("012",3):
    number+=1
    print(str(number)+"\t"+"".join(cle))
    h = hashlib.new(func_hash)
    h.update("".join(cle).encode())
"""



"""
Dans cette dernière partie, on fait les calculs pour trouver le hash
"""


""""
len_courant=len_min
while len_courant<=len_max:
    for cle in itertools.permutations(charset,len_courant):
        h = hashlib.new(func_hash)
        h.update("".join(cle).encode())
        if h.hexdigest()==hash:
            print("Hash trouvé!")
            print(cle)
            sys.exit(0)
    len_courant+=1
"""


for attempt in bruteforce(charset,test_length):
    h = hashlib.new(func_hash)
    h.update(attempt.encode())
    if h.hexdigest()==hash:
        print("Hash trouvé : "+attempt)
        sys.exit()
print("Hash non trouvé! <img src="https://n-pn.fr/forum/images/smilies/sad.png" alt="Sad" title="Sad" class="smilie smilie_8" />")

 


Attention, ceci est un gadget! Il est lent et n'utilise que 50% de mon CPU (python et le dual-core...) mais ça marche Smile
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
25-02-2013, 03h27
Message : #6
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: [python] BruteForce
Petit up pour dire qu'etrangement avec la même version de python, mais un os fraichement mis à jour, la totalité de mes ressources cpu sont utilisées Smile (c'est toujours aussi lent :') )
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [Python]Situer mon niveau. InforMods 19 8,362 10-11-2016, 00h03
Dernier message: ZeR0-@bSoLu
  [PYTHON] un bot IRC basique darcosion 1 1,477 13-06-2016, 20h40
Dernier message: Yttrium
  [python] ANBU ::: TCP Session Hunter St0rn 2 1,790 25-02-2016, 18h45
Dernier message: otherflow
  [Python] Une autre façon de gérer les Virtualenv et Packages thxer 2 1,591 18-01-2016, 12h06
Dernier message: thxer
  [Python] rot script ark 9 4,059 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 2,520 03-03-2015, 10h55
Dernier message: ark
  [python] Un décorateur pour inventorier les objets b0fh 1 1,681 04-12-2014, 17h50
Dernier message: thxer
  [python] UPnP Scanner St0rn 2 1,665 29-10-2014, 14h50
Dernier message: St0rn
  [python] Buffer Overflow : EBP et EIP St0rn 0 1,130 25-10-2014, 12h58
Dernier message: St0rn
  [Python] QuickHex thxer 9 3,654 15-08-2014, 20h26
Dernier message: sakiir

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut