通常来说,当我们的服务器或PC资源(CPU)使用率接近或超过100%,并持续高居不下导致服务器或PC操作延缓,我们就可以判定被挖矿。
常见挖矿其它特征如下:
服务器或PC访问过不受信任的地址,这些地址包括:主机、IP、域名。这是由于大部分挖矿都需要从一个不受信任的地址下载初始化程序,而不受信任的来源主要是:第三方情报结构,企业内部历史数据沉淀。
服务器或PC新增异常或恶意文件、进程或服务,并且大部分异常文件保存在服务器或PC的TMP目录中。
服务器或PC的定时任务发生变更。
0x01 了解基本情况
1.1 如何发现
挖矿木马显著的行为特征就是极大的占用CPU及GPU和硬盘资源主要包括:高CPU和GPU、硬盘使用率、响应速度慢、崩溃或频繁重新启动、系统过热、异常网络活动(例如,连接挖矿相关的网站或IP地址)。其次是在网络流量中,挖矿木马通信过程采用专门的通信协议,因此存在一定的网络通信特征,因为要连接矿池,网络特征较多的都是TCP。
1.1.1 异常外联
安全设备告警
流量监控设备
工作人员人工发现
…
事件发生时的状况或安全设备告警等,能帮助应急处置人员快速分析确定事件类型,方便前期准备。
1.1.2 主机异常
CPU、GPU占用过高
主机温度异常
其他异常
可获取CPU占用过高进程信息
1.2 事件的时间节点
出现事件时间
发现事件时间
处置事件时间
了解事件发生时间节点:出现事件时间、发现事件时间、处置事件时间,确定这三个时间节点后,可通过时间相关性推算挖矿病毒产生大致时间,有助于后续挖矿病毒发现及清理。
1.3 临时处置情况
了解挖矿病毒临时处置的情况,方便后期的排查
1.4 网络拓扑情况
获取网络构架,网络构架一般来讲是要拓补图,详细的拓扑图可以协助还原攻击流程时,准确定位网络连接方向。
0x02 判断是否属于挖矿
根据了解到的基本信息来判断和确认是否挖矿事件
2.1 属于挖矿
2.1.1 根据告警和流量信息初步判断挖矿类型
在不影响主业务运行的情况下,拔掉受害主机网线,并且切断网络连接可使挖矿现场尽量保持完整,有助于接下来的溯源工作顺利开展。
可以先根据告警和流量信息初步判断挖矿类型,在互联网收集相关情报,若有相关分析文章可提高事件处置效率。
2.1.2 windows
2.1.2.1 信息收集
CPU占用
打开 cmd 窗口,输入
resmon
命令,通过资源监视器,找出CPU占用过高的程序,找到PID和进程名。
网络连接
1、使用
netstat -ano
命令查看目前的网络连接,定位可疑的 ESTABLISHED2、根据 netstat 命令定位出的 PID 编号,再通过 tasklist 命令进行进程定位
tasklist | findstr "PID"
netstat -ano
tasklist | findstr "PID"
端口
查看Windows服务所对应的端口:%systemroot%/system32/drivers/etc/services
可疑用户
【计算机管理】->【本地用户和组】->【用户】选项,可查看隐藏账户,名称以$结尾的为隐藏账户。
打开 cmd 窗口,输入
lusrmgr.msc
命令,查看是否有新增或可疑的账号。
也可通过D盾查看系统中是否存在影子账户。
计划任务
a、打开控制面板->任务计划,查看计划任务属性,排查异常任务计划。
b、打开 cmd 窗口,然后输入
at
,检查计算机与网络上的其它计算机之间的会话或计划任务,如有,则确认是否为正常连接。
进程信息
a、Win+R,输入
msinfo32
命令,依次点击 “软件环境 — 正在运行任务” 可以查看到进程的详细信息。b、通过安全分析工具进行排查。
启动项
a、开始->所有程序->启动,默认情况下此目录在是一个空目录,确认是否有非业务程序在该目录下。 b、Win+R,输入
msconfig
,查看是否存在命名异常的启动项目,是则取消勾选命名异常的启动项目,并到命令中显示的路径删除文件。 c、Win+R,输入regedit
,打开注册表,查看开机启动项是否正常,检查是否有启动异常的项目。HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonced、利用安全软件查看启动项、开机时间管理。
服务
服务也是挖矿病毒常见的守护方式之一,将注册表中服务启动方式写为挖矿病毒主程序,从而达到守护进程目的。
Win+R,输入
services.msc
,注意服务状态和启动类型,检查是否有异常服务。
TIPS:除以上方法外还可使用火绒剑、Process Explorer等安全工具进行分析和信息收集。
2.1.2.2 定位
通过 定位到PID和进程后,再定位挖矿程序文件和目录。
查看进程对应的程序位置
方法1:打开任务管理器,选择对应进程,右键打开文件位置
方法2:Win+R,输入
msinfo32
命令,软件环境->正在运行任务,即可定位到程序的目录信息。
方法3:通过安全分析工具进行定位。
火绒剑->进程->右键进程信息 可直接定位到程序位置,且可查看其命令行参数。
火绒剑->网络 可直接定位到程序位置
TIPS:对于打开文件位置还找不到挖矿文件的情况,则挖矿程序可能被隐藏,可通过配置文件夹选项或通过安全分析工具提取来解决
文件夹选项->查看->高级设置:取消隐藏受保护的操作系统文件、显示隐藏的文件、文件夹和驱动器。
2.1.2.3 样本提取
一般在挖矿程序文件目录中可找到对应的配置文件和信息,通过矿池地址和钱包地址能够进一步确认挖矿类型和挖矿程序的基本情况。
若无相应配置文件,可通过云沙箱或专家对其进行深层次的分析。
2.1.2.4 查杀根除
双向封禁矿池地址
防止挖矿木马继续外连,并且防止挖矿木马进行内网传播。
删除启动项
删除计划任务
Windows:使用SchTasks /Delete /TN [任务名] 删除计划任务。 自启动项可以从以下三点入手: a、开始->所有程序->【启动 b、系统配置中启动项(win+R->msconfig) c、注册表查找病毒程序名。
删除服务
Windows中删除服务可从任务管理器中手动删除
也可使用命令:sc stop [服务名称]
停止服务后,使用命令:sc delete [服务名称] 删除服务。
杀死进程
可使用进程管理工具或使用taskkill -PID [进程PID] -F结束恶意进程。
删除文件
Windows中删除时可能存在权限不足等情况,可使用360终端强杀,也可使用进程管理工具强制删除。
…
2.1.3 linux
2.1.3.1 信息收集
CPU占用
进程信息
top -c
-c 查看其完整的命令行参数
top默认的排序列是“%CPU”
ps -eo pid,ppid,%mem,%cpu,cmd –sort=-%cpu
按照CPU占用显示进程信息
Tips:查看隐藏进程:
ps -ef |awk ‘{print}’ | sort -n|uniq >111
ls /proc|sort -n |uniq >222
diff 111 222
内存信息
top -c -o %MEM
ps -eo pid,ppid,%mem,%cpu,cmd –sort=-%mem
按照内存占用显示进程信息
网络连接
端口
netstat -pantl
-p 显示正在使用Socket的程序识别码和程序名称
-a 显示所有连线中的Socket
-n 直接使用IP地址,而不通过域名服务器
-t 显示TCP传输协议的连线状况
-l 显示监控中的服务器的Socket
计划任务
a、 crontab
crontab -l 列出某个用户cron服务的详细内容
crontab -e 使用编辑器编辑当前的crontab文件
b、anacron
cat /etc/anacrontab cat /var/spool/anacron/*
重点关注以下目录中是否存在恶意脚本
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
服务
服务也是挖矿病毒常见的守护方式之一,将注册表中服务启动方式写为挖矿病毒主程序,从而达到守护进程目的。
查询已安装的服务
a、RPM 包安装的服务
chkconfig –list 查看服务自启动状态,可以看到所有的RPM包安装的服务 ps aux | grep crond 查看当前服务
b、源码包安装的服务
检查/etc/rc.d/rc.local
可疑用户
命令 命令详解 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 查看空口令账户(有时攻击者会将正常账户改为空口令)
2.1.3.2 定位
通过 定位到PID和进程后,再定位挖矿程序文件和目录。
方法1:通过top -c命令,可以看到可疑进程的完整目录信息和参数,从而定位到挖矿文件及目录
方法2:通过以下命令,定位到挖矿文件位置
lsof -p
pid
systemctl status
pid
ls -al /proc/
pid
/exe
2.1.3.4 样本提取
一般在挖矿程序文件目录中可找到对应的配置文件和信息,通过矿池地址和钱包地址能够进一步确认挖矿类型和挖矿程序的基本情况。
若无相应配置文件,可通过云沙箱或专家对其进行深层次的分析。
2.1.3.5 查杀根除
双向封禁矿池地址
防止挖矿木马继续外连,并且防止挖矿木马进行内网传播。
删除计划任务
crontab -e 删除对应的恶意计划任务
删除存在以下目录的恶意计划任务
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
删除启动项
删除/etc/rc.local与/etc/rc[0到6].d文件中恶意启动项
删除服务
Linux中服务清除:sudo update-rc.d [服务名称] remove
进程查杀
查看是否存在子进程
ps ajfx systemctl status
若无子进程,直接kill -9
pid
若有子进程,使用kill -9 –
pid
杀死进程组
删除文件
查看文件占用
lsof
文件名
若在进程查杀后仍有文件占用,则该进程可能是恶意进程,需继续重复之前步骤再次排查。
无进程占用,直接使用
rm
命令删除恶意文件rm -rf
[恶意文件绝对路径]
Tips:
若出现rm: cannot remove ‘文件名’: Operation not permitted.
则攻击者可能给文件添加了a和i的权限导致文件无法删除,可使用
lsattr
查看文件权限使用
chattr -i 文件名
或chattr -a 文件名
修改文件权限,再用rm
目录删除
2.2 其他事件处理流程
若非挖矿事件,按照其他事件处理流程处置
0x03 样本分析
3.1 备份挖矿程序
对于发现的恶意文件和目录应及时备份,为后续分析做准备。
Tips:对于同系统文件一定要打包后再备份,防止发生二次感染。
a、linux:
scp
scp -P 22 user@127.0.0.1:/usr/local/target /home/aaa
-P 指定SSH端口
从远程服务器将target文件下载到本地的/home/aaa
Xshell、finalshell、MobaXterm等集成工具
b、windows:
RDP3389 复制粘贴
向日葵、Todesk等远程工具
3.2 云沙箱分析
对可疑文件可先通过云沙箱在线分析
安恒威胁情报中心 https://ti.dbappsecurity.com.cn/
微步云沙箱 https://s.threatbook.cn/
大圣云沙箱 https://sandbox.freebuf.com/
…
3.3 专家分析
对云沙箱无法分析或分析不全时,可请求安全专家进行分析
0x04 溯源攻击
溯源常规流程
0x05 附录
以上为清理病毒程序方式,后续还需使用终端杀毒对系统进行全面杀毒及加固,并观察是否还有反复迹象。
一切以挖矿木马不再重启,不存在可疑外连为止。
附录1 挖矿病毒常见守护进程方式
挖矿家族名称 | 简介 | 常见守护方式 |
---|---|---|
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:\WINDOWS\MpMgSvc.dll C:\WINDOWS\Microsoft.NET\Framework\ETComm.dll C:\WINDOWS\Help\active_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.local3.设置定时任务:/etc/cron.hourly/>>/etc/crontab |
驱动人生 | 2018年12月爆发,更新20+版本 |
请登录后查看回复内容