挖矿木马事件一般处置流程:
0x00 概述
通常来说,当我们的服务器或PC资源(CPU)使用率接近或超过100%,并持续高居不下导致服务器或PC操作延缓,我们就可以判定被挖矿。
常见挖矿其它特征如下:
-
服务器或PC访问过不受信任的地址,这些地址包括:主机、IP、域名。这是由于大部分挖矿都需要从一个不受信任的地址下载初始化程序,而不受信任的来源主要是:第三方情报结构,企业内部历史数据沉淀。
-
服务器或PC新增异常或恶意文件、进程或服务,并且大部分异常文件保存在服务器或PC的TMP目录中。
-
0x01 了解基本情况
1.1 如何发现
挖矿木马显著的行为特征就是极大的占用CPU及GPU和硬盘资源主要包括:高CPU和GPU、硬盘使用率、响应速度慢、崩溃或频繁重新启动、系统过热、异常网络活动(例如,连接挖矿相关的网站或IP地址)。其次是在网络流量中,挖矿木马通信过程采用专门的通信协议,因此存在一定的网络通信特征,因为要连接矿池,网络特征较多的都是TCP。
1.1.1 异常外联
事件发生时的状况或安全设备告警等,能帮助应急处置人员快速分析确定事件类型,方便前期准备。
1.1.2 主机异常
可获取CPU占用过高进程信息
1.2 事件的时间节点
了解事件发生时间节点:出现事件时间、发现事件时间、处置事件时间,确定这三个时间节点后,可通过时间相关性推算挖矿病毒产生大致时间,有助于后续挖矿病毒发现及清理。
1.3 临时处置情况
了解挖矿病毒临时处置的情况,方便后期的排查
1.4 网络拓扑情况
获取网络构架,网络构架一般来讲是要拓补图,详细的拓扑图可以协助还原攻击流程时,准确定位网络连接方向。
0x02 判断是否属于挖矿
根据了解到的基本信息来判断和确认是否挖矿事件
2.1 属于挖矿
2.1.1 根据告警和流量信息初步判断挖矿类型
在不影响主业务运行的情况下,拔掉受害主机网线,并且切断网络连接可使挖矿现场尽量保持完整,有助于接下来的溯源工作顺利开展。
可以先根据告警和流量信息初步判断挖矿类型,在互联网收集相关情报,若有相关分析文章可提高事件处置效率。
2.1.2 windows
2.1.2.1 信息收集
打开 cmd 窗口,输入
resmon
命令,通过资源监视器,找出CPU占用过高的程序,找到PID和进程名。
1、使用
netstat -ano
命令查看目前的网络连接,定位可疑的 ESTABLISHED
2、根据 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\Runonce
d、利用安全软件查看启动项、开机时间管理。
服务也是挖矿病毒常见的守护方式之一,将注册表中服务启动方式写为挖矿病毒主程序,从而达到守护进程目的。
Win+R,输入
services.msc
,注意服务状态和启动类型,检查是否有异常服务。
TIPS:除以上方法外还可使用火绒剑、Process Explorer等安全工具进行分析和信息收集。
2.1.2.2 定位
通过[2.1.2.1信息收集](#####2.1.2.1 信息收集) 定位到PID和进程后,再定位挖矿程序文件和目录。
查看进程对应的程序位置
方法1:打开任务管理器,选择对应进程,右键打开文件位置
方法2:Win+R,输入
msinfo32
命令,软件环境->正在运行任务,即可定位到程序的目录信息。
方法3:通过安全分析工具进行定位。
火绒剑->进程->右键进程信息 可直接定位到程序位置,且可查看其命令行参数。
火绒剑->网络 可直接定位到程序位置
TIPS:对于打开文件位置还找不到挖矿文件的情况,则挖矿程序可能被隐藏,可通过配置文件夹选项或通过安全分析工具提取来解决
文件夹选项->查看->高级设置:取消隐藏受保护的操作系统文件、显示隐藏的文件、文件夹和驱动器。
2.1.2.3 样本提取
一般在挖矿程序文件目录中可找到对应的配置文件和信息,通过矿池地址和钱包地址能够进一步确认挖矿类型和挖矿程序的基本情况。
若无相应配置文件,可通过云沙箱或专家对其进行深层次的分析。
[0x03 样本分析](#0x03 样本分析)
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 信息收集
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
# 列出某个用户cron服务的详细内容
crontab -l
# 使用编辑器编辑当前的crontab文件
crontab -e
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 包安装的服务
# 查看服务自启动状态,可以看到所有的RPM包安装的服务
chkconfig --list
# 查看当前服务
ps aux | grep crond
b、源码包安装的服务
检查/etc/rc.d/rc.local
命令
|
命令详解
|
|
查看当前登录用户(tty本地登录 pts远程登录)
|
|
|
|
|
|
|
|
|
|
|
awk -F: '$3==0{print $1}' /etc/passwd
|
|
awk '/\$1|\$6/{print $1}' /etc/shadow
|
|
cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
|
查看sudo权限的用户(有时攻击者会创建属于自己的用户)
|
cat /etc/passwd |awk -F: 'length($2)==0 {print $1}'
|
查看空口令账户(有时攻击者会将正常账户改为空口令)
|
2.1.3.2 定位
通过[2.1.3.1信息收集](#####2.1.3.1 信息收集) 定位到PID和进程后,再定位挖矿程序文件和目录。
方法1:
通过top -c命令,可以看到可疑进程的完整目录信息和参数,从而定位到挖矿文件及目录
方法2:
通过以下命令,定位到挖矿文件位置
lsof -p pid
systemctl status pid`