最近公司的服务器(阿里云)一直给老板发信息说,服务器在访问恶意下载源。老板一开始没在意,后来一天一条短信,然后让我处理一下。作为一个后端工程师,普通的服务器维护在小公司基本都是自己上手来。废话太多了,下面具体描述一下我遇到问题的和解决方法,以便大家遇到了之后不知所措。(大佬们,不吝指教~)
阿里云服务器警告截图:
看这种警告,其实主要看几个重点
所以我当时就很诧异,因为这个服务器是我司一个测试服务器,所以很多漏洞没更新,我也不怎么处理,被攻击也可能是常有的事,也无伤大雅。
然后第一反应就是,这不就是定时任务 crontab 跑了个东西,可能是访问了某个链接被阿里云检测到不合法了。
然后我就开始一顿查询定时任务,然后开始清理。
查询crontab执行命令:tail -f /var/*log*/cron
上面这个记录看着出了一些 nobody 的用户组进行了一个未知的定时任务执行记录。
然后 crontab -l 除了自己的业务定时任务并没看到这个所谓的 curl 了某个链接的定时脚本。然后我直接采取非常暴力的 rm 方法,把所有定时任务全部清除。
(第二天发现并没什么用。。。)
接着我就开始百度了(我搜了这个 :185.181.10.234/e5db0e07c3d7be80v520/init.sh),这个东西会不会有人遇到过,果然还是度娘靠谱,光一个链接就能捕捉到我要啥。然后我就看到了这篇文章:
《一个有趣的利用 redis 未授权访问漏洞进行挖矿的分析及防范》
https://www.cdsy.xyz/computer/security/240824/cd63037.html
简直是救命稻草,恍然大悟的我想起来测试服当时 redis 安装完确实没有怎么处理过,密码也没设置。
然后我开始设置 redis 的登陆密码和权限,怎么设置参考 https://www.cdsy.xyz/computer/soft/database/redis/240824/cd63039.html
顺带一起清空且重置了一下 redis。
我就觉得这下应该万事大吉了。然后第三天老板依旧收到了来自阿里的警告信息。我郁闷了,啥玩意,为啥还可以,我不都设置密码了么。咋还执行呢?
想起前一天大佬提醒我要注意 ssh key 是否被人添加了免密登录的权限。其实我真的看了,
打开 vi authorized_keys 并没有任何东西。然后我顺带把其它 /root/.ssh/ 下的四个文件都翻了一遍。
才发现 known_hosts 文件中多了两个 IP 地址为新加坡的 ssh key , 我才明白为啥上面做了那一堆都没用了。
所以我解决上述问题的方法就是: