news 2026/4/28 13:28:23

Kali Linux下用Nmap脚本爆破MySQL弱口令,结果全是‘No valid accounts found’?可能是PHPStudy的远程访问没开

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kali Linux下用Nmap脚本爆破MySQL弱口令,结果全是‘No valid accounts found’?可能是PHPStudy的远程访问没开

Kali Linux渗透测试实战:Nmap爆破MySQL弱口令的深度排错指南

当你在Kali Linux上使用Nmap的mysql-brute脚本对本地PHPStudy搭建的MySQL服务进行弱口令爆破时,是否经常遇到令人沮丧的"No valid accounts found"提示?这背后隐藏着一个初学者容易忽略的关键配置问题。本文将带你深入剖析这个典型场景,从网络协议层面解释失败原因,并提供一套完整的诊断与解决方案。

1. 问题现象与初步诊断

在典型的渗透测试学习环境中,我们经常使用以下命令尝试爆破MySQL服务:

nmap --script=mysql-brute --script-args userdb=users.txt,passdb=passwords.txt 192.168.1.100 -p 3306

当目标MySQL服务运行在PHPStudy环境下时,你可能会得到如下输出:

PORT STATE SERVICE 3306/tcp open mysql | mysql-brute: | Accounts: No valid accounts found |_ Statistics: Performed XX guesses in XX seconds, average tps: XX

这种现象通常与以下两种技术原因有关:

  1. MySQL默认绑定策略:PHPStudy安装的MySQL默认只监听127.0.0.1(localhost)
  2. 防火墙规则限制:Windows防火墙可能阻止了3306端口的入站连接

提示:在开始任何配置修改前,建议先在目标机器上执行netstat -ano | findstr 3306确认MySQL的实际监听地址。如果显示127.0.0.1:3306,则确认是绑定问题。

2. MySQL远程访问的底层原理

要彻底解决这个问题,我们需要理解MySQL的访问控制机制。MySQL的权限系统由两部分组成:

  1. 用户权限表:存储在mysql.user表中,定义哪些用户可以从哪些主机连接
  2. 网络绑定配置:由my.ini文件中的bind-address参数控制

常见误区对照表:

误区认知实际情况
"开启了用户远程权限就能连接"必须同时修改bind-address为0.0.0.0
"防火墙放行3306端口就够了"需要检查MySQL是否真的在监听外部接口
"GRANT命令能自动开放网络访问"权限授予与网络绑定是两个独立配置层

3. PHPStudy环境下的完整解决方案

3.1 修改MySQL绑定地址

  1. 定位PHPStudy的MySQL配置文件(通常位于phpstudy_pro/Extensions/MySQLX.X.X/my.ini
  2. 找到[mysqld]段,添加或修改以下参数:
[mysqld] bind-address = 0.0.0.0 skip-name-resolve
  1. 重启MySQL服务(通过PHPStudy控制面板或服务管理器)

3.2 配置用户远程访问权限

即使修改了绑定地址,MySQL默认用户仍可能被限制为localhost访问。执行以下SQL命令授权:

-- 查看现有用户权限 SELECT user, host FROM mysql.user; -- 授权root用户从任意IP访问(仅限测试环境) GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; -- 刷新权限 FLUSH PRIVILEGES;

3.3 验证网络可达性

在Kali上使用基础网络工具进行分层验证:

# 1. 检查端口是否开放 nc -zv 192.168.1.100 3306 # 2. 测试裸MySQL连接(不认证) nmap -p 3306 --script=mysql-info 192.168.1.100 # 3. 完整爆破测试 nmap --script=mysql-brute --script-args userdb=users.txt,passdb=passwords.txt 192.168.1.100 -p 3306

4. 安全加固建议

在完成渗透测试练习后,应当立即恢复安全配置:

  1. 将bind-address改回127.0.0.1
  2. 移除'%'通配符主机权限:
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%'; DROP USER 'root'@'%';
  1. 启用Windows防火墙对3306端口的阻止规则

5. 高级技巧与替代方案

当无法修改MySQL配置时,可以考虑这些渗透测试变通方法:

  1. 端口转发技术

    # 在目标Windows机器上执行(需管理员权限) netsh interface portproxy add v4tov4 listenport=3306 listenaddress=0.0.0.0 connectport=3306 connectaddress=127.0.0.1
  2. SSH隧道方案

    # 如果目标开启了SSH服务 ssh -L 3306:localhost:3306 user@target_ip
  3. Hydra的备用爆破方案

    hydra -L users.txt -P passwords.txt mysql://target_ip -s 3306 -t 4 -vV

在实际渗透测试项目中,遇到此类问题时,系统化的排查思路往往比记忆具体命令更重要。建议按照网络层→服务层→应用层的顺序逐步排查,这种方法论同样适用于其他服务的渗透测试场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 13:23:22

Windows 11深度清理优化:Win11Debloat让臃肿系统焕然一新

Windows 11深度清理优化:Win11Debloat让臃肿系统焕然一新 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and…

作者头像 李华
网站建设 2026/4/28 13:23:20

Java进销存ERP系统源码|基于SpringBoot的开源库存管理软件

温馨提示:文末有联系方式技术架构说明 本系统采用成熟稳定的企业级技术栈:JDK 1.8 作为运行环境,后端基于 SpringBoot 2.0.0 框架构建,持久层使用 MyBatis 1.3.2 实现数据操作;日志组件为 Log4j,前端界面依…

作者头像 李华
网站建设 2026/4/28 13:22:00

CVE-2021-41402

一、漏洞简介 CVE-2021-41402 是一个影响 flatCore-CMS v2.0.8 的严重漏洞,允许远程攻击者执行任意 PHP 代码。此漏洞的核心问题在于代码注入(CWE-94),攻击者可以利用该漏洞在目标系统上执行恶意代码。 漏洞描述 flatCore-CMS …

作者头像 李华
网站建设 2026/4/28 13:21:30

UTM:在苹果生态中实现跨架构虚拟化的技术实践

UTM:在苹果生态中实现跨架构虚拟化的技术实践 【免费下载链接】UTM Virtual machines for iOS and macOS 项目地址: https://gitcode.com/gh_mirrors/ut/UTM UTM是一款专为iOS和macOS设计的全功能系统模拟器和虚拟机软件,基于QEMU技术构建。它让开…

作者头像 李华
网站建设 2026/4/28 13:19:34

彻底搞懂3D检测数据集坐标系:从NuScenes到KITTI的转换原理与代码实现

彻底搞懂3D检测数据集坐标系:从NuScenes到KITTI的转换原理与代码实现 在自动驾驶和计算机视觉领域,3D目标检测是一个核心任务,而不同数据集之间的坐标系差异常常成为算法迁移和结果复现的"拦路虎"。NuScenes和KITTI作为两大主流数据…

作者头像 李华