1. 背景:年后,我们的客户反映其服务器root密码被非法重置了,导致服务无法进入root用户(由于没有sudo用户,所以也无法利用sudo进入root账户)。我们检查了客户的服务器,第一时间切断了服务器对公网开放的端口,检查服务器的异常连接ip地址,查找了可能残留的后台挖矿进程。
2. 被入侵的可能原因
服务器端口被扫描了并暴力破解了root密码(root密码过于简单,也未部署
3. 解决办法:重置root密码
服务器开机时,进入emergency model
参考以下章:https://www.cnblogs.com/du-z/p/10892659.html
利用服务器漏洞获取root权限,再修改root密码
利用本次的CVE-2021-4034 漏洞提权。
普通用户上传漏洞验证代码后,编译并执行,普通用户直接登录root用户,如下图。
几乎所有的linux系统
漏洞测试与分析:
1月25日,研究人员公开披露了在 polkit 的 pkexec 中发现的一个权限提升漏洞(CVE-2021-4034 ,也称PwnKit),它存在于所有主流的 Linux 发行版的默认配置中。受影响版本的 pkexec 无法正确处理调用参数计数,最终尝试将环境变量作为命令执行,攻击者可以通过修改环境变量来利用此漏洞,诱使 pkexec 执行任意代码,从而导致将本地权限提升为root。
摘自:https://cloud.tencent.com/developer/article/1944145
相关漏洞测试及分析可参考上述链接。
修复办法:
centos: sudo yum install polkit
ubuntu: sudo apt install policykit-1
PS :CentOS:polkit-0.115版本及以上为安全 ;Ubuntu下policykit-1- 0.105版本及以上为安全。
5. 计算服务器安全提示:
尽量不做服务器端口对公网的端口转发。如果要做,服务器端要做好防火墙规则。
使用Fail2Band等ip过滤器,防止密码被暴力破解。
用户密码使用数字+字母+符号组合密码,普通用户也需要设置较为复杂的用户名和密码。
关闭服务器不使用的端口。
原则上不给普通用户sudo权限。