这次阿里云被入侵的主要途径是通过redis漏洞对本机文件进行各种操作
疏忽的地方主要有两点
- redis未配置bind绑定客户端ip,事后已经暂时绑定127.0.0.1
- redis密码过于简单,之间为了测试方便,密码仅设为123456,事后已修改为更复杂的密码
补救措施
补救上面两点,同时如果有需要请配置防火墙
根据阿里云的安全中心提示进行查找,杀死对应进程
kill -9 pid
除了杀死进程之外,被入侵时还被插入了恶意脚本文件和自启动后门,跟上一条一样,按照提示找到对应路径,尝试删除源文件,如果是系统文件不能删除就把修改过的内容删掉
这时我们会发现自己明明使用的是root账号,仍然没有足够的权限去编辑或删除文件,这时尝试使用
chmod 666 filename
来修改对应权限(不过一般这样是不会成功的)chmod的原理是与chattr一致的,在chmod失败后我们可以
lsattr filename
来查看文件属性,如果发现指定文件有i
或a
属性,可以尝试chattr -ia filename
来修改对应属性1
2
3
4
5
6
7
8
9
10
11
12
13A :当设定了 A 这个属性时,这个档案(或目录)的存取时间
atime (access) 将不可被修改, 可避免例如手提式计算机容易有磁盘 I/O 错误的情况发生!
S :这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中!可以有效的避免数据流失!
a :当设定 a 之后,这个档案将只能增加数据,而不能删除,只有 root 才能设定这个属性。
c :这个属性设定之后,将会自动的将此档案『压缩』,在读取的时候将会自动解压缩出来,但是在储存的时候,将会先进行压缩>之后再储存(看来对于大档案似乎蛮有用的!)
d :当 dump (备份)程序被执行的时候,设定 d 属性将可使该档案(或目录)具有 dump 功效!
i :这个 i 可就很厉害了!他可以让一个档案『不能被删除、改名、设定连结也无法写入或新增数据!对于系统安全性有相当大的帮助!
j :当使用 ext3 这个档案系统格式时,设定 j 属性将会使档案在写入时先记录在 journal 中! 但是当 filesystem 设定参数为 >data=journalled 时,由于已经设定了日志了,所以这个属性无效!
s :当档案设定了 s 参数时,他将会被完全的移除出这个硬盘空间。
u :与 s 相反的,当使用 u 来设定档案时,则数据内容其实还存在磁盘中,可以使用来 undeletion.
R :递归处理,将指定目录下的所有文件及子目录一并处理。
v :显示文件或目录版本。
V :显示版本信息。这时候你使用chattr会报错
bash: chattr: command not found
黑客毕竟不是吃干饭的,他修改了你的文件属性不让你删除和编辑之后,删除了你的chattr指令来防止你移除他们植入的代码
不过不要慌张,这时输入下面几个指令,重新安装一下对应的指令包即可:
1
2yum remove e2fsprogs //此步骤注意同时会删掉很多依赖的包
yum -y install e2fsprogs安装完之后重新使用chattr指令,将被篡改的文件修复或删除
大部分篡改到了第6步就可以修复完成了,但笔者在修复/root/.ssh/authorized_keys文件时发现:在XShell客户端一旦使用chattr指令就会自动与阿里云服务器失去连接,但并不清楚到底是黑客植入的脚本作用还是修改authorized_keys之后会对本地连接造成影响,不过之后尝试了在阿里云工作台的远程连接进行操作,成功进行了修复,这次的事件就告一段落了。。。
经验教训:
公网毕竟不像私网,一定要时时刻刻注意服务器安全,安全组、防火墙、绑定ip、复杂密码等需要处处考虑
参考博客
【Linux 】Linux 文件(/etc/crontab和/var/spool/cron/root)不能被root权限修改与编辑 - 灰信网(软件开发博客聚合) (freesion.com)
bash: chattr: command not found - Linux - 浩海代码网 - php代码_seo优化_网络推广 (it300.com)