大概
攻击对象:Linux
漏洞需求:Redis以root权限运行(非必要)、Redis端口对外开放、Redis无密码
确认方法:redis-cli里查询dir参数及dbfilename参数【config get dir/ config get dbfilename】,若不正常,那基本是中招了
实现原理:感觉网上的说得很啰嗦。其实说白了就是利用Redis的数据库保存到文件来实现,修改保存文件的目录【dir】为/root/.ssh,文件名【dbfilename】为authorized_keys,保存,攻击者只需要插入带有公钥的数据,一旦redis执行dump,就会覆盖原有的authorized_keys,后果可想而知。如果ssh端口恰好是默认的22,那么您的朋友入侵者已上线。[doge]
预防
1、iptables限制6379端口的访问;
2、设置redis密码访问;
3、以非root用户运行redis;
4、尽可能的修改默认的22号端口(可能逃过一劫)
事后修复
> redis-cli
127.0.0.1:6379> config set dir ./
127.0.0.1:6379> config set dbfilename dump.rdb 【这是一般的默认值】
127.0.0.1:6379> save
随后马上修正/root/.ssh/authorized_keys文件
据说这个入侵已经成功干死超过10000个服务器~
Windows下应该也是有一定机会成功的,只是没有linux那么高成功率