Redis被攻击纪实

一、前言

声明:本文仅供技术交流使用,严禁采用本文的方法进行任何非法活动。

上周新来的同事分享Redis的原理和机制,想起2017年的时候测试环境Redis被攻击,最后只能重新安装服务器,今天试验一把利用Redis漏洞进行攻击,只有理解了别人是怎么攻击的,才能更好地进行防范。

二、被攻击机器环境搭建

IP: 120.55.95.55OS: Linux CentOS7.6     Redis5.0.9

1、编译安装Redis

Redis被攻击纪实_第1张图片

注:需要安装tcl,并且在编译时指定MALLOC=libc,否则会各种报错。

2、修改redis.conf

#bind 127.0.0.1protected-mode nodaemonize yes注:这里以非保护模式启动Redis,Redis4.0以后版本对安全有所加强,默认安装好后不将保护模式去掉,远程是无法连接的。

3、启动redis 

./redis-server ../redis.conf

三、攻击机器环境搭建

IP:118.178.255.158OS:Red Hat Enterprise7.9 

1、安装Redis客户端

Redis被攻击纪实_第2张图片

2、测试Redis连接是否OK

redis-cli -h 120.55.95.55

四、进行攻击

1、生成本机公钥

ssh-keygen

2、将公钥文件写入Redis

注:第一步将公钥文件公钥内容前后分别加上两个换行,否则上传的公钥无效,第二步将处理后的公钥内容设置到Redis Key为crackit中去。

3、将公钥写入authorized_keys文件

注:上面语句用于动态修改Redis数据存放路径及文件名。

~/.ssh/authorized_keys内容如下

Redis被攻击纪实_第3张图片

注:数据文件中本来key和value是连着的,但我们写入crackit的值时加了两个换行符,这样公钥不会被key干扰,就是有效的。

4、使用自己的私钥登录被攻击机器

ssh [email protected]

然后你想做什么都可以了。。。。

五、真实案例

1、2017年时候测试环境安装的是Redis4.0版本(或者更低,记不太清了),默认安装6379端口可以远程访问,然后被黑了,被人家做为挖矿机,他们太狠了,一定要把我CPU耗尽,搞得别的程序都跑不了(这样别人不就发现了吗,不能控制CPU的占用情况吗?),当时只截取了Redis被注入一段代码。

Redis被攻击纪实_第4张图片

2、刚申请的测试机120.55.95.55立马被其他人黑了

机器Load

Redis被攻击纪实_第5张图片

Redis被注入:

注:忘记截屏了,重启了Redis,那个注入的key找不到了

信任登录被加了其它公钥

注:这台机器先放着给他用两天,有空再观察一个情况,今天还要做系统发布。

你可能感兴趣的:(存储,redis,数据库,缓存)