写点什么

服务器又被挖矿了,怎么防?

发布于: 2021 年 05 月 09 日

最近很多小伙伴服务器都被挖矿了,简单总结下在应急过程中,常遇到的一些被挖矿的特征,以及防护方法,工具后面会进行详细的介绍分享


问题所在


要防止被挖矿,首先要明白挖矿的本质


挖矿本质就是快速产出,利用可以利用的资源,实现快速产出,获取收益


为什么要明白这个道理,就是因为,挖矿的人,大多不会把时间花费在你的某台服务器上,大多做法是通过网络空间搜索引擎或端口扫描工具等,进行整个网段的批量扫描,根据扫描结果筛选出能够快速自动化拿到权限的机子,再去自动化跑脚本处理


比如我通过 fofa 直接搜索 redis,就可以拿到开放了 redis,并且可以直接登录的服务器的列表,那我肯定直接导出列表,针对这些 ip 去拿权限



常见特征


这种主要出问题的地方就是未授权漏洞,常见的未授权漏洞如下:

  • Hadoop 未授权——50070

  • Mongodb 未授权——27017

  • Redis 未授权——6379

  • Elasticsearch 未授权——9200

  • Memcached 未授权——11211

  • Zookeeper 未授权——2181/2888/3888

  • JBOSS 未授权——8080

  • Docker 未授权——2375

  • Rsync 未授权——873


还有 Gitlab、Jenkins、NFS、Samba 等都有某些版本或因为配置不当存在未授权可访问的漏洞



除未授权漏洞之外,最多的被挖矿的,就是弱密码,包括:

  • 服务器系统用户弱口令

  • web 弱口令

  • 中间件 web 管理端弱口令

  • 应用弱口令


比如常用的 phpMyAdmin 弱口令、一些测试服务器 web 测试账号弱口令等


除以上两种,还有一些利用条件不高的高危系统或组件漏洞,也需要注意


事前自检


针对这种问题,最好的防护方法就是自己做扫描检测,在 fofa、shodan、zoomeye、censys 等网络搜索引擎,直接输入自己的服务器 ip 地址,即可看到服务器暴露了哪些服务、哪些端口,从而进行确认自己服务器的安全问题可能出现在那里



当然你也可以通过 nmap、zenmap、unicornscan、nast、msscan 等端口扫描工具来查看自己服务器对外的端口,确认服务器的安全状况,该加授权访问的加授权,该加白名单的加白名单


对于弱密码的情况,如果是可控的情况,肯定是直接设置不允许弱口令,比如 ssh,可以通过修改系统口令复杂度要求来完成,对于接手的服务器,或系统,可以通过一些工具,比如 xscan、f-scrack、hydra、hscan 等类型的工具,对弱口令进行扫描


若是 web 端的弱口令,我常用的方法是通过 brup+字典的形式进行扫描,你也可以通过 Cheetah、WebCrack 等工具来测试,前提是获得内部许可


针对系统及组件的漏洞,可以通过 Nessus 自己进行安全检测,也可以通过审计工具 lynis 对服务器安全基线进行扫描


应急恢复


若不幸,已经被挖矿,那只好紧急处理,处理的原则就是尽快恢复业务


云服务器就相对简单了,如果是平常有做定时快照,及异地数据备份的,先将挖矿服务器做快照备份,用于事后复盘,然后恢复快照恢复数据及业务


如果是物理服务器就比较麻烦了,如果业务不能长时间中断,可以考虑先将业务切换到其他服务器,然后再进行排查清理


常见 的排查工具如下:

  • GScan

  • rkhunter

  • FastIR


等,都可以生成应急报告,根据报告进行确认及排查处理


总结:

进攻是最好的防守,只有自己先了解了自己的弱点所在,才能做到更好的防御


发布于: 2021 年 05 月 09 日阅读数: 16
用户头像

运维技术社区,坚持运维技术研究与分享 2020.07.14 加入

「运维研习社」技术社区发起人,同名公众号「运维研习社」、知识星球,专注运维技术研究分享,坚持原创,希望能和大家在运维路上结伴而行!

评论

发布
暂无评论
服务器又被挖矿了,怎么防?