源码安装redis-3.2.11
redis介绍
Redis是一种开源的,内存中的数据结构存储系统,可用作数据库,消息代理或缓存。由于它是在在受信任的环境中访问,因此不应在Internet上公开。但是,一些Redis服务绑定到公共接口,甚至没有密码身份验证保护。
在某些情况下,如果Redis使用root帐户运行,攻击者可以将SSH公钥文件写入root帐户,直接通过SSH登录到受害服务器。这会允许黑客获得服务器权限,删除或窃取数据,甚至导致加密勒索,严重危及正常的业务服务
在正式开始介绍复现过程前,先说明一下我复现的是最严重的漏洞利用情况即以root身份登录redis服务写入ssh公钥实现使用ssh免密登录受害主机。现在先说明一下SSH免密登录的原理(已经了解的童靴们可以直接跳过hhh):
SSH提供两种登录验证方式,一种是口令验证也就是账号密码登录,另一种是密钥验证也就是我们想要的免密登录了,这里我只简单说一下密钥验证的原理。
所谓密钥验证,其实就是一种基于公钥密码的认证,使用公钥加密、私钥解密,其中公钥是可以公开的,放在服务器端,你可以把同一个公钥放在所有你想SSH远程登录的服务器中,而私钥是保密的只有你自己知道,公钥加密的消息只有私钥才能解密,大体过程如下:
- (1)客户端生成私钥和公钥,并把公钥拷贝给服务器端;
- (2)客户端发起登录请求,发送自己的相关信息;
- (3)服务器端根据客户端发来的信息查找是否存有该客户端的公钥,若没有拒绝登录,若有则生成一段随机数使用该公钥加密后发送给客户端;
- (4)客户端收到服务器发来的加密后的消息后使用私钥解密,并把解密后的结果发给服务器用于验证;
- (5)服务器收到客户端发来的解密结果,与自己刚才生成的随机数比对,若一样则允许登录,不一样则拒绝登录。
安装环境
- 服务器环境:liunx/centos
- 下载redis源码
相关命令
wget http://download.redis.io/releases/redis-3.2.11.tar.gz
tar -zxvf redis-3.2.11.tar.gz
make
ll src/redis*
#执行完毕后,进入src目录:
cd src/#将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了)
cp redis-server /usr/bin
cp redis-cli /usr/bin#返回目录redis-3.2.11,将redis.conf拷贝到/etc/目录下
cd
cp redis.conf /etc/sudo make install//将redis拷贝到系统执行目录下
which redis-server//查看redis安装目录
redis-server --help
修改redis配置项目
编辑etc中的redis配置文件redis.conf,如下图所示
Vim redis.conf
daemonize 的值改成yes //后台启动
修改redis默认端口号 7200
这样可以去掉ip绑定,允许除本地外的主机远程登录redis服务
关闭保护模式,允许远程连接redis服务
Redis启动命令
使用/etc/目录下的reids.conf文件中的配置启动redis服务
redis-server /etc/redis.conf
或者
sudo /usr/local/bin/redis-server /home/vagrant/config/redis/redis.conf
扩展
复制虚拟机,一个作为靶机,一个作为攻击端
至此漏洞环境便已经搭建完毕,此时的redis服务是可以以root用户身份远程免密码登录的。
查看两机器的ip
虚拟机A(192.168.0.146)为靶机,虚拟机B(192.168.0.147)为攻击端
在A中开启redis服务:redis-server /etc/redis.conf
在主机A中执行mkdir /root/.ssh命令,创建ssh公钥存放目录
在B中生成ssh公钥和私钥,密码设置为空
进入.ssh目录:cd .ssh/,将生成的公钥保存到1.txt
将1.txt写入redis
远程登录主机A的redis服务:redis-cli -h 192.168.0.146 并使用CONFIG GET dir命令得到redis备份的路径:
更改redis备份路径为ssh公钥存放目录(一般默认为/root/.ssh)
设置上传公钥的备份文件名字为authorized_keys:
开启主机A和主机B的ssh服务(Fedor默认ssh服务关闭),命令为systemctl start sshd.serveice:
在主机B使用ssh免密登录主机A:ssh -i id_rsa root@192.168.0.146,成功登录:
我们就成功利用redis未授权访问漏洞实现了ssh免密登录目标服务器,接下来就可以使用ssh服务来进行下一步的渗透工作
参考链接 :
redis安装 : https://www.jianshu.com/p/6f9ae4f2556c
centos7.5 如何安装redis并在后台运行 : https://www.jianshu.com/p/2eee6d2c71b3
黑客“实战”内容之Redis未授权访问漏洞复现 :https://www.toutiao.com/a6750563768033346060/
源码安装redis-3.2.11相关推荐
- centos环境访问php显示源码,CentOS 6.8 搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展...
一.安装Redis 1.下载redis源码包,将源码包放到/usr/local/src/目录下 这里用的是redis-4.0.2.tar.gz 2.进入src/目录 cd /usr/local/src ...
- mysql5.7.11源码安装,mysql 5.7.11 源码安装
mysql5.711安装 1.安装boost包 下载地址http://sourceforge.net/projects/boost/files/boost/ 2.解压boost_1_59_0.tar. ...
- debian php redis,debian7.7环境下 源码安装redis以及phpredis扩展
先进入到redis的官网,下载redis安装包 wget http://download.redis.io/releases/redis-3.0.5.tar.gz 放到/usr/local/src目录 ...
- Centos7.2源码安装redis
1.下载redis包(此处可到官网查看,有相应的命令) wget http://download.redis.io/releases/redis-5.0.3.tar.gz 2.解压之后,并进行make ...
- centos7源码安装mysql报错_CentOS7 下源码安装MySQL数据库 8.0.11
本文主要向大家介绍了CentOS7 下源码安装MySQL数据库 8.0.11,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. CentOS7 下源码安装MySQL 8.0.11 系 ...
- 国产银河麒麟系统源码安装Openvas
国产麒麟系统源码安装Openvas 1.银河麒麟安装所需安装源 2.执行更新命令: 3.执行安装命令: 4.安装源码包libmicrohttpd-dev 5.从github下载openvas的源码包, ...
- linux python源码安装,linux上源码安装python
以下例子基于python 2.7.9,其他版本同理.# 1.下载python# wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tg ...
- LNMP源码安装教程
NGINX源码安装 # 切换阿里的源# yum -y install wget# sudo mv CentOS-Base.repo CentOS-Base.repo.bak# sudo wget -O ...
- LNAMP服务器环境(源码安装)
在安装前先看下它们安装时所需要的依赖库:http://www.cnblogs.com/fps2tao/p/7699448.html 1.nginx源码安装 下载:http://nginx.org/en ...
- 源码安装tensorflow
因为官网上的源码安装教程基本也是使用的Python2,所以我这里使用Python3来安装 操作系统:xubuntu17.04 64位 下载bazel,下载页面为https://github.com/b ...
最新文章
- java接口如何定义常量 c_java接口定义常量研究
- 2、ShardingSphere 之 Sharding-JDBC实现水平分表
- 解决mysql表不能查询修改删除等操作并出现卡死
- 边际概率条件概率_数据科学家解释的边际联合和条件概率
- 计算机数据库原理试题,计算机科学与技术专业《数据库原理》模拟试题(B)
- 利用IP组播技术传输视频信息
- java图形界面重写坐标_重写自由软件和计算机图形的历史
- 在C#中用RX库和await来实现直观的状态机
- php 去掉字符串的最后一个字符
- Win10应用商店无法连接解决方案
- HTML案例之注册页面
- php使用blob加密视频,javascript实现blob加密视频源地址的方法
- servlet原理及访问时序图
- 利用Resource Hacker简单去除WinRar广告
- vscode下使用gcc进行Npcap网络编程开发的环境配置
- 计算机上分辨率怎么设置在哪里设置方法,win7分辨率怎么调|win7如何设置分辨率...
- python中扑克牌类设计_一摞Python风格的纸牌
- 腾讯面试题:64匹马,8个跑道,选出最快的四匹马
- 软件研发费用怎么算? 如何报价? 是否贵了?
- maya2018点输入序列号后不弹出激活页如何解决
热门文章
- 读书笔记∣疯狂XML讲义
- Java设计模式透析之 —— 单例(Singleton)
- 设计模式解密(7)- 代理模式
- 【构造】Gym - 101411F - Figure ans Spots
- 多线多IP的服务器配置
- Laravel5中基于jQuery实现分层级的类目树结构方法
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问...
- 2014届去哪儿校园招聘笔试题
- 网页设计与网站组建标准教程(2013-2015版)
- 删除文件夹(包括子文件夹)