【实战】记一次挖矿应急响应
字数 1407 2025-08-06 18:08:11
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作业列表:
USE msdb SELECT * FROM sysjobs SELECT * FROM sysjobsteps SELECT * FROM sysjobschedules -
重点关注:
- 名称可疑的作业(如"SqlServer")
- 包含powershell命令的作业步骤
- 执行频率异常的作业计划
3.2 恶意作业分析
-
解码base64 payload:
- 提取命令中的base64字符串
- 使用工具解码分析实际执行的powershell脚本
-
典型payload特征:
- 下载执行挖矿程序(XMRig常见)
- 添加持久化机制(注册表、计划任务等)
- 关闭安全软件
3.3 清除恶意作业
-
删除恶意作业:
USE msdb EXEC sp_delete_job @job_name = 'SqlServer' -
检查相关扩展存储过程:
SELECT * FROM sys.configurations WHERE name = 'xp_cmdshell' -
禁用xp_cmdshell(如非必要):
EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure 'xp_cmdshell', 0 RECONFIGURE
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安全配置,实施严格的访问控制和全面的安全监控。