V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
uiosun
V2EX  ›  程序员

服务器对外暴露 Redis 6379 端口并无鉴权,能执行命令吗?

  •  
  •   uiosun · 2023-03-22 13:46:31 +08:00 · 3963 次点击
    这是一个创建于 617 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己的 4H8G 小菜鸡,一周前,图方便直接对 0.0.0.0/0 暴露 6379 ,然后今天上去看缓存,发现有 backup1 这样的缓存。

    四个 string key ,里面分别存储了:

    1. wget 从某个链接获得 shell 文件,并执行 shell 文件
    2. bash + base64 反转,以 root 进行提权
    3. bash + base64 反转,以 root 设定 CRON 任务
    4. bash + base64 反转,以 root 设定另一个 CRON 任务

    Redis 本身处于容器,且是最新版。

    查看了服务器的七日监控,没有任何 CPU/RAM/IO 剧烈波动,与往常一致。

    进入系统层面 Cron 的 /var/spool/cron/* 目录,都没有新的 CRON 任务。

    想请教一下各位大佬,这样的四条命令,在我只有这个端口暴露时,能干啥?


    (我对攻防不是很了解,所以特地来请教一下。而且,每天都有人扫各种 IP 的各种端口吗……我对于这么快就被写入命令到缓存,感到害怕 😂)

    第 1 条附言  ·  2023-03-22 18:45:19 +08:00

    @zhongjun96 大佬在 5L 给出简单方案:

    利用 redis 的 config set 可以生成文件,上传密钥,就能连上你的机子

    @Va1n3R 大佬在 16L 给出进一步方案:

    #5 说过这是最简单的方案,复杂一点的有:

    1. 写入 Crontab 文件从而定时执行恶意命令,无需 ssh 端口开放。
    2. 利用 Redis 主从同步,无损写入二进制文件,利用手法:加载恶意模块,劫持系统 SO/DLL 等。

    @0x535 大佬实验后:

    redis 5.0 的可以成功,6.0 以后就限制了 dir 等重要配置的修改了

    @sunmlight 与 @joesonw 大佬也指出:

    加层验证没坏处, 万一又通过 docker 漏洞穿透到你宿主机 docker 有不少逃逸案例

    最后,@onemorechance 大佬指出,如果想了解更多可能,可以查查:

    redis 未授权访问攻击方法

    都感谢了一下,不成敬意。蟹蟹大家的指点。

    Redis 密码已经加了。感谢各位大佬的回复和指点,这次又学到了,万幸目前还没受到损失。

    26 条回复    2023-03-26 19:19:37 +08:00
    fengjianxinghun
        1
    fengjianxinghun  
       2023-03-22 13:49:28 +08:00
    docker 跑的 redis 大概率没事
    vagusss
        2
    vagusss  
       2023-03-22 13:50:15 +08:00
    还是加个密码吧
    uiosun
        3
    uiosun  
    OP
       2023-03-22 13:51:06 +08:00
    @vagusss 加一个,正在找目前版本的 Redis 配置,真的太刺激了,害怕
    uiosun
        4
    uiosun  
    OP
       2023-03-22 13:51:59 +08:00
    @fengjianxinghun 希望没事,目前也没发现问题,但不懂就不安心,来请教各位,太刺激了😂
    zhongjun96
        5
    zhongjun96  
       2023-03-22 13:54:16 +08:00   ❤️ 24
    简单就是利用 redis 的 config set 可以生成文件,上传密钥,就能连上你的机子了
    uiosun
        6
    uiosun  
    OP
       2023-03-22 14:03:57 +08:00
    @zhongjun96 芜湖!懂了懂了,感谢大佬
    8355
        7
    8355  
       2023-03-22 14:13:12 +08:00
    @zhongjun96 #5 专业
    GuryYu
        8
    GuryYu  
       2023-03-22 14:32:57 +08:00
    @zhongjun96 #5
    咨询一下大佬,如果攻击者攻击的是 docker 容器内的 redis 服务,且容器只对宿主机和公网开放了 6379 端口
    通过这种方式上传的密钥还能被远程攻击者连接上服务器吗
    keller
        9
    keller  
       2023-03-22 14:56:54 +08:00
    密钥是在容器里面,容器又没暴露 22 端口 他连个锤子
    datou
        10
    datou  
       2023-03-22 14:59:03 +08:00
    @GuryYu docker 里不开 ssh 就没戏
    0x535
        11
    0x535  
       2023-03-22 15:25:56 +08:00   ❤️ 1
    试了一下 #5 的方法,redis 5.0 的可以成功,6.0 以后就限制了 dir 等重要配置的修改了。
    Oktfolio
        12
    Oktfolio  
       2023-03-22 16:07:46 +08:00
    http://en2an.top/cleanfda/init.sh
    这个东西吧?我们生产环境中了
    hanyu2pomelo
        13
    hanyu2pomelo  
       2023-03-22 16:19:57 +08:00
    去年公司被端口扫描种了挖矿,就是通过 redis 这种
    sunmlight
        14
    sunmlight  
       2023-03-22 16:29:26 +08:00   ❤️ 1
    @GuryYu 加层验证没坏处, 万一又通过 docker 漏洞穿透到你宿主机呢
    ak47007
        15
    ak47007  
       2023-03-22 16:31:42 +08:00
    去年我的服务器也开了 redis 默认端口,无密码,后面被人挖矿了
    Va1n3R
        16
    Va1n3R  
       2023-03-22 16:35:24 +08:00   ❤️ 5
    @keller 送你一句话:"弱小和无知不是生存的障碍,傲慢才是"
    @datou @GuryYu
    #5 说过这是最简单的方案,复杂一点的有:
    1. 写入 Crontab 文件从而定时执行恶意命令,无需 ssh 端口开放。
    2. 利用 Redis 主从同步,无损写入二进制文件,利用手法:加载恶意模块,劫持系统 SO/DLL 等。
    onemorechance
        17
    onemorechance  
       2023-03-22 16:43:16 +08:00   ❤️ 1
    redis 未授权访问攻击方法了解一下
    oneisall8955
        18
    oneisall8955  
       2023-03-22 16:53:36 +08:00 via Android
    印象新版本,通改配置+ ssh public key 漏洞已经没有了
    oneisall8955
        19
    oneisall8955  
       2023-03-22 16:54:20 +08:00 via Android
    还是通过配置禁用修改配置的,总是印象,记不清🐶
    chengong
        20
    chengong  
       2023-03-22 16:54:45 +08:00
    随时随地 随随便便都提权你的服务器用来挖矿。
    qdzzyb
        21
    qdzzyb  
       2023-03-22 17:16:44 +08:00
    以前这么搞过,分分钟挖矿程序就给你安排上了
    joesonw
        22
    joesonw  
       2023-03-22 17:53:54 +08:00 via iPhone   ❤️ 1
    docker 有不少逃逸案例的,又不是虚拟机。
    paranoiagu
        23
    paranoiagu  
       2023-03-22 18:25:06 +08:00 via Android
    靠,redis 这漏洞。。。。。怕怕怕
    lscho
        24
    lscho  
       2023-03-22 18:39:36 +08:00
    @keller 容器本身是一个进程,安全程度是比不上虚拟机的。
    Eytoyes
        25
    Eytoyes  
       2023-03-22 19:20:42 +08:00
    IP 放出来让大家看看
    julyclyde
        26
    julyclyde  
       2023-03-26 19:19:37 +08:00
    @paranoiagu 这不是 redis 的漏洞
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3164 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:33 · PVG 21:33 · LAX 05:33 · JFK 08:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.