Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

一次被防火墙拦截的挖矿病毒应急处置经历

$
0
0

*本文作者:littt0,本文属 CodeSec 原创奖励计划,未经许可禁止转载。

前言

在应急响应的过程中,客户反馈深信服防火墙AF 报告客户服务器僵尸网络警告,服务器试图解析恶意域名msupdate.info。于是客户使用360,火绒剑等杀毒软件均没有发现异常现象。于是求助我,遂有此文章。

病毒virustotal.com的报告,可以看到很多国内厂商依然无法检出:

SHA256: c765ba5eedcd87b6f98eb503df640f5a8b077d3a30f02c6019feec1b5a553981

文件名: cspsvc.exe

https://www.virustotal.com/zh-cn/file/c765ba5eedcd87b6f98eb503df640f5a8b077d3a30f02c6019feec1b5a553981/analysis/


一次被防火墙拦截的挖矿病毒应急处置经历
0×00 day1

接到应急,远程登录一把梭,netstat -ano 查看异常外连,由于病毒发起的外连已经被深信服防火墙AF所拦截,重点关注SYN_SENT和TIME_OUT,经过排查。并未发现异常外连,于是通过process hacker 查看异常进程。然而也没有发现异常进程,也没有挖矿进程占用大量的cpu资源。于是排查一度陷入江局。

这时候束手无策的我只能上微软闭环工具sysmon 对系统进行监控。观察病毒的一举一动。

sysmon需要安装使用:

sysmon.exe-accepteula i -n
一次被防火墙拦截的挖矿病毒应急处置经历
0×01 day2 收获日

昨天种下一颗种子,今天就是收获日啦。

深信服防火墙AF依然在报僵尸网络,不过已经拒绝了:


一次被防火墙拦截的挖矿病毒应急处置经历

查看sysmon日志,根据深信服下一代防火墙AF报僵尸网络的时间果然找到可疑的点。


一次被防火墙拦截的挖矿病毒应急处置经历

可以看到服务拉起了一个可疑文件。

接着排查发现它拉起一个可疑powershell脚本,以服务的方式启动。


一次被防火墙拦截的挖矿病毒应急处置经历

接着这个ps脚本执行。

这个脚本还利用注册表生成了一个用户名为adm:


一次被防火墙拦截的挖矿病毒应急处置经历

至此,我们已经找出了挖矿程序。查看ps脚本就可以看到他的钱包地址:


一次被防火墙拦截的挖矿病毒应急处置经历
0×02 分析

首先看cspsvc.exe文件:


一次被防火墙拦截的挖矿病毒应急处置经历

cspsvc.exe 是启动程序用于加载ps脚本程序。

ps脚本是一个内容丰富的木马也是主要的程序:


一次被防火墙拦截的挖矿病毒应急处置经历

可以看到脚本提供了丰富的命令行参数,我们之前看到的就是SCMStart。

接下来使用:

$argv0 = Get-Item $MyInvocation.MyCommand.Definition

获取了命令行参数执行相关操作:


一次被防火墙拦截的挖矿病毒应急处置经历

程序获取了登录名,默认启动setup:


一次被防火墙拦截的挖矿病毒应急处置经历

setup里面包含了编译了一个c#文件的功能:


一次被防火墙拦截的挖矿病毒应急处置经历
一次被防火墙拦截的挖矿病毒应急处置经历

$exeName = "$serviceName.exe" $exeFullName = "$installDir\$exeName"

可知编译的文件就是我们发现的cspsvc.exe

接着就从C:\windows \fonts\arial\config.xml或者C:\Windows\SoftwareDistribution\config.xml 读取配置文件,不存在就新建了一个fonts\arial\ 目录:


一次被防火墙拦截的挖矿病毒应急处置经历

写入配置后并拷贝一份:


一次被防火墙拦截的挖矿病毒应急处置经历

继续往下看发现了主要执行的Service:


一次被防火墙拦截的挖矿病毒应急处置经历

发现执行了一处加密内容。

加密内容为一个新的powershell脚本。可以看到它新建了一个adm的用户。密码是从之前的配置文件中读取的密码:


一次被防火墙拦截的挖矿病毒应急处置经历
一次被防火墙拦截的挖矿病毒应急处置经历

从域名msupdate.info通过 网络下载矿机:


一次被防火墙拦截的挖矿病毒应急处置经历

接着释放又释放了一个加密的ps脚本:


一次被防火墙拦截的挖矿病毒应急处置经历

结合通过autoruns发现计划任务GpCheck.ps1计划任务,和下面的写操作可以发现该脚本写入位于system32\drivers\en-US\GpCheck.ps1 的该文件:


一次被防火墙拦截的挖矿病毒应急处置经历
0×03 清理病毒 停止服务Cryptographic Service Providers 删除计划任务 GpCheck 删除C:\Windows\System32\drivers 目录下cspsvc.exe、 cspsvc.ps1、cspsvc.pdb 文件 删除 注册表项cspsvc
一次被防火墙拦截的挖矿病毒应急处置经历
删除C:\Windows\SoftwareDistribution\config.xml 删除 adm用户 删除C:\Windows\Fonts\arial 删除 C:\Windows\Fonts\Logs 删除 C:\Windows\Fonts\temp 删除 C:Windows\system32\drivers\en-US\GpCheck.ps1 删除 C:Windows\system32\drivers\ WmiPrvSE.ps1 0×04 后记

此次由于防火墙的存在成功阻挡了恶意程序下载挖矿程序进行挖矿。并及时警报客户,使得客户业务没有受到影响。

对于此木马的分析只是浅显的分析了下,主要是想分享一下这种没有执行成功的挖矿病毒如何排查的经验。希望能够抛砖引玉。

*本文作者:littt0,本文属 CodeSec 原创奖励计划,未经许可禁止转载。


Viewing all articles
Browse latest Browse all 12749

Trending Articles