深入探索数据库攻击技术 Part 2
字数 1559 2025-08-29 08:32:02

深入探索数据库攻击技术:Microsoft SQL Server恶意Payload投递与执行

数据库服务器攻击概述

数据库服务器通常是攻击者的首要目标,攻击过程主要分为三个阶段:

  1. 扫描阶段:扫描子网并识别运行数据库服务的计算机
  2. 攻击阶段:通过暴力破解等方式获取数据库访问权限
  3. Payload投递阶段:向目标系统传送并执行恶意payload

常见的恶意payload包括:

  • 加密货币挖矿软件
  • DDoS僵尸程序
  • 远程访问木马(RAT)

恶意Payload投递技术

1. 直接在目标系统上创建可执行文件

技术原理
利用SQL Server的OLE自动化存储过程(sp_OA)和ADODB.Stream对象在磁盘上创建和存储可执行文件。

关键步骤

  1. 使用sp_OACreate创建ADODB.Stream对象实例
  2. 使用sp_OAMethod调用Stream对象的方法:
    • Open:打开流
    • Write:写入二进制内容(HEX编码的可执行文件)
    • SaveToFile:将内容保存到本地文件
    • Close:关闭流

ADODB.Stream对象类标识符
00000566-0000-0010-8000-00AA006D2EA4

2. 从远程服务器下载可执行文件

2.1 使用COM对象和OLE存储过程

涉及的COM对象

  • FileSystemObject
  • ADODB.Stream
  • WshShell
  • XMLHTTP

典型攻击流程

  1. 创建VB脚本下载器(如c:\401.vbs)
  2. 脚本使用XMLHTTP和ADODB.Stream对象下载恶意可执行文件
  3. 使用WshShell对象执行下载的VB脚本

2.2 使用Ad Hoc分布式查询和Microsoft Jet OLE DB Provider

技术原理
利用Ad Hoc分布式查询功能和Microsoft Jet的OLE DB Provider创建并执行FTP脚本。

关键函数

  • OPENROWSET:从OLE DB数据源导入数据
  • OPENDATASOURCE:提供ad hoc连接信息

典型攻击流程

  1. 创建FTP脚本文件
  2. 使用FTP脚本从远程服务器下载恶意可执行文件
  3. 执行下载的文件

2.3 使用SQL代理作业

技术原理
利用SQL Server代理作业创建恶意自动任务,实现持久性攻击。

攻击流程

  1. 创建SQL代理作业
  2. 在作业中调用cmd.exe
  3. 创建FTP脚本下载恶意可执行文件
  4. 执行下载的文件

2.4 使用xp_cmdshell扩展存储过程

技术原理
xp_cmdshell允许从SQL Server实例的上下文中执行主机Windows系统命令。

典型攻击流程

  1. 启用xp_cmdshell(如果未启用)
  2. 使用xp_cmdshell执行cmd.exe
  3. 创建FTP脚本下载恶意可执行文件
  4. 执行下载的文件

防御建议

  1. 禁用不必要的功能

    • 禁用OLE自动化存储过程
    • 禁用Ad Hoc分布式查询
    • 禁用xp_cmdshell或限制其使用
  2. 权限控制

    • 遵循最小权限原则
    • 限制SQL Server服务账户权限
  3. 监控与审计

    • 监控可疑的SQL命令执行
    • 审计数据库服务器上的文件创建和修改
  4. 网络防护

    • 限制数据库服务器的出站连接
    • 使用防火墙规则限制不必要的网络访问
  5. 定期更新

    • 及时应用SQL Server的安全补丁
    • 保持操作系统和所有组件的最新状态

总结

本文详细介绍了攻击者利用Microsoft SQL Server执行SQL和OS命令来投递和执行恶意payload的各种技术。了解这些攻击技术对于构建有效的防御策略至关重要。数据库管理员和安全团队应特别关注这些攻击向量,并采取适当的防护措施来保护数据库服务器。

深入探索数据库攻击技术:Microsoft SQL Server恶意Payload投递与执行 数据库服务器攻击概述 数据库服务器通常是攻击者的首要目标,攻击过程主要分为三个阶段: 扫描阶段 :扫描子网并识别运行数据库服务的计算机 攻击阶段 :通过暴力破解等方式获取数据库访问权限 Payload投递阶段 :向目标系统传送并执行恶意payload 常见的恶意payload包括: 加密货币挖矿软件 DDoS僵尸程序 远程访问木马(RAT) 恶意Payload投递技术 1. 直接在目标系统上创建可执行文件 技术原理 : 利用SQL Server的OLE自动化存储过程(sp_ OA)和ADODB.Stream对象在磁盘上创建和存储可执行文件。 关键步骤 : 使用 sp_OACreate 创建ADODB.Stream对象实例 使用 sp_OAMethod 调用Stream对象的方法: Open :打开流 Write :写入二进制内容(HEX编码的可执行文件) SaveToFile :将内容保存到本地文件 Close :关闭流 ADODB.Stream对象类标识符 : 00000566-0000-0010-8000-00AA006D2EA4 2. 从远程服务器下载可执行文件 2.1 使用COM对象和OLE存储过程 涉及的COM对象 : FileSystemObject ADODB.Stream WshShell XMLHTTP 典型攻击流程 : 创建VB脚本下载器(如c:\401.vbs) 脚本使用XMLHTTP和ADODB.Stream对象下载恶意可执行文件 使用WshShell对象执行下载的VB脚本 2.2 使用Ad Hoc分布式查询和Microsoft Jet OLE DB Provider 技术原理 : 利用Ad Hoc分布式查询功能和Microsoft Jet的OLE DB Provider创建并执行FTP脚本。 关键函数 : OPENROWSET :从OLE DB数据源导入数据 OPENDATASOURCE :提供ad hoc连接信息 典型攻击流程 : 创建FTP脚本文件 使用FTP脚本从远程服务器下载恶意可执行文件 执行下载的文件 2.3 使用SQL代理作业 技术原理 : 利用SQL Server代理作业创建恶意自动任务,实现持久性攻击。 攻击流程 : 创建SQL代理作业 在作业中调用cmd.exe 创建FTP脚本下载恶意可执行文件 执行下载的文件 2.4 使用xp_ cmdshell扩展存储过程 技术原理 : xp_ cmdshell允许从SQL Server实例的上下文中执行主机Windows系统命令。 典型攻击流程 : 启用xp_ cmdshell(如果未启用) 使用xp_ cmdshell执行cmd.exe 创建FTP脚本下载恶意可执行文件 执行下载的文件 防御建议 禁用不必要的功能 : 禁用OLE自动化存储过程 禁用Ad Hoc分布式查询 禁用xp_ cmdshell或限制其使用 权限控制 : 遵循最小权限原则 限制SQL Server服务账户权限 监控与审计 : 监控可疑的SQL命令执行 审计数据库服务器上的文件创建和修改 网络防护 : 限制数据库服务器的出站连接 使用防火墙规则限制不必要的网络访问 定期更新 : 及时应用SQL Server的安全补丁 保持操作系统和所有组件的最新状态 总结 本文详细介绍了攻击者利用Microsoft SQL Server执行SQL和OS命令来投递和执行恶意payload的各种技术。了解这些攻击技术对于构建有效的防御策略至关重要。数据库管理员和安全团队应特别关注这些攻击向量,并采取适当的防护措施来保护数据库服务器。