【漏洞与预防】MYSQL数据库弱口令预防
PLEASE_READ_ME 是一个针对 MySQL 数据库服务器的活跃数据勒索活动,其历史至少可以追溯到 2020 年。攻击方式非常简单,主要攻击手段是利用 MySQL 服务器的弱凭据。攻击的目标是全球互联网的 MySQL 服务器。PLEASE_READ_ME 是攻击者在被勒索的 MySQL 服务器上创建的数据库的名称。,因此该攻击是利用弱凭据,使用暴力破解,擦除数据库中的内容,并留下简短的注释。该票据被放置在一个名为“WARNING”的表格中,要求支付 的赎金。# 1.案例
2025年1月我司安全人员在对客户进行安全运营中发现某香港ip对客户服务器短时间内进行批量密码爆破,封禁其ip后,对其进行溯源反制在其攻击服务器发现批量扫描爆破工具某广东ip长期使用rdp进行远程登录,以报警并提交相关证据进行处理。
攻击服务器上使用的mysql爆破工具
在其爆破的结果中有3000个mysql数据库已爆破成功
在其中一个中国IP(事后查找此IP为某事业单位)爆破结果下发现其数据库内有其勒索信息
其中的勒索信指向一个链接
# 2.攻击复现
使用 hydra进行爆破得到其密码
使用mysql进行远程连接
使用mysqldump将数据导出
删除数据
写入勒索信
## 2.1使用工具介绍:
### 1. Hydra
#### 简介
Hydra 是一款开源的 暴力破解工具,支持多种协议(如 SSH、FTP、MySQL、HTTP 等),用于测试目标系统的弱口令漏洞。
注意:Hydra 仅应用于合法授权的安全测试,未经授权的使用可能违反法律。
#### 核心功能
- 多协议支持:支持 50+ 协议(如 MySQL、RDP、SMTP、Telnet 等)。
- 字典攻击:通过预定义的密码字典进行暴力破解。
- 多线程加速:可并行发起多个请求,提高破解效率。
### 2. mysql
#### 简介
`mysql` 是 MySQL 数据库的 命令行客户端工具,用于连接数据库、执行 SQL 命令及管理数据。
#### 核心功能
- 连接数据库:通过用户名、密码和主机信息访问 MySQL 服务器。
- 执行 SQL 语句:支持查询、插入、更新、删除等操作。
- 管理权限:创建用户、分配权限、修改密码等。
### 3. mysqldump
#### 简介
`mysqldump` 是 MySQL 自带的 数据备份工具,可将数据库结构和数据导出为 SQL 文件,支持全库、单库或单表备份。
#### 核心功能
- 全量备份:导出整个数据库或所有数据库。
- 部分备份:导出指定表或忽略特定表。
- 压缩备份:结合 `gzip` 压缩备份文件,节省存储空间。
# 3.漏洞详情
## 1.漏洞名称
mysql弱口令
## 2.漏洞类型
弱口令
## 3.漏洞描述
MySQL弱口令漏洞是指由于数据库账户的密码设置过于简单或使用默认密码如(密码长度过短(如少于8位)或仅包含单一字符类型,使用常见组合),导致攻击者可通过暴力破解或猜测密码的方式非法访问数据库的安全风险。
# 4.应急响应排查
如果怀疑机器通过MySQL爆破,可以通过查询mysql日志来进行排查。
MySQL 日志是排查问题的重要依据,主要包括:
## 1. 错误日志(Error Log)
记录 MySQL 启动、运行和停止时的错误信息。
- 位置:通常位于 `/var/log/mysql/error.log` 或通过以下命令查看:
```SQL
SHOW VARIABLES LIKE 'log_error';
```
- 排查内容:检查是否有异常登录、权限错误或 SQL 注入痕迹。
## 2. 通用查询日志(General Query Log)
记录所有 SQL 查询语句。
- 启用:
```SQL
SET GLOBAL general_log = 'ON';
SET GLOBAL log_output = 'FILE';
```
- 位置:通常位于 `/var/log/mysql/mysql.log` 或通过以下命令查看:
```SQL
SHOW VARIABLES LIKE 'general_log_file';
```
- 排查内容:检查是否有异常查询(如 `DROP`、`DELETE`、`UPDATE`)。
## 3. 慢查询日志(Slow Query Log)
记录执行时间超过指定阈值的查询。
- 启用:
```SQL
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1; -- 设置阈值为 1 秒
```
- 位置:通常位于 `/var/log/mysql/mysql-slow.log` 或通过以下命令查看:
```SQL
SHOW VARIABLES LIKE 'slow_query_log_file';
```
- 排查内容:检查是否有异常慢查询或资源消耗过高的操作。
## 4. 二进制日志(Binary Log)
记录所有数据更改操作(如 `INSERT`、`UPDATE`、`DELETE`)。
- 启用:
```SQL
SET GLOBAL log_bin = 'ON';
```
- 位置:通常位于 `/var/log/mysql/` 或通过以下命令查看:
```SQL
SHOW VARIABLES LIKE 'log_bin';
```
- 排查内容:检查是否有异常数据更改操作。
1. 检查用户和权限
- 查看当前用户:
```SQL
SELECT user, host FROM mysql.user;
```
- 排查内容:检查是否有未授权的用户或异常权限分配。
1. 检查数据库状态
- 查看当前连接:
```SQL
SHOW PROCESSLIST;
```
- 排查内容:检查是否有异常连接或长时间运行的查询。
# 5.防范措施
## 1.密码要求
- 长度:至少 12 个字符。
- 组成:混合大小写字母、数字和特殊符号(如 `!@#$%^&*`)。
- 禁止常见弱密码:如 `123456`、`password`、`root` 等。
- 强制用户每 90 天更换一次密码。
- 禁止重复使用最近 5 次的历史密码。
- 修改 MySQL 配置(`my.cnf` 或 `my.ini`)启用密码校验插件:
```TOML
plugin-load-add=validate_password.so
validate_password_policy=STRONG # 密码强度策略(MEDIUM/STRONG)
validate_password_length=12 # 最小长度
validate_password_mixed_case_count=1# 至少1个大写和1个小写字母
validate_password_number_count=1 # 至少1个数字
validate_password_special_char_count=1 # 至少1个特殊字符
```
## 2. 账户要求
- 删除匿名账户:
```SQL
DROP USER ''@'localhost';
```
- 禁止 `root` 远程登录:
```SQL
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1');
FLUSH PRIVILEGES;
```
- 为每个应用创建专用用户,仅授予必要权限:
```SQL
CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'StrongPassword123!';
GRANT SELECT, INSERT, UPDATE ON app_db.* TO 'app_user'@'192.168.1.%';
```
## 3.修改默认端口
- 将 MySQL 默认端口 `3306` 改为非标准端口(如 `33706`):
```TOML
port=33706
```
- 禁止 MySQL 直接暴露在公网,通过 VPN 或跳板机访问。
## 4.启用 SSL/TLS 加密
- 生成 SSL 证书并配置 MySQL:
```TOML
ssl-ca=/etc/mysql/ca.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem
require_secure_transport=ON# 强制使用 SSL 连接
```
- 禁用 `mysql_old_password`(旧版身份验证) 插件,仅允许 `caching_sha2_password`:
```TOML
default_authentication_plugin=caching_sha2_password
```
## 5.启用详细日志
- 错误日志:记录所有登录失败事件。
- 通用查询日志:监控异常 SQL 操作:
```SQL
SET GLOBAL general_log = 'ON';
```
## 6.定期备份备份
- 备份策略:每日全量备份 + 二进制日志增量备份。
- 恢复测试:定期测试备份文件恢复流程。 当年有个泄露版方程式的139和445工具无需爆破,漏洞触发式上传并执行,一抓一个网段,太吓人。另外腾龙网站开发的1433抓鸡工具甚是好用。S扫描器也是嘎嘎好用。 密码配置这种高风险的操作不该由人控制,首先it部门应该制定密码规则,给每个用户进行严苛的权限划分,给每个用户加ip限制,对特别重要的账户可以指定只能从堡垒机登录,堡垒机不可用密码登录,只能用密钥文件。
常见的安全问题只要正常操作都不会碰到,出问题基本都是因为管理员懒,用户懒。 事业单位的肉鸡? 好贴,注意防范 感谢分析,收藏学习 感谢分析,收藏学习
感谢楼主分享,先学习学习。 新人报道,谢谢教学 新人报道,谢谢教学 学习学习 感谢分享,学习一下提升技能。 感谢分享 收藏有空再详细看看