阿里云提示服务器访问恶意下载源

最近公司的服务器(阿里云)一直给老板发信息说,服务器在访问恶意下载源。老板一开始没在意,后来一天一条短信,然后让我处理一下。作为一个后端工程师,普通的服务器维护在小公司基本都是自己上手来。废话太多了,下面具体描述一下我遇到问题的和解决方法,以便大家遇到了之后不知所措。(大佬们,不吝指教~)

一. 问题描述

阿里云服务器警告截图
阿里云提示服务器访问恶意下载源

看这种警告,其实主要看几个重点

  1. 父进程路径:/usr/sbin/crond
  2. URL 链接:http://185.181.10.234/e5db0e07c3d7be80v520…
  3. 与该 URL 有关联的漏洞:Drupal CVE-2018-7600 ,ElasticSearch Groovy 脚本远程代码执行漏洞 CVE-2015-1427 ,Hadoop Yarn REST API 未授权漏洞 ,WebLogic CVE-2017-10271(PS:这个点我觉得并没很大用处,可能阿里云考虑的比较仔细)

所以我当时就很诧异,因为这个服务器是我司一个测试服务器,所以很多漏洞没更新,我也不怎么处理,被攻击也可能是常有的事,也无伤大雅。

然后第一反应就是,这不就是定时任务 crontab 跑了个东西,可能是访问了某个链接被阿里云检测到不合法了。

然后我就开始一顿查询定时任务,然后开始清理。

查询crontab执行命令:tail -f /var/*log*/cron
阿里云提示服务器访问恶意下载源

上面这个记录看着出了一些 nobody 的用户组进行了一个未知的定时任务执行记录。
然后 crontab -l 除了自己的业务定时任务并没看到这个所谓的 curl 了某个链接的定时脚本。然后我直接采取非常暴力的 rm 方法,把所有定时任务全部清除。

(第二天发现并没什么用。。。)

接着我就开始百度了(我搜了这个 :185.181.10.234/e5db0e07c3d7be80v520/init.sh),这个东西会不会有人遇到过,果然还是度娘靠谱,光一个链接就能捕捉到我要啥。然后我就看到了这篇文章:

《一个有趣的利用 redis 未授权访问漏洞进行挖矿的分析及防范》
https://www.freebuf.com/column/211777.html

简直是救命稻草,恍然大悟的我想起来测试服当时 redis 安装完确实没有怎么处理过,密码也没设置。

然后我开始设置 redis 的登陆密码和权限,怎么设置参考 https://www.cnblogs.com/tenny-peng/p/11543440.html

顺带一起清空且重置了一下 redis。

我就觉得这下应该万事大吉了。然后第三天老板依旧收到了来自阿里的警告信息。我郁闷了,啥玩意,为啥还可以,我不都设置密码了么。咋还执行呢?

想起前一天大佬提醒我要注意 ssh key 是否被人添加了免密登录的权限。其实我真的看了,
阿里云提示服务器访问恶意下载源

打开 vi authorized_keys 并没有任何东西。然后我顺带把其它 /root/.ssh/ 下的四个文件都翻了一遍。
才发现 known_hosts 文件中多了两个 IP 地址为新加坡的 ssh key , 我才明白为啥上面做了那一堆都没用了。

所以我解决上述问题的方法就是:

  1. 清空 crontab 未知的计划任务。
  2. 设置 redis 端口权限和账号密码(敲重点!)
  3. 清空未知的 ssh key

来源:https://learnku.com/articles/35888