最近很多小伙伴服务器都被挖矿了,简单总结下在应急过程中,常遇到的一些被挖矿的特征,以及防护方法,工具后面会进行详细的介绍分享。
问题所在
要防止被挖矿,首先要明白挖矿的本质
挖矿本质就是快速产出,利用可以利用的资源,实现快速产出,获取收益
为什么要明白这个道理,就是因为,挖矿的人,大多不会把时间花费在你的某台服务器上,大多做法是通过网络空间搜索引擎或端口扫描工具等,进行整个网段的批量扫描,根据扫描结果筛选出能够快速自动化拿到权限的机子,再去自动化跑脚本处理
比如我通过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
等,都可以生成应急报告,根据报告进行确认及排查处理
总结:
进攻是最好的防守,只有自己先了解了自己的弱点所在,才能做到更好的防御
本文转载自微信公众号「运维研习社」,可以通过以下二维码关注。转载本文请联系运维研习社公众号。