0X0:爆破思路无非就是通过python提供的api本地去尝试连接远程的mysql数据库。通过python连接mysql,python为为我们提供了下面几个库,都能实现mysql连接。
1. MySQLdb (速度更快,推荐)
2. PyMySQL
怎么安装网上有大把教程,这里不做复述。
0X1:安装好mysqldb之后,先来看看mysqldb常规连接的使用方法
conn = MySQLdb.connect(host=ip, user='root', passwd=password, db='test', port=set_port, connect_timeout=5)
print '************************************************'
msg = "[+]:%s Username: root Password is: %s" % (ip, password)
print msg
print '************************************************'
pass
0X2:那就好办了,通过迭代把ip和密码填补进去就可以实现爆破。但是现实并没有那么简单,因为作为一个软件程序还有很多需要考虑的事情。
A:先要判断筛选目标是否开放mysql外连(这一点很重要,如果不开放的话mysqldb会多次尝试连接,最后浪费时间)
B:ThreadPool的使用方法,单线程速度实在太慢了。关于ThreadPool的使用方法其实很简单,现在很多然都用Multiprocessing来代替,没关系的。
先解释一下关于A问题的解决办法、
我们可以先用一段代码来实习批量开放端口扫描,如果目标开放mysql外联就保存下载。
实现代码:
# -*- coding: utf-8 -*-
"""
__author__ = 'Langziyanqin'
__QQ__ = '982722261'
┏┓ ┏┓
┏┛┻━━━┛┻┓
┃ ☃ ┃
┃ ┳┛ ┗┳ ┃
┃ ┻ ┃
┗━┓ ┏━┛
┃ ┗━━━┓
┃ 神兽保佑 ┣┓
┃ 永无BUG! ┏┛
┗┓┓┏━┳┓┏┛
┃┫┫ ┃┫┫
┗┻┛ ┗┻┛
"""
import sys
import socket
import time
import threading
timeout = 5
socket.setdefaulttimeout(timeout)
print '''
-----------------------------------
LANGziyanqing Port Scan
-----------------------------------
批量扫描IP的端口,是否开放
获取开放端口的banner
emmm....
就这样
ip放在ips.txt
'''
reloa