近年来随着虚拟货币区块链等技术和产品的发展以及虚拟货币价值的居高不下,让原本用于DDoS攻击或者发垃圾邮件的僵尸网络又看到了另一种新的变现途径:虚拟货币"挖矿"。
很多被攻陷的主机被植入挖矿木马,开始偷偷地消耗服务器资源来挖矿,甚至还有企业的内鬼主动给服务器安装挖矿木马谋求利益,防不胜防。
1. 挖矿木马的概述
挖矿木马主要用于挖掘如门罗币、比特币等互联网虚拟货币,其工作时,会导致设备显卡会长时间满负荷运转,占用大量CPU资源,导致系统应用运行缓慢,设备使用寿命下降,电费开支异常增高的现象。
由于挖矿需要购买大量基础设施成本过高,黑客为了使用更多算力资源,会通过各种手段将挖矿木马植入受害者的计算机中,利用他人算力进行挖矿,从而获取非法收益。
常见的手段一般会对全网主机进行漏洞扫描、RDP爆破、SSH爆破等。部分挖矿木马还具备横向传播的特点,在入侵成功后,尝试对内网其他机器进行蠕虫式的横向渗透,并在被入侵的机器上持久化驻留,意图长期控制,利用机器挖矿获利。
经过多年的演进,黑客的入侵方式越来越多样化,其中主要入侵方式如下:
1. 漏洞利用:常见的漏洞包括系统漏洞、服务器组件插件漏洞、中间件漏洞、Web漏洞等。利用系统漏洞快速获取相关服务器权限,是目前植入挖矿木马最为普遍的传播方式之一。
例如传播较广的WannaMine挖矿家族,就是利用了永恒之蓝漏洞在内网蠕虫式传播,给不少企业、公司和机构带来巨大损失。
2. 弱口令:弱口令是较为常见的安全问题,通常指的是仅包含简单口令、有规律的键盘组合或历次泄漏过的密码。
例如常见的弱口令“123456”、“666666”、“1qaz2wsx”及“p@ssw0rd”等,攻击者通常会针对ssh、rdp、redis、mssql、IPC$等服务进行暴力破解攻击。尝试获取系统权限,植入挖矿木马并设置持久化。
3. 伪装正常软件:攻击者将挖矿木马伪装为游戏软件、娱乐社交软件、安全软件、游戏外挂等进行传播,欺骗用户下载并执行。
由于多数游戏对显卡、CPU等硬件性能要求较高,故挖矿木马通常伪装成游戏辅助外挂,通过社交群、网盘等渠道传播,感染大量机器。
挖矿木马的表现形式
挖矿木马能在各种平台上运行,包括:Windows、Linux、Mac、Android、物联网(IoT)设备。
其表现形式主要分为三种:
1. 可执行文件:最普遍的典型恶意程序类型,通常通过设置计划任务或修改注册表项实现持久化,长期进行加密货币的挖矿作业。
2. 基于浏览器的挖矿木马:使用JavaScript(或类似技术)的挖矿木马是在浏览器中执行。只要浏览器打开被植入挖矿恶意代码的网站,就会执行挖矿木马,持续消耗资源。
3. 无文件挖矿木马:利用如PowerShell等合法工具在机器的内存中执行挖矿作业,具有不落地、难检测等特点。
2. 挖矿木马的检测
挖矿木马行为特征
挖矿木马显著的行为特征主要包括:高 CPU 和 GPU 使用率、响应速度慢、 异常网络活动、崩溃或频繁重新启动、系统过热。其次是在网络流量中,挖矿木马通信过程采用专门的通信协议,因此存在一定的网络通信特征。
检测方法
一、网络侧
1)通信内容检测
挖矿木马感染主机和矿池之间通信,使用最常用的通信协议是stratum协议,该协议内容为JSON数据格式,存在多个固定的特征字段,在检测通信内容时,可根据这些特征设置告警规则。
通信特征字符串:id、method、jsonrpc、params、result、login、pass、agent、 job_id、seed_hashblob、target、rigid。
在Stratum中,挖矿机器与矿池之间采用TCP的形式传输数据,数据传输的过程基于JSON-RPC(一个无状态且轻量级的远程过程调用RPC传送协议)。
矿机向矿池可使用如下8个发放发送数据:
示例:使用wireshark抓包并分析TCP通信内容如下。
连接矿池行为
{"id":3,"jsonrpc":"2.0","method":"submit","params":{"id":"123515566591964","job_id":"731675456245451","nonce":"a5850000","result":"f2d9d13d23ddcbd6ef1d581502121d4e13da89703c86b92593e464a5222d0000"}}
登录矿池
{"id":1,"method":"mining.subscribe","params":["GMiner/2.74",null,"sh.rvn.skypool.org","10000"]}
获取挖矿任务
{"id":33,"method":"eth_submitHashrate","params":["0x80ba3b","0xdc0568641fc97a23584eea470e7c2f090cc007264761f6e5d4a0d18801c3d34f"],"jsonrpc":"2.0"}
提交挖矿份额
{"id":27,"method":"mining.submit","params":["RAhmDT5XWyjZWeQPoxV5kRRy1vvpcZFKdf.DESKTOPTMTL9O3","000000000000000000000000000000000000000000000000000000000000db30","0xd8420d0117d0c0cc","0xf66b6da43c6c5ea507021227c7ef46495a87981c6bfdef36c7c300b2fed42d3b","0xb01fd1024f4e9a1eaba466d0ec98a230eb468218248ea0f1082afbab473ca0a7"]}
2)矿池地址域名请求(DNS请求历史记录)检测
矿池主要有公开矿池和私有矿池,其中部分公有的矿池地址如下图所示:
私有矿池地址一般有域名+端口或IP地址+端口的形式,域名可能也和公有的矿池地址一样存在一些特殊字符串,如:pool、xmr、mine等。在检测过程中都可结合威胁情报和对应通信内容进行综合判定。
3)流量特征总结
流量中有jsonrpc的版本标识
带有明显的特征字段,例如login、submit、params、seed_hash等
id字段请求和响应相等,并且逐步递增。
存在大量矿池域名或IP地址的网络连接
由于挖矿行为本身的特性,一天中的登录和认证包较少,而提交包和下发任务的包很多
二、主机侧
挖矿木马的主机侧检测主要依据的就是对应进程CPU使用率过高,部分挖矿木马采用多种方式对挖矿进程进行隐藏,且存在不同形式的持久化驻留。
针对不具备隐藏进程功能的挖矿木马检测场景:
• Windows:使用任务管理器查看
• Linux:使用命令top -c查看
针对具备隐藏进程功能的挖矿木马检测场景(即系统CPU使用率高,但未发现存在CPU使用率高的进程):
• Windows:使用ProcessHacker、ProcessExplorer、PcHunter等软件查看系统所有进程及其进程关系,依据CPU使用率筛选可疑进程,进一步在主机上排查该可疑进程的网络连接,计算可疑进程对应文件hash,通过公开的威胁情报进行查询,综合判定结果。
• Linux系统挖矿木马进程隐藏方式存在多种方式:
1. 篡改预加载的配置(/etc/ld.so.preload),写入恶意so文件路径,加载恶意的so文件,使得ls、top、ps等命令在查询可疑进程时执行结果被挖矿木马的动态链接库屏蔽,无法获得挖矿木马进程相关的信息。
2. 通过其他手段替换Linux系统常用命令,针对此类隐藏方式,有以下几种排查方法:
a. 查看系统版本(uname -a),将其他相同版本的Linux系统的命令文件替换到该受害系统中,还原被修改的系统命令。
b. 安装busybox程序,使用内置的Linux常用命令(top、ps、ls等)对系统进行排查。
3. 使用unhide工具查看服务器中的恶意进程,根据进程PID查询对应服务并停止服务。
3. 挖矿木马的排查
在当前活跃大多数挖矿木马,均集成多种功能,主要有传播、挖矿、控制、持久化驻留、清除竞争对手、更新等功能。
在传播方式上使用端口扫描工具、漏洞利用工具、暴力破解,对内网或外网的其他目标进行渗透并传播自身。
处置思路:
针对挖矿程序进程,初步处置以屏蔽对矿池的连接为主,记录挖矿进程信息和对应文件路径。
依据系统资源使用率在主机侧排查可疑进程,结合网络连接情况,综合判定该进程为挖矿木马后,即可结束该挖矿木马进程,而后删除对应的挖矿木马文件。
具体方法:
4. 挖矿木马的处置
发现机器可能感染了挖矿木马,可以通过以下步骤清除:
1. 从DNS服务器、流量审计等设备获取恶意域名信息,根据域名查询威胁情报确定木马类型;
2. 查看系统CPU、网络、内存占用情况,定位异常进程;
3. 根据进程名或部分字符串获取进程号或进程相关的命令行;
4. 通过挖矿进程的相关信息,定位到文件的具体位置,删除恶意文件;
5. 结束挖矿进程及其守护进程;
6. 查看启动项,如果发现非法开机自启服务项,停止并删除对应数据;
7. 查看定时任务,多数挖矿木马会在受感染机器中写入定时任务完成程序的驻留。如果只结束挖矿木马进程和删除文件,定时任务可能会再次从服务器下载挖矿进程或直接执行挖矿脚本,导致挖矿进程复发;
8. 溯源挖矿木马入侵途径,确定攻击原因,针对于漏洞利用的攻击,需要完成漏洞修复,防止再次入侵。
5. 防护建议
1. 规范上网行为,不打开来历不明的文档,以及带有图片、文件夹、文档、音视频等图标的文件,不安装来历不明的软件、工具;
2. 及时安装系统补丁,修复系统应用漏洞、中间件漏洞、组件、插件等相关漏洞;
3. 进行严格的网络隔离,不必要的系统、服务尽量不要开放到互联网,对于系统要采取最小化服务的原则,只开放必要的服务和端口,同时采用防火墙,网闸等网络设备进行访问控制;
4. 加强密码策略,增加密码复杂度并进行定期修改,开启相关登录失败处理功能。
如果您觉得内容还不错的话,请关注我吧!
建议把公众号“篝火信安”设为星标,否则可能就看不到啦!因为公众号现在只对常读和星标的公众号才能展示大图推送。
操作方法:点击公众号页面右上角的【...】,然后点击【设为星标】即可。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...