1. 前言
在最近研究僵尸网络漏洞传播过程中发现的恶意传播链接,并根据链接下载样本落地进行分析。最终该样本被确认为挖矿病毒。
此病毒由于在分析的过程中c2尚且存活,并且是由漏洞传播入口获取到的样本,因此此样本的攻击链非常完整,便进行了落地分析处置操作。
2. 攻击链分析
ips告警日志中经过对payload信息进行解码定位到可疑的样本传播行为。
对目标域名进行威胁情报关联分析,发现该域名被微步标记为挖矿。
对下载链接进行落地分析,经过分析该脚本主要用于下载后序阶段的样本(elf挖矿+sh执行脚本)并执行elf文件。
由于c2尚且存活,因此该c2上的病毒样本均可以下载,下载对应的样本进行分析,优先对dupa.sh脚本进行分析。该脚本作用主要有几点:判断受害者处理器架构用于下载对应的可执行挖矿样本、将挖矿病毒样本重命名更改为最高执行权限并运行。
执行后的挖矿病毒属于xmrig开源代码魔改的样本,该样本通信协议为stratum。通信内容如下:
3. 通信域名解析
域名 | 作用 |
download.asyncfox.xyz | 下载挖矿木马及执行脚本 |
c2.asyncfox.xyz | 上线服务器 |
xmr-pool.asyncfox.xyz | 矿池 |
4. 手工查杀定位病毒
本章节主要针对实战操作,在安全设备告警后如何在受害者主机发现定位并彻底清除病毒。以下通过进程、文件、网络、计划任务、双进程守护等操作进行逻辑关联分析实操定位。
4.1 发现可疑进程
利用top命令,观察发现cpu占用率极高,目标进程php,pid822。
4.2 根据pid定位病毒文件路径
有以下两种方法可以定位,lsof -p $pid 以及 ll /proc/$pid/exe。
lsof 主要目的是获取进程id涉及到的原始文件路径以及相关的网络通信。
ll /proc/$pid/exe 主要用于定位原始文件路径。
4.3 通过网络定位可疑进程
通过netstat -antp命令可以确认当前受害者主机的tcp通信以及对应的pid。这也是一种定位可疑进程的方法,在该命令执行后在终端对通信的ip进行威胁情报关联可以辅助定位。
4.4 crontab持久化排查
此操作可以在病毒清理前或者后都可以进行排查,这里默认优先排查。因为挖矿病毒为了达到黑客挖矿盈利目的,一般情况持久化操作是必不可少的。因此可以养成排查crontab的好习惯。
crontab -l,查看当前用户的计划任务。发现一条开机重启的任务,经过路径分析关联定位属于挖矿病毒所创建。
执行crontab -e可以进行编辑,该操作可以针对于计划任务较多的主机。如果受害者主机只有一条计划任务且为该病毒创建的可以直接执行 crontab -r 删除即可。
4.5 病毒杀不掉?
在已经定位到病毒pid以及原始路径和持久化位置后,开始进行病毒清理工作。优先杀掉进程,随后彻底删除病毒样本随后crontab -r 删除计划任务。发现病毒死灰复燃,起了一个新的进程以及对应的pid。
经过网络抓包分析,样本被删除后会执行wget或者curl进行挖矿病毒样本落地并执行。
分析成因:
- 持久化脚本,定时检测通信,按照进程或者通信ip,如果不存在则重新从c2端下载挖矿病毒样本。
- 进程守护操作
- 在文件不被删除的情况下,pid检测,当被退出则重新执行样本。
- 文件被删除情况下,如果关联路径无法找到则重新从c2端下载挖矿病毒样本。
4.6 继续杀(进程守护定位)
在4.5 章节分析完杀不掉的原因后,分别按照两个成因进行分析,经过分析后发现该病毒有进程守护的操作。
使用进程树可以关联分析病毒进程的相关进程(子进程)。此思路尤为重要,注意处置人员在分析排查过程中切勿陷入思维陷阱,将简单的问题复杂化。以后在遇到类似的病毒排查清理此操作可以着重关注子进程,牵扯到进程守护。
可以使用两个命令来查看病毒进程的相关子进程。
ps -afjx
pstree -p $pid
在对watchdogd这个进程进行清除过后再使用4.5章节的清除步骤,病毒便能被彻底清除。
5. 总结与防护
挖矿木马仍然是当今互联网中较为流行的木马类型之一,其攻击目标重点为企业服务器,利用系统各种漏洞、弱口令进行入侵植入传播最终实现挖矿盈利目的。
企业用户需及时更新软硬件版本,针对于暴露在公网上的资产,要定期进行资产探测管理以及漏洞扫描及时修补补丁并更改密码强度,避免黑客通过漏洞及弱口令的方式进行入侵。
同时通过网络安全产品如流量侧的防火墙部署在客户边界网络对客户资产进行监测保护并阻断,可以避免挖矿病毒植入以及挖矿病毒的挖矿通信。