您的位置:首页 > 数据库 > Redis

利用redis的未授权漏洞登陆远程主机

2018-02-13 21:19 423 查看
(1)redis是什么:
Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库
(2)redis的未授权访问漏洞是redis数据库的登陆设置密码,所以未开启用户认证,可以导致任意的用户可以访问目标服务器的情况下未授权访问redis以及读取、更改redis的数据,攻击者可以利用redis的相关方法在redis的服务器上写入公钥,进而可以使用对应的私钥登入目标服务器
二、      (1)漏洞产生的原因:
Redis的配置文件未开启授权访问,所以任何可以访问服务器的人都可以登陆
(2)系统存在该漏洞的后果
攻击者可以利用该漏洞向目标服务器中的root文件夹下写入ssh登陆需要的公钥文件,从而可以用ssh远程登陆并获得root权限
三、      漏洞的重现和利用
(1)   安装redis4.0.6
利用源码编译安装:在根目录下创建一个redis文件夹,redis放在该文件夹下,tar命令解压,make编译,用src下的redis-server打开redis服务



(2)   修改redis的配置文件redis.conf
将配置文件中的protected-mode后的yes改为no 而且配置文件中未要求使用密码登陆redis,所以可以直接登陆redis
(3)   安装ssh
用dnf installopenssh直接安装
打开ssh
Systemctl startsshd.service
修改文件夹/etc/ssh下的sshd_config配置文件



(4)   利用漏洞写入ssh证书并用ssh登陆目标服务器
用ssh-keygen产生一对公钥,默认存储目录是.ssh文件夹下的id_rsa和id_rsa.pub
 


在.ssh目录下将公钥复制进demo.txt文件



前后各两个回车是为将公钥追加到目标服务器的authorized_key文件后的格式
打开redis



将本地保存公钥的文件上传到目标服务器的redis数据库中并设置键值为invader



利用漏洞进入目标服务器的redis服务,并更改配置文件,将redis的持久化保存文件的位置更改为/root/.ssh/authorized_keys并保存



此时已经将包含公钥的键值对存储在了authorized_keys,可以利用ssh登陆目标服务器了



成功取得目标服务器的root权限,所以可以进行任意更改
(5)   如果公司的系统存在该漏洞那么该公司的系统很容易被进入,并取得最高权限,入侵者可以进行任意的更改,非常不安全
四、      用openvas扫描服务器漏洞
配置扫描目标



扫描结果:



可以看到有一个脆弱性为redisserver no password,



可以看到对该漏洞的总结,影响,解决方法,检查方法
该漏洞的nvt是redis server no password 后面是OID号

仅实验 谨实验
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: