手把手教你做挖矿应急响应

  • A+
所属分类:安全文章

这是 酒仙桥六号部队 的第 136 篇文章。

全文共计4995个字,预计阅读时长15分钟

前言

攻防之道,攻是矛,防是盾。应急响应就是防守中最重要的一环,思路清晰的应急响应可以使你事半功倍,抓住攻击者的小尾巴!

本文主要面向无应急基础人员入门引导,大佬轻喷!!!

文中会引用几次我经历过的真实挖矿事件案例,如有侵权请及时联系我们。


开篇

CPU占用高?电脑卡的要命?又被挖矿了?我人傻了!

手把手教你做挖矿应急响应

来跟我一起看看被挖矿了如果处置吧。

不想看文字的大佬请看下图:挖矿木马处置流程一览图

手把手教你做挖矿应急响应

接下来废话不多说,详细的流程在下给各位看官准备好了,请看!


一、询问攻击情况范围

事件发生时的状况或安全设备告警等,能帮助应急处置人员快速分析确定事件类型,方便前期准备。

1、了解现状

询问客户或销售事件发生时状况,举个栗子~

客户发现安全设备告警存在挖矿网站访问情况,像这个样子.

手把手教你做挖矿应急响应

初步判断是有机器被植入挖矿病毒了,此处可以根据外部连接地址收集相关情报,如果有相关分析文章会轻松许多。

2、了解事件发生时间节点

出现问题时间、发现问题时间、处置问题时间,确定这三个时间节点后,可通过时间相关性推算挖矿病毒产生大致时间,有助于后续挖矿病毒发现及清理。

手把手教你做挖矿应急响应

3、临时抑制挖矿

到达客户现场前:

不影响主业务运行的情况下,对受害机器:拔网线啊!拔网线啊!拔网线啊!

绝大部分实际情况与预期并不一致,在没到达客户现场前,及时切断网络连接是最简单有效的抑制手段。

并且,切断网络连接可使挖矿现场尽量保持完整,有助于接下来的溯源工作顺利开展。

手把手教你做挖矿应急响应

当然,对于情况较清晰的挖矿场景,已知挖矿外连地址及域名等信息,可采用防火墙建立策略封禁双向通信的方式抑制挖矿运行。

4、获取网络构架

网络构架一般来讲是要拓补图,虽然一般没有(有拓扑的也不想给),但一定要委婉的要拓补图!要拓补图!要拓补图!

详细的拓扑图可以协助还原攻击流程时,准确定位网络连接方向。

手把手教你做挖矿应急响应


二、攻击痕迹挖掘

挖矿攻击者为了达到不被发现的目的,各种手段层出不穷,溯源的过程就是和挖矿攻击者博弈的战争。

可以大致从以下几个方面入手:可疑进程、开放的端口、计划任务、服务项、可疑的用户、内存空间还有最明显的特征:CPU占用高

1、CPU占用

CPU占用高是挖矿时常见的状态,因为挖矿需要占用大量CPU调用挖矿进程,虽然近些年挖矿有偏向于GPU的趋势,但挖矿木马中还是主要以CPU挖矿为主,毕竟不是专门做渲染的服务器GPU一般很低。

Windows中查看CPU可以直接通过任务管理器中查看利用率。

手把手教你做挖矿应急响应

Linux可使用top命令获取实时CPU占比情况:

手把手教你做挖矿应急响应

关于查看CPU这里提一个之前遇到过的有意思的挖矿守护机制:

某次挖矿应急中,习惯性打开任务管理器查看CPU占用情况,发现占用本身很高,但一会就降下来了。开始还以为是任务管理器开启导致的,之后分析病毒样本的时候才发现是一种守护方式。

判断开启任务管理器等调试工具时,会把挖矿进程杀死,然后等待180秒后强制关闭调试工具再进行挖矿。所以通过dos命令查看Windows系统CPU占用率:

Windows可使用wmic方式获取CPU占用:wmic cpu get LoadPercentage /value

手把手教你做挖矿应急响应

Windows命令方式查看CPU占用

2、可疑进程

Windows中有多种进程分析工具,可辅助快速定位异常进程。这里简单举例几种分析进程工具:Autoruns、PCHunter、ProcessDump、processhacker、ProcessExplorer、火绒剑等等,各有优劣,此处不再赘述,各位师傅自行体会。

大概样子长这样:

手把手教你做挖矿应急响应

使用进程分析工具查看可疑进程

若无法上传工具时,可以通过CPU占比高的进程PID进行相关检索。

Linux中的可以通过top命令获取到高占用进程PID及文件路径,也可使用:

ps -aux --sort=-%cpu|head -10--显示cpu占比前10的进程

其他CPU占比不高的进程可以通过:

ps -auxf--用树形结构显示进程相关性

通过外连情况排查进程:

lsof -i--查看所有网络连接进程

通过PID查看文件位置

ls -la /proc/[进程PID]/exe--替换“进程PID”查看进程可执行程序位置

lsof -c [进程名]--进程正在使用的文件和网络连接

通过以上命令,若发现CPU高占用或者非正常外连进程,则可能为恶意进程。

3、开放的端口

Windows和Linux均可使用netstat -ano查看一下端口情况,是否开启高危端口,存在可能被利用风险。有时攻击者使用端口转发将流量转发出内网,可以在此处看到有可疑的对外监听端口。

手把手教你做挖矿应急响应

查看端口占用情况

4、计划任务及启动项

挖矿病毒为了使挖矿进程一直运行,会做出各种各样的守护方式,计划任务就是最普遍的守护方式之一。

Windows7使用at命令;Windows10使用schtasks命令查看计划任务列表。

开始--所有程序--启动目录中存在的文件也不能放过。

Linux系统使用crontab -l命令查看计划任务,但还是建议直接查看/etc/crontab文件,也可在/var/log/cron下查看计划任务的日志。

手把手教你做挖矿应急响应

某次Linux挖矿事件计划任务日志


其他可能存在定时任务需要排查的路径
/var/spool/cron/*
/var/spool/anacron/*
/etc/crontab
/etc/anacrontab
/etc/cron.*
/etc/anacrontab
/etc/rc.d/init.d/

5、服务项

同上,服务也是挖矿病毒常见的守护方式之一,将注册表中服务启动方式写为挖矿病毒主程序,从而达到守护进程目的。

Windows系统中使用:开始--运行--输入services.msc

Linux系统中使用:systemctl list-unit-files --type service |grep enabled

手把手教你做挖矿应急响应

某次Windows挖矿事件利用服务守护挖矿进程方式

6、可疑的用户

攻击者有时会创建自己的账户,用来隐藏自己的恶意行为。

Windows中创建用户后,利用账户进行一系列隐藏操作,创建影子账户可使管理员无法发现,可通过D盾查看系统中是否存在影子账户。

手把手教你做挖矿应急响应

隐藏账户示例

Linux中可通过以下几种命令对用户信息进行检查:

命令 命令详解
who 查看当前登录用户(tty本地登陆  pts远程登录)
w 查看系统信息,想知道某一时刻用户的行为
last 显示近期用户或终端的登录情况
uptime 查看登陆多久、多少用户,负载
cat /etc/passwd 查看用户信息文件
cat /etc/shadow 查看影子文件
awk -F: '$3==0{print $1}' /etc/passwd 查看管理员特权用户
awk '/$1|$6/{print $1}' /etc/shadow 查看可以远程登录的用户
more /etc/sudoers |grep -v "^#|^$" |grep "ALL=(ALL)" 查看sudo权限的用户(有时攻击者会创建属于自己的用户)
awk -F:'length($2)==0 {print $1}' /etc/passwd 查看空口令账户(有时攻击者会将正常账户改为空口令)
7、WMIC空间

WMIC是Windows中用来管理WMI系统的工具,提供了从命令行接口和批命令脚本执行系统管理的支持。攻击者经常使用WMIC调用系统进程,从而实现恶意软件的运行。

使用进程分析类工具也可以分析WMIC空间,查看是否存在恶意软件,此处不再赘述。

手把手教你做挖矿应急响应


三、样本分析

利用上部分发现的攻击痕迹中的病毒样本,可进行初步的样本分析,上传样本分析平台进行初步分析。

在线云沙箱

360沙箱云:https://ata.360.cn/detection

微步云沙箱:https://s.threatbook.cn/

VirusTotal平台:https://www.virustotal.com/gui/home/upload

魔盾安全分析平台:https://www.maldun.com/submit/submit_file/

Any.Run交互式恶意软件分析平台:https://app.any.run/

大概这个样子:

手把手教你做挖矿应急响应

深层次的恶意文件分析涉及较多,本文不做解析,快速的应急响应中,根据沙箱中行为判定,可以及时的确认样本行为,比方这样的。

手把手教你做挖矿应急响应


四、后门及木马文件排查根除

手把手教你做挖矿应急响应

挖矿病毒存在各种各样的守护方式,清除挖矿主程序的同时,也需要对守护进程进行清理,一个不小心没清干净从头再来,所以后门的清除尤为重要。

以下为我遇到过的部分挖矿病毒常见守护进程方式:

挖矿家族名称 简介 常见守护方式
GuardMiner自动化挖矿 2020年6月起非常活跃 1.计划任务:Windows上每隔30分钟执行一次new***.ps1Linux上每隔30分钟执行一次new***.sh2.ssh连接:写入ssh公钥 3.守护进程:/etc/***guard和/etc/***guard
贪吃蛇挖矿 2019年4月首次发现 1.创建服务:clr_optimization、WinHelpSvcs 2.多个白加黑文件:C:WINDOWSMpMgSvc.dll C:WINDOWSMicrosoft.NETFrameworkETComm.dll C:WINDOWSHelpactive_desktop_render.dll
8220Miner 2018年8月首次曝光,为8220挖矿团伙使用 1.计划任务:写入crontab计划任务 2.ssh连接:写入公钥 3.添加启动项:将恶意代码添加至/etc/init.d/down
MyKings 2017年4月底开始活跃,大量扫描1433等端口 1.添加后门账户:Mssqla 和 usera 2.创建服务:xWinWpdSrv、schedule
WannaMiner WannaCry勒索病毒变种,2018年3月起开始大范围传播现已变种至4.0版本 1.创建服务:srv主服务、wmassrv2.设置开机启动项:/etc/rc.local 3.设置定时任务:/etc/cron.hourly/>>/etc/crontab
驱动人生 2018年12月爆发,更新20+版本 1.自启动:注册自启动、开始菜单自启动、计划任务自启动名称为:Ddriver,Ddrivers,WebServers 2.创建服务:创建多个自启动服务器

根据以上表格不难看出,守护方式大致有计划任务、服务、开机启动项、SSH秘钥、用户等几种方式。

确认挖矿木马程序或文件并备份后,可以从以下几点着手清理及加固:

1、双向封禁矿池地址

防止挖矿木马继续外连,并且防止挖矿木马进行内网传播。

2、删除计划任务、自启动项

Windows中可使用SchTasks /Delete /TN [任务名]删除计划任务。

自启动项可以从以下三点入手:

①开始--所有程序--启动②系统配置中启动项(开始-运行中输入msconfig命令)③注册表查找病毒程序名,将此三处发现的恶意启动项删除即可。

Linux中可使用crontab -r删除计划任务

删除/etc/rc.local/etc/rc[0到6].d文件中恶意启动项

3、删除服务

Windows中删除服务可从任务管理器中手动删除,也可使用命令:sc stop [服务名称]停止服务后,使用命令:sc delete [服务名称]删除服务。

Linux中服务清除:sudo update-rc.d [服务名称] remove

4、结束恶意进程

Windows中可使用进程管理工具或使用taskkill -PID [进程PID] -F结束恶意进程。

Linux中则使用kill -9 [进程PID]

5、删除挖矿木马

Windows中删除时可能存在权限不足等情况,可使用360终端强杀,也可使用进程管理工具强制删除。

Linux中可使用rm -rf [恶意文件绝对路径] 删除文件,如遇文件无权进行操作时,可使用lsattr [恶意文件绝对路径]命令查看权限,使用chattr -i [恶意文件绝对路径]解除文件锁定后删除。

6、病毒清除纲要

以上为清理病毒程序方式,后续还需使用终端杀毒对系统进行全面杀毒及加固,并观察是否还有反复迹象。

一切以挖矿木马不再重启,不存在可疑外连为止哦。

上篇就此结束,撒花。。。下篇主要讲述溯源攻击等知识,敬请期待!

你们说,每个挖矿病毒都会删除竞品挖矿程序,整合几个挖矿家族的清理脚本,是不是可以做到一键清理挖矿病毒的成效?


点击下方,可进入招聘专栏哦~

手把手教你做挖矿应急响应

手把手教你做挖矿应急响应

手把手教你做挖矿应急响应


本文始发于微信公众号(酒仙桥六号部队):手把手教你做挖矿应急响应

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: