挖矿木马应急总结

admin 2024年3月9日22:10:06评论31 views字数 5024阅读16分44秒阅读模式
挖矿木马应急总结

#01概述

    非法挖矿,即挖矿木马攻击,是指黑客通过恶意软件或漏洞控制他人计算机、服务器或物联网设备,秘密利用这些设备的计算资源进行加密货币挖矿活动,而不支付相应的电费和设备损耗成本。被感染的设备会表现出异常高的CPU/GPU使用率、系统性能下降,甚至可能导致设备过热、损坏等问题。

1.1挖矿病毒攻击流程概述

    攻击者首先通过多种途径获取服务器控制权限,这可能包括利用已知漏洞(Zero-day/N-day)、弱口令攻击或通过供应链(如盗版软件)植入恶意代码。一旦攻陷服务器,他们会下载并执行挖矿木马脚本,清除服务器上可能存在的其他挖矿进程,以确保自身木马能独占系统资源。接着,攻击者会关闭或绕过服务器上的安全防护措施,隐藏并持久化运行挖矿进程,例如通过添加计划任务或创建隐藏用户来保证挖矿活动在系统重启后仍能继续。最后,攻击者可能进行横向移动,进一步扩大感染范围,并在完成后清理痕迹,尽量减小被发现的可能性。

1.2如何判断遭受挖矿木马

  • 性能异常:服务器表现出CPU和GPU使用率极高、系统响应速度慢、甚至出现过热现象。

  • 异常网络活动:检测到服务器直接连接至矿池或通过代理C2服务器加密连接至矿池,存在不明网络外联行为。

  • 系统异常变化:服务器上出现未知进程或服务、未知的链接文件、未授权的计划任务等。

#02挖矿病毒处理思路

当已确认遭受挖矿木马,建议按以下四步进行清除:

挖矿木马应急总结

第一步:隔离感染

    1. “网络隔离”:一旦发现系统可能受到挖矿木马感染,首要任务是立即从网络中隔离受感染的设备,以防止木马进一步扩散至其他系统。

    2. “系统隔离”:停用或隔离受感染的服务,确保其不对其他系统造成影响,并限制非必要的系统交互。

第二步: 深入排查

    1. “资源监控”:检查CPU、内存、硬盘IO等资源占用情况,找出异常占用资源的进程。

    2. “进程审计”:使用`ps`、`top`、`pstree`等命令查看系统进程,并重点排查未知进程和异常活跃进程。

    3. “文件与网络活动分析”:使用`lsof`、`netstat`等工具追踪可疑文件和网络连接,尤其是与挖矿相关的域名和IP地址。

    4. “安全扫描”:运行防病毒软件或专用于挖矿木马检测的工具进行全盘扫描。

第三步: 清除木马

    1.“终止恶意进程”: 使用`kill`命令终止挖矿木马的进程。

    2. “删除恶意文件”:确定并删除与挖矿木马相关的所有文件、库和配置文件,恢复被篡改的系统设置。

    3. “清理持久化机制”:检查并移除系统启动项、计划任务、环境变量等中被恶意修改的部分,解除文件的不可修改属性(如`chattr -i`)。

    4.“日志分析”:回顾系统日志,确保已完全清理掉所有挖矿木马留下的痕迹。

主要排查以下图所示:

挖矿木马应急总结

第四步:系统加固与恢复

    1. “系统更新与补丁”:安装所有可用的安全更新和补丁,确保操作系统和应用程序的安全性。

    2. “安全策略强化”:修订和完善密码策略,加强防火墙规则,关闭不必要的网络端口和服务,启用实时防护软件并更新病毒库。

#03一次曲折的应急响应

    在一起应急响应事件中,通过安全设备发现存在未经授权的Docker API访问行为

挖矿木马应急总结

    攻击者成功利用了这一安全漏洞,对容器进行挂载,瞬间突破了容器的隔离屏障,迅速取得了宿主机的全面控制权限

挖矿木马应急总结

    并先后进行了两次恶意脚本下载操作:

挖矿木马应急总结

攻击者进一步展开了与矿池的连接互动,成功操控受感染系统对接至挖矿网络,开始进行非法的加密货币挖矿活动,意图榨取受控系统的计算资源,为自己牟取经济利益。

挖矿木马应急总结

攻击者利用这台已经被控制的宿主机充当了跳板,发动了一系列大规模的对外攻击行动,目的在于发掘并利用相同漏洞,从而获取更多同样存在此安全缺陷的机器的控制权限。

挖矿木马应急总结

通过对涉及的IOC进行分析,我们初步推测此次攻击可能源自臭名昭著的黑产组织TeamTNT。该组织以其擅长利用各类安全漏洞进行恶意挖矿和系统入侵而闻名,此次事件的诸多特征均与其惯用手法相吻合。

挖矿木马应急总结

对受感染的服务器进行了上机排查,通过运行top命令检查了系统的CPU使用情况,但并未发现任何占用率异常高的进程:

挖矿木马应急总结

运行netstat -anp查看网络活动情况,也并未发现明显的对外异常连接迹象:

挖矿木马应急总结

奇怪,之前明明看到都有矿池连接行为了,怎么进程网络都查不到,是隐藏了么?

在深入剖析下载的可疑脚本内容进行分析,发现存在对系统命令进行替换删除操作

挖矿木马应急总结

对计划任务目录设置了ia权限

挖矿木马应急总结

在系统中秘密创建了一个SSH密钥

挖矿木马应急总结

多出来的SSH密钥:

挖矿木马应急总结

排查一下计划任务与自启动:

cat /var/log/cron查看计划任务日志

挖矿木马应急总结

发现使用计划任务调用curl下载挖矿程序与执行操作

挖矿木马应急总结

通过unhide proc成功查看隐藏进程,原理为unhide 命令也是遍历/proc/目录,若发现目录存在但ps命令不输出,即判定为隐藏进程,成功定位挖矿木马文件位置:

挖矿木马应急总结

并与share文件夹下发现敏感文件夹..iph

挖矿木马应急总结

对敏感文件夹进行查看,发现/etc/ld.so.preload存在恶意动态链接库

挖矿木马应急总结

根据上述发现,对所发现的所有恶意文件、恶意动态链接库以及相关的计划任务进行了逐一删除和清理操作。

应急总结:

该服务器的2375端口存在docker api未授权rce漏洞,导致攻击者通过此漏洞从虚拟机权限逃逸至获得宿主机权限,并投放挖矿病毒,用于盈利,通过对涉及的IOC进行分析,初步推测此次攻击源自黑产组织TeamTNT。进行上机排查,无法通过top、netstat等查出挖矿进程,攻击者使用Rootkit技术进行进程隐藏,需通过unhide排查出隐藏进程、通过对攻击者下载的脚本进行分析,可知服务器攻击者进行添加ssh公私钥用于权限维持,并对多个目录设置i权限,并存在替换删除系统命令的操作。对服务器进行失陷检测,未发现其他异常项,后续已协同客户采取措施对受到感染的服务器进行了病毒清理,针对性地修复了Docker API未授权访问的漏洞,以保证系统的正常运行。

#04挖矿病毒处理难点(Extend Rootkit介绍)

4.1.Rootkit介绍

Rootkit是一种恶意软件,攻击者可以在获得 root 或管理员权限后安装它,从而隐藏入侵并保持root权限访问,即Root(特权用户)和kit(工具集),攻击者可以在获得特权用户权限并控制整个系统的工具集。

根据其在计算机系统中的层级区别来说,可分为用户层,内核层,硬件层。其中用户层Rootkit是一种运行在操作系统用户空间中的恶意软件,它并不直接修改内核代码或驱动程序,而是通过利用系统API、库函数、注册表以及文件系统等接口来隐藏其自身及相关的恶意活动,例如在winodws下可挂钩(hook)或者替换掉CreateProcess()、NtQuerySystemInformation()等winodows下关于进程相关系统api函数来进行windows下的进程隐藏。

挖矿木马应急总结

内核层Rootkit为通过直接修改或扩展操作系统内核代码、驱动程序或其他底层组件来实现恶意软件所需的深度隐藏(隐藏进程、文件、端口等),而由于Linux中支持LKM机制,LKM为Linux内核为了扩展其功能所使用的可加载内存模块,因此Rootkit对于Linux修改更为简单,并由于其运行于操作系统最高权限级别(即Ring 0),而用户层为(Ring 3),内核层Rootkit比用户层Rootkit更难被发现。

挖矿木马应急总结

下面我们使用diamorphine这个常见的rookit,适用于linux内核版本为内核版本2.6.x/3.x/4.x,github地址为:https://github.com/m0nad/Diamorphine/tree/master,来进行示例。

安装:git clone https://github.com/m0nad/Diamorphine,后进行Diamorphine目录进行编译,加载内存模块,insmod diamorphine.ko:

挖矿木马应急总结

隐藏进程:

挖矿木马应急总结

隐藏文件:

任何以diamorphine_secret开头的文件或文件夹都会被隐藏

挖矿木马应急总结

接下来我们根据github的代码来了解一下diamorphine roobit实现的原理

首先其在diamorphine_init()函数中hook了getdents函数、getdents64函数、kill函数,其中kill函数用于接受命令,进行进程隐藏、root、隐藏自身模块等操作。

挖矿木马应急总结

其中getdents函数与getdents64函数为Linux内核提供的一个接口,用于从目录流中读取文件条目,即遍历目录内容,当恶意软件作者需要劫持或修改这些系统调用的行为时,会首先保存原始的系统调用地址到 getdents 或 getdents64 指针中,然后将自己编写的挂钩函数地址替换到系统调用表相应的位置上。这样,每当该系统调用被应用程序调用时,实际上执行的是恶意代码。

挖矿木马应急总结

选择kill函数是由于在Linux操作系统中,存在一系列系统调用函数,它们是应用程序向内核请求服务的入口点,安全研究人员、开发者或者恶意软件可以通过Hook技术来修改或监控这些系统调用函数的行为,从而实现对特定功能的增强、控制或是隐藏某些活动的目的。在此处为进行了hook kill函数的行为。

挖矿木马应急总结

diamorphine_cleanup函数中恢复了系统调用函数

挖矿木马应急总结

定义了3个参数,其中31用于隐藏进程,64用于root操作,65用于自身模块

挖矿木马应急总结

后于hacked_kill函数中定义收到SIGINVIS信号时,即31,使用for_each_process函数来遍历进程,若找到则对任务结构体中的 flags 字段进行位操作(异或运算),改变 PF_INVISIBLE 标志。这个标志通常用来控制进程是否可见,通过此操作可以实现进程的隐藏或显示,从而实现进程隐藏的功能。同理通过give_root函数与module_hide函数实现赋予root权限与隐藏自身模块的功能。

挖矿木马应急总结

例如案例中TeamTNT黑产团伙的就使用了我们演示的diamorphine这种rootkit技术,使用kill -31来隐藏进程信息。

挖矿木马应急总结

4.2应急Tips

1.对于检测可能存在的Rootkit注入攻击,可以采用chkrootkit工具进行排查。运行./chkrootkit|grep INFECTED可以快速找出被标记为感染的项目,有助于识别系统中是否存在隐藏的Rootkit威胁。

挖矿木马应急总结

2.在面对部分挖矿木马可能篡改服务器原有命令信息的情形时,常规的网络进程信息查询可能无法反映真实情况。这时,可以安装 BusyBox 工具箱,它包含了众多小型化的UNIX工具集合,适用于多种环境。在支持APT包管理系统的Linux发行版上,只需一条命令apt install busybox即可便捷安装。使用方法为busybox+需要运行的命令

挖矿木马应急总结

或busybox sh即可

挖矿木马应急总结

3.若挖矿木马修改了系统文件或目录的权限,如添加了不可更改(immutable)属性(即i权限),这会导致文件无法被删除或修改。此时,需要先使用chattr命令移除该属性,命令格式为chattr -i filename,待权限还原后再执行删除操作,确保彻底清除恶意文件

挖矿木马应急总结

4.通过上机排查,难以定位挖矿进程,若存在终端/服务器安全产品,定位挖矿进程时有奇效。

挖矿木马应急总结

#05.安全建议

1.在系统和应用程序的用户账户管理中,务必摒弃使用易被破解的弱口令,转而采用高强度、复杂度足够的密码。

2.应始终坚持从官方或权威渠道获取和安装软件,避免使用未知来源的第三方软件,尤其是在下载和安装过程中,切忌点击不可靠的链接。同时,务必对来源于不明渠道的文档、电子邮件及其附件保持高度警惕,不得轻易打开,也不应在安全软件提示为恶意或存在风险的情况下访问任何网站。

3.必须确保安装了可靠的安全防护软件,并时刻保持其病毒库和防护规则的更新,以确保能够有效应对最新的安全威胁。定期对整个系统进行全面的安全审查和全盘病毒扫描,并启用实时防护功能,以实现对潜在安全威胁的全天候、全方位监控。

4.在操作系统和应用程序的维护上,务必紧跟安全更新的步伐,及时安装所有补丁和安全更新,以封堵已知漏洞,降低被挖矿木马等恶意软件利用的风险。通过持续更新,确保系统和应用处于最新、最安全的状态。

挖矿木马应急总结

夹带私货=>祝各位小姐姐女神节快乐呀!

监制丨船长、铁子

策划丨格纸

美工丨molin

挖矿木马应急总结

原文始发于微信公众号(凌晨安全):挖矿木马应急总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月9日22:10:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   挖矿木马应急总结https://cn-sec.com/archives/2558491.html

发表评论

匿名网友 填写信息