• STATISTIQUES
  • Il y a eu un total de 3 membres et 13965 visiteurs sur le site dans les dernières 24h pour un total de 13 968 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
  • [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    Hacking
    [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] Infomirmo
    Challenge présenté sous la forme de 6 niveaux de difficultés diverses et variées avec chacun plusieurs chall...
    Challenges
    [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation
    [EN] xda-developers
    Très bon site pour les gros bidouilleurs de smartphone de windows à androïd et de Apple jusqu'...
    Phreaking
    [FR] Cyber-Hacker
    CH - Cyber Hacker est un jeu par navigateur de simulation de hack, programmez et envoyez vos virus et piratez les aut...
    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,379 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,792 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,063 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 2,521 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,668 29-10-2014, 14h50
Dernier message: St0rn
  [python] Buffer Overflow : EBP et EIP St0rn 0 1,131 25-10-2014, 12h58
Dernier message: St0rn
  [Python] QuickHex thxer 9 3,659 15-08-2014, 20h26
Dernier message: sakiir

Atteindre :


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