我是个普通大二学生,最近做项目需要部署到服务器上,于是我月初在阿里云买了个小服务器,安装好jdk,tomcat,mysql,redis就没管了,第一次弄服务器,没什么经验,当时漏洞我没管,打算有空再搞.redis密码也没设置(太蠢了),端口还是默认的6379对外网开放.
就这么相安无事过了7天吧,那天晚上还在打游戏,看到阿里云发来的短信心头一紧,马上上去看,被入侵了,查了一会,发现是挖矿木马,就是如下这种
https://zhuanlan.zhihu.com/p/54610161
我上来就登录redis flushall了一次(感觉有点欠妥),然后看着阿里云的安全警告挨个挨个去找文件,找到了想rm -f,结果提示"operation not permitted",我用的root登录,百度了一下,用lsattr看了这些文件,都带有i属性,连root用户都动不了
我就试着用chattr -i xxx.sh打算去除i权限,发现没用,权限没改,文件依然删不了,开始没想到是命令被篡改的问题.
由于第二天有课,要早起,我索性关了服务器,睡觉去了,接下来几天也没啥时间,直到今天才抽时间出来解决问题.
我百度了半天,终于发现有个哥们跟我一样的经历,他说他chattr文件被篡改,我恍然大悟,就去命令所在目录看了下,果然,chattr大小为0,里面啥都没有,然而chattr这个文件本身也带有i属性
参照那哥们的方法,去github把chattr.c下下来,在服务器里gcc -o chattr.c,得到一个chattr.o文件,我把它重命名为chattr1,扔到命令所在目录,这下就好了,终于可以操作了,挨个挨个查杀干净.杀完了,我去改了redis端口,加上了密码,修复服务器漏洞,给80端口做了个端口转发
统计了一下被黑了哪些地方
- 写入了ssh公钥
- 创建了一个rdb文件
- 覆盖了我的chattr命令文件
- 在redis写入了键值对
- 在定时任务写入了代码
- 下载了一堆.sh文件
奇怪的是,我对照着阿里云的提示,发现有些.sh我用查找命令找不到,有些我就能找到,还有攻击刚刚发生不久,crontab里面有黑客写的定时任务,我尝试去改,发现crontab变为了readonly,提示我权限不足,过了不到一小时,我再看一下,发现里面什么都没有了,不再是readonly了,我也能改了,不知道怎么回事,莫名其妙的