木马攻击问题由来阐述
我买了三年的阿里云服务器(在
阿里云官网
买的),已经使用了一年多了,平时拿来搭建网站,有时也拿来学习技术和开发测试,一直使用很稳定。直到近期我服务器上安装了docker并部署了springboot+mysql+nginx项目,就被攻击了。但就在今年的5月14号,我的服务器被木马攻击,然后被拿去挖矿了。我服务器的cpu持续维持在CPU100%. 后果是直接导致我网站无法正常请求和响应。而且Linux服务器的root权限被窃取了。
黑客在服务器/root/.ssh目录下生成了连root用户也无法删除的ssh密钥文件(本质就是利用chattr命令加了特殊权限),可以免密码登录。这样的后果就是,我的服务器的控制权被别人控制了。是可忍熟不可忍,必须解决。
我是第一次遇见这种恶心的问题,也不知道黑客们是怎么盯上我的服务器的,也许我是无目的的攻击受害者。作为建站老鸟以及程序员的我,硬着头皮也得解决。因为我是搞前端方面的,所以Linux方面的技能都是我业余时间学习。所以这次问题的解决经过还是挺考验学习能力的。
大致过程分为两大步:
- 第一步:清除木马后门(ssh免登录密钥)
- 第二步:杀死木马进程以及清除木马文件(挖矿病毒crypto和蠕虫病毒pnscan)
我用到的工具
-
阿里云服务器:
阿里云服务器
,国内第一大云品牌,当初是用它来入门学习编程技术的。当然用到它了,要不然中病毒的受害者是谁呢。当然不是说买了阿里云的服务器才会中毒,因为病毒中毒是因为你Linux安全意识和使用不当造成的。这次我是因为docker使用或者纯碎因为ssh暴力破解有关系。所以你换其它家的云服务器,比如
腾讯云服务器
,也一样存在被攻击的可能。事后,我们必须去学点基础的安全防护技巧。 -
宝塔面板:宝塔面板是很重要的工具,这里就不多说了,入门和使用教程汇总参考:
宝塔面板安装和入门教程汇总
-
FinalShell客户端:
下载地址
该客户端可以安装之后更新到最新版本。 - chattr源码文件一份(C程序):需要编译chattr文件,破解病毒的chattr附加的特殊属性i 。我再文章中已经给了源码地址,自己去下载使用。Linux系统可以敲命令行去编译c程序源码文件。
第一步:删除免登录ssh密钥文件(木马后门)
1、先下载C文件(https://github.com/posborne/linux-programming-interface-exercises/blob/master/15-file-attributes/chattr.c), 上传到服务器的任意目录
2、编译,cc chattr,得到文件a.out,把名字改成chattr
这一步出现了一个错误:
collect2: fatal error: cannot find 'ld' compilation terminated.
解决方法是(两条命令):
yum -y install binutils
ln -s /usr/bin/ld.gold /usr/bin/x86_64-nptl-linux-gnu-ld.gold
参考资料:
运行gcc出现collect2: fatal error: cannot find ‘ld’
3、运行编译好的文件,把被篡改的文件去掉不可修改的隐藏属性,
./chattr -ia /usr/bin/chattr
编译文件运行命令是:”./chattr” 使用指令 ./a.out 执行