背景
最近在弄redis未授权访问漏洞,所以分别在靶机和攻击机(控制机)中安装redis6.
靶机是我 的控制机的克隆机(未安装redis6之前的克隆,所以我两台都分别安装了redis6)
安装步骤
1.下载
下载地址在:redis.io 首页
现在已经有7了耶。
我安装的版本: 版本:redis-6.2.3
靶机:IP 151 安装Redis服务器(肉鸡)
控制机:IP 150 安装Redis客户端(黑客)
注:Redis官方并没有把这个当作是一个漏洞去修复,很早之前的版本就存在这样的漏洞可以被利用,可以将这个理解为用户配置不当所导致的漏洞。所以可能这个漏洞的复现和版本问题不大。
cd /usr/local/soft/
没有soft目录的首先mkdir进行创建(这种基本的命令后面就不多说了)
wget https://download.redis.io/releases/redis-6.2.3.tar.gz
2.解压压缩包
tar -zxvf redis-6.2.3.tar.gz
3.安装gcc依赖
Redis 是 C 语言编写的,编译需要 GCC。
Redis6.x.x 版本支持了多线程,需要 gcc 的版本大于 4.9,但是 CentOS7 的默认版本是 4.8.5。
查看 gcc 的版本:
gcc -v
果然不出所料,版本就是默认的4.8,所以需要升级。
升级 gcc 版本:
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
确认 gcc 的版本(在同一个窗口中!):
gcc -v
升级到了9.3.1
4、编译安装
ls
cd redis-6.2.3
make install
安装成功的结果是 src 目录下面出现服务端和客户端的脚本:(我这边安装的时间都比较长) redis-server redis-cli redis-sentinel
如下图所示:
5、修改配置文件
默认的配置文件是/usr/local/soft/redis-6.0.9/redis.conf 后台启动,不然窗口一关服务就挂了
将:
daemonize no
改成:
daemonize yes
下面一行必须改成 bind 0.0.0.0 或注释,否则只能在本机访问
bind 127.0.0.1
改成如下图所示:
如果需要密码访问,取消 requirepass 的注释,在外网(比如阿里云)这个必须要配置!(如果单纯为了演示漏洞,就需要配置,建议实际环境下,最好是用密码访问)
requirepass yourpassword
(注释掉就行)
6.使用指定配置文件启动 Redis
/usr/local/soft/redis-6.2.3/src/redis-server /usr/local/soft/redis-6.2.3/redis.conf
(特别注意,上面这两行是一句来执行)
netstat -an|grep 6379
7.进入客户端
/usr/local/soft/redis-6.2.3/src/redis-cli
8.停止 redis(在客户端中)
redis> shutdown
或者:
ps -aux | grep redis
kill -9 xxxx
9.配置别名的步骤
每一次都要运行下面的命令是不是太吃力了?
/usr/local/soft/redis-6.2.3/src/redis-server /usr/local/soft/redis-6.2.3/redis.conf
有没有什么办法可以更加方便呢?当然有啦,那就是配置别名!
vim ~/.bashrc
添加两行:
alias redis='/usr/local/soft/redis-6.2.3/src/redis-server /usr/local/soft/redis-6.0.9/redis.conf'
alias rcli='/usr/local/soft/redis-6.2.3/src/redis-cli'
效果如下图所示:
编译生效:
source ~/.bashrc
这样就可以用 redis 启动服务,rcli 进入客户端了
|