服务器对外暴露 Redis 6379 端口并无鉴权,能执行命令吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
uiosun
V2EX    程序员

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

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

    自己的 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 未授权访问攻击方法了解一下
    itechify
        18
    itechify  
    PRO
       2023-03-22 16:53:36 +08:00 via Android
    印象新版本,通改配置+ ssh public key 漏洞已经没有了
    itechify
        19
    itechify  
    PRO
       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     Solana     2726 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 14:42 PVG 22:42 LAX 07:42 JFK 10:42
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86