3306端口密码爆破工具
MySQL默认监听3306端口。端口这个数字在运维和渗透测试圈子里几乎成了一种暗号——看到3306,密码脑子里第一反应就是爆破"数据库"。我见过太多服务器,工具防火墙只开了80和443,端口偏偏3306也对外裸奔,密码root密码设成123456。爆破这不是工具段子,是端口Shodan上随手一搜就能验证的事实。 密码爆破这件事,密码本质上是爆破概率游戏。Hydra、工具Medusa、端口Ncrack这些工具把游戏规则写成了代码。密码拿Hydra来说,爆破一条命令就能对3306发起字典攻击: 速度取决于网络延迟和目标端的max_connect_errors设置。MySQL有个保护机制,连续失败超过阈值会直接封IP。所以真实场景里,爆破3306往往要配合代理池或者慢速模式,不然跑不了几轮就被拉黑了。 工具本身没什么门槛,难的是字典。我收集过一批真实泄露的数据库密码,排名前几的是:root/root、root/123456、admin/admin888、test/test。国内某云厂商的默认镜像里,MySQL的初始密码甚至是空字符串——安装完就能直接连。这种配置放到公网上,爆破脚本跑不了三秒就出结果。 但别以为复杂密码就安全。我做过一个实验,用 很多人以为改个强密码就完事了。远远不够。3306端口根本不该暴露在公网。正确的做法是绑定 另外,MySQL 8.0之后默认安装了 如果你怀疑自己被爆破了,去看MySQL的错误日志。失败的连接会留下这样的记录: 短时间内大量来自同一IP的Access denied,基本就是爆破没跑了。这时候别犹豫,直接封IP,然后检查有没有成功登录的记录。成功的日志长得不一样,会显示 说句实在话,3306爆破的技术含量真不高。它之所以还能得手,纯粹是因为有人懒得改默认配置。工具就在那里,字典也在那里,端口开着,密码弱着——这不是技术问题,是态度问题。hydra -l root -P pass.txt mysql://192.168.1.100:3306字典才是胜负手
rockyou.txt加上几条针对性的规则(比如首字母大写+年份+特殊符号),对一台开了3306的测试机跑了四个小时,最终命中了Admin@2023。字典里根本没有这个密码,是规则引擎现场生成的。防御比攻击更值得聊
bind-address = 127.0.0.1,需要远程访问就走SSH隧道或者VPN。再狠一点,用iptables限制来源IP:iptables -A INPUT -p tcp --dport 3306 -s 10.0.0.0/8 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROPvalidate_password组件,强制密码复杂度。但很多老系统还在跑5.6、5.7,压根没这层保护。我见过一台CentOS 6的机器,MySQL 5.1,root密码是root,跑了六年没人管。最后是被一个自动化扫描脚本撞进去的,数据全被删了,留了一封勒索信。日志里藏着真相
2024-01-15T03:22:11.123456Z 0 [Warning] Access denied for user 'root'@'45.33.22.11' (using password: YES)Connect而不是Access denied。