从我大三(2011)开始玩当时远古版本的Linux Deepin起,到现在已经14年了。这么长的时间中,debian/redhat/arch系我都用过,但除了研三我自己把我的毕业论文误删了,我从来没有在Linux发行版下碰到过任何恶意程序或病毒。
然而上个星期,我公司的服务器… 居然中毒了…
起初维护的服务商跟我说我们服务器可能中毒的时候,我还半信半疑,毕竟给我技术支持的人,看上去相当不靠谱。
我全程看着对方远程操作服务器… 对命令的熟悉程度… 甚至还不如我… 就开着TOP然后一个个翻进程名,甚至过滤用户、按CPU占用排序都不会的样子。还对着TOP问了我几个明显没问题的进程… 并在重启后对着TOP说,看上去没问题呀(看不到CPU还是100%的样子)… 最后捣鼓了半天,只留下一句,可能是挖矿病毒,重装吧,就不回复了…
虽然我们的数据和系统是分开的,重装还是会让我们花费额外的时间在重新配置上,况且病因都没确定就下药,满足不了我的好奇心 也不一一定就能解决问题不是…
于是我还是Google了一下先…
真是挖矿病毒啊
起初的Google其实也没什么成果,因为除了CPU被100%占用,看不到占用进程这两点符合,netstat
没有看到挖矿程序用来连接挖矿池的链接,然后systemctl
莫名其妙出了问题,导致我没法安装一些博文里说到的软件。
但是到这时我其实还是没往病毒想,直到我翻到一个博文要用lsattr
和chattr
查看并修改systemctl
的权限,以解决安装软件的问题时,我发现服务器上没有lsattr
,同时运行chattr
会给一个很奇怪的提示。我当时还想,也许是这个服务器本来没装这俩?
直到我想起,我们特么还有一台一模一样的服务器呀… 然后登录上去看了看… woc, 另一台服务器是有lsattr
和chattr
的… 我这才想起翻回去看,出问题的服务器上的chattr
是个什么玩意… cat
一看,特么这程序明显是被替换了呀!
接着我就反应过来了,特么top
/htop
/netstat
这些,肯定全部被改了呀!
发现恶意程序修改以及应对
- lsattr: 直接被删除,无法查看文件状态,用另一台服务器上的文件替换
- chattr: 被替换后,赋予了’i’和’a’,以保证root都无法删除这个文件,无法重新安装chattr进行修复,用另一台服务器上的文件替换
- top/htop: 应该被修改过,所以看不到恶意程序进程,top用另一台服务器的替换,htop重装
- systemctl/添加服务: 添加了一个启动恶意程序的服务,同时程序被替换后看不到恶意程序服务,用chattr移除不可动权限后重新安装systemd
- ls: 被替换后,无法看到恶意程序的可执行文件,以及服务文件,用另一台服务器上的文件替换
- reboot: 应该被修改过,发现sha与另一台服务器不一样,用另一台服务器上的文件替换,但是修复回来后,依然不能正常重启
- netstat: 被替换后,无法看到恶意程序开启的网络链接,重装net-tools
后记
只能说,果然是见多才能识广,我怎么就没想到,恶意程序也是要进化的… 直接能看它的全修改一遍…
另外,我这还… 真干上运维了呀…