zoukankan      html  css  js  c++  java
  • Redis非授权访问获取webshell及相关问题

          最近,在乌云上看到有人利用Redis非授权访问获取webshell的案例。其实,之前在安全论坛上有看到相关的介绍文章。好吧,我也打算试用一把,在测试过程中把遇到的问题及解决办法记录一下。指不定有些朋友可以用的上,当然,仅作交流,请勿用于非法途径

          什么是Redis呢?我摘抄一段百度百科中的文字:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

          我主要在自己的kali虚拟机上测试,之前没有安装Redis相关的程序,第一步肯定是安装了。具体可以参考官网链接:http://redis.io/download。用SHODAN搜索了一下,找个案例实验一下。

          为了保护隐私,文章后续涉及到具体IP地址,我都会打上马赛克。

          如下图所示,我找到了一个非授权访问的Redis数据库。具体就是使用redis-cli命令来进行连接。

    38

          连上之后,我们看下数据库中的key值。具体命令如下:

    keys *

          得到如下图所示结果:

    39

          可以看到,有2167项内容。咱们开始获取webshell的过程。在这里,我们需要知道web服务器的解析路径。这个可以猜测或者比较幸运的是主站正好有类似phpinfo这样的网页可以访问。在这里我找到一个info.php的页面,正好得到网站路径的绝对地址。

          执行webshell的几条命令如下:(我得到的网站路径的绝对地址为/data/www/ecstore/)

    config set dir /data/www/ecstore/
    
    config set dbfilename chopper.php
    
    set webshell "<?php phpinfo(); ?>" 
    
    save

          命令执行完成之后,一般情况下就可以访问webshell了,也不排除特殊情况,如下图所示:

    41

          这个是什么问题呢?我后续写入了一个test.txt的文件,然后下载发现,Redis数据库执行save后会把内存中存在的所有数据都会保存到磁盘,这样就导致想要保存的webshell文件过大,然后不能执行了。那么,有什么好办法解决?可以先把Redis数据库中的内容全部清除,再写入webshell。这样就可以成功了。注意一点,还是首先备份一下Redis数据库中的内容,然后写入webshell成功后,再次恢复Redis数据库中的内容。本着不破坏的原则,应该是要这么做的。

          在这里推荐备份和恢复Redis数据库的工具redis-dump,具体可以参看GitHub上的地址:https://github.com/delano/redis-dump

          首先来个备份,保存的是json格式。如下图所示:

    40

          接下来清空Redis数据库,然后执行webshell写入过程。清空Redis数据库的命令如下:

    FLUSHALL

          最后,再次恢复Redis数据库中的内容:

    42

          这次,得到的webshell就可以执行了。最后需要注意的地方,webshell上传成功且可以执行之后,如果恢复Redis数据库,你会发现之前能够成功执行的webshell又不能执行了。貌似恢复的Redis数据库中的内容会覆盖webshell中的内容。所以,先上传个小马,然后再用小马上传个大马,这样小马不行了,还可以用大马。

          参考链接:

          http://www.secpulse.com/archives/5357.html

          http://www.secpulse.com/archives/5366.html

     

  • 相关阅读:
    linux下shell显示-bash-4.1#不显示路径解决方法
    update chnroute
    An error "Host key verification failed" when you connect to other computer by OSX SSH
    使用dig查询dns解析
    DNS被污染后
    TunnelBroker for EdgeRouter 后记
    mdadm详细使用手册
    关于尼康黄的原因
    Panda3d code in github
    Python实例浅谈之三Python与C/C++相互调用
  • 原文地址:https://www.cnblogs.com/hiccup/p/4468385.html
Copyright © 2011-2022 走看看