【实战】记一次挖矿应急响应
字数 1407 2025-08-06 18:08:11

MSSQL作业任务挖矿应急响应实战分析

1. 事件背景

这是一次针对MSSQL服务器被植入挖矿木马的应急响应案例,攻击者通过MSSQL的作业任务功能实现持久化控制并部署挖矿程序。

2. 攻击特征分析

2.1 初始入侵途径

  • 攻击者通过弱口令爆破获得MSSQL服务器权限
  • 利用xp_cmdshell执行系统命令
  • 创建MSSQL作业任务实现持久化

2.2 恶意作业任务特征

攻击者创建了名为"SqlServer"的作业任务,包含以下关键组件:

  1. 作业步骤

    • 类型:操作系统(CmdExec)
    • 命令:cmd /c "powershell -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String('压缩的base64 payload'))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))"
  2. 作业计划

    • 设置为每分钟执行一次
    • 启用标志设置为True

3. 应急响应步骤

3.1 初步排查

  1. 检查MSSQL作业列表:

    USE msdb
    SELECT * FROM sysjobs
    SELECT * FROM sysjobsteps
    SELECT * FROM sysjobschedules
    
  2. 重点关注:

    • 名称可疑的作业(如"SqlServer")
    • 包含powershell命令的作业步骤
    • 执行频率异常的作业计划

3.2 恶意作业分析

  1. 解码base64 payload:

    • 提取命令中的base64字符串
    • 使用工具解码分析实际执行的powershell脚本
  2. 典型payload特征:

    • 下载执行挖矿程序(XMRig常见)
    • 添加持久化机制(注册表、计划任务等)
    • 关闭安全软件

3.3 清除恶意作业

  1. 删除恶意作业:

    USE msdb
    EXEC sp_delete_job @job_name = 'SqlServer'
    
  2. 检查相关扩展存储过程:

    SELECT * FROM sys.configurations WHERE name = 'xp_cmdshell'
    
  3. 禁用xp_cmdshell(如非必要):

    EXEC sp_configure 'show advanced options', 1
    RECONFIGURE
    EXEC sp_configure 'xp_cmdshell', 0
    RECONFIGURE
    

3.4 系统排查

  1. 检查进程:

    • 查找异常进程(如conhost.exe、powershell.exe等)
    • 检查CPU使用率异常的进程
  2. 检查网络连接:

    • 异常外连(特别是矿池地址)
    • 使用netstat -ano检查可疑连接
  3. 检查文件系统:

    • %TEMP%目录下的可疑文件
    • 近期创建的exe、dll、vbs等文件

4. 防御建议

4.1 MSSQL安全加固

  1. 密码策略:

    • 禁用弱口令
    • 启用密码复杂度策略
    • 定期更换密码
  2. 权限控制:

    • 最小权限原则
    • 限制sysadmin角色使用
    • 禁用不必要的存储过程(xp_cmdshell等)
  3. 日志审计:

    • 启用SQL Server审计
    • 监控作业任务变更
    • 记录xp_cmdshell使用情况

4.2 系统层防护

  1. 应用白名单:

    • 限制powershell执行
    • 控制cmd.exe使用
  2. 网络控制:

    • 限制服务器外连
    • 拦截已知矿池地址
  3. 安全监控:

    • 部署EDR/XDR解决方案
    • 设置CPU使用率告警
    • 监控计划任务变更

5. 总结

本次事件中攻击者利用MSSQL弱口令入侵,通过作业任务实现持久化挖矿。应急响应需重点关注:

  1. MSSQL作业任务配置
  2. xp_cmdshell使用情况
  3. 系统异常进程和网络连接
  4. 持久化机制排查

预防此类攻击需加强MSSQL安全配置,实施严格的访问控制和全面的安全监控。

MSSQL作业任务挖矿应急响应实战分析 1. 事件背景 这是一次针对MSSQL服务器被植入挖矿木马的应急响应案例,攻击者通过MSSQL的作业任务功能实现持久化控制并部署挖矿程序。 2. 攻击特征分析 2.1 初始入侵途径 攻击者通过弱口令爆破获得MSSQL服务器权限 利用xp_ cmdshell执行系统命令 创建MSSQL作业任务实现持久化 2.2 恶意作业任务特征 攻击者创建了名为"SqlServer"的作业任务,包含以下关键组件: 作业步骤 : 类型:操作系统(CmdExec) 命令: cmd /c "powershell -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String('压缩的base64 payload'))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))" 作业计划 : 设置为每分钟执行一次 启用标志设置为True 3. 应急响应步骤 3.1 初步排查 检查MSSQL作业列表: 重点关注: 名称可疑的作业(如"SqlServer") 包含powershell命令的作业步骤 执行频率异常的作业计划 3.2 恶意作业分析 解码base64 payload: 提取命令中的base64字符串 使用工具解码分析实际执行的powershell脚本 典型payload特征: 下载执行挖矿程序(XMRig常见) 添加持久化机制(注册表、计划任务等) 关闭安全软件 3.3 清除恶意作业 删除恶意作业: 检查相关扩展存储过程: 禁用xp_ cmdshell(如非必要): 3.4 系统排查 检查进程: 查找异常进程(如conhost.exe、powershell.exe等) 检查CPU使用率异常的进程 检查网络连接: 异常外连(特别是矿池地址) 使用netstat -ano检查可疑连接 检查文件系统: %TEMP%目录下的可疑文件 近期创建的exe、dll、vbs等文件 4. 防御建议 4.1 MSSQL安全加固 密码策略: 禁用弱口令 启用密码复杂度策略 定期更换密码 权限控制: 最小权限原则 限制sysadmin角色使用 禁用不必要的存储过程(xp_ cmdshell等) 日志审计: 启用SQL Server审计 监控作业任务变更 记录xp_ cmdshell使用情况 4.2 系统层防护 应用白名单: 限制powershell执行 控制cmd.exe使用 网络控制: 限制服务器外连 拦截已知矿池地址 安全监控: 部署EDR/XDR解决方案 设置CPU使用率告警 监控计划任务变更 5. 总结 本次事件中攻击者利用MSSQL弱口令入侵,通过作业任务实现持久化挖矿。应急响应需重点关注: MSSQL作业任务配置 xp_ cmdshell使用情况 系统异常进程和网络连接 持久化机制排查 预防此类攻击需加强MSSQL安全配置,实施严格的访问控制和全面的安全监控。