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