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

🆘 江湖救急 被 CVE-2022-22947 攻击了

  •  
  •   Hug125 · 114 天前 · 4608 次点击
    这是一个创建于 114 天前的主题,其中的信息可能已经有所发展或是发生改变。

    spring-cloud-gateway 服务被攻击,启动加载路由配置的时候报错

    GatewayRouteConf(filters=[{"args":{"name":"Result","value":"#{new java.lang.String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(\"bash -c {echo,d2hvYW1p}|{base64,-d}|{bash,-i}\").getInputStream()))}"},"name":"AddResponseHeader"}], predicates=[], order=null, uri=http://aaaa.aa, serviceId=ee, valid=1)
    2022-03-04 17:30:16.725  INFO [rich-gateway,,,] 12586 --- [           main] ConditionEvaluationReportLoggingListener : 
    

    重点是

    exec(\"bash -c {echo,d2hvYW1p}|{base64,-d}|{bash,-i}\").getInputStream()))}"}
    

    目前除了升级 gateway 版本有没有什么办法能把服务启动起来 生产环境已经挂了 2 个小时了

    第 1 条附言  ·  114 天前
    目前恢复服务了,被人把东西写到 redis 里了。
    目前在 nginx 里拦截了所有带 actuator 的请求。
    23 条回复    2022-03-05 18:46:56 +08:00
    ersic
        1
    ersic  
       114 天前 via Android
    pigx 官网看到的,不知道对你有没有帮助。
    https://mp.weixin.qq.com/s/-XVH4QHyH74yshHA4YVeQw
    ersic
        2
    ersic  
       114 天前
    @ersic 看最后的图
    wolfie
        3
    wolfie  
       114 天前
    endpoints.enabled=false
    management.endpoint.gateway.enabled = false

    试试
    Hug125
        4
    Hug125  
    OP
       114 天前
    @wolfie #3 这个尝试关掉了 没有效果
    不过关掉能防另一个漏洞
    Hug125
        5
    Hug125  
    OP
       114 天前
    @ersic #1 感谢 我发给我们运维工程师看下
    zliea
        6
    zliea  
       114 天前 via iPhone
    把 actuator 关了或者把 server port 个 management port 区分开,后者不暴露互联网
    yibo2018
        7
    yibo2018  
       114 天前
    从报错信息是怎么看出来被 CVE-2022-22947 攻击了,求教
    Hug125
        8
    Hug125  
    OP
       114 天前
    @yibo2018 #7 是运维工程师判断的,综合了阿里云的报警吧
    ZSeptember
        9
    ZSeptember  
       114 天前
    太惨了
    ZSeptember
        10
    ZSeptember  
       114 天前
    加载路由的时候报错了,把被污染的路由配置删掉?
    Hug125
        11
    Hug125  
    OP
       114 天前
    @ZSeptember 路由配置是配置文件里写的,配置里没有这个命令
    同样的包 在本机、测试环境都没事 在生产域名下的服务器都起不来
    phithon
        12
    phithon  
       114 天前
    动态添加的路由理论上重启下 spring cloud gateway 服务就好了呀?
    如果不能重启,可以手工删除掉这条路由:

    1. 访问 http://ip/actuator/gateway/routes 找到你那条恶意的路由的 id ,就是 route_id 那个字段的值,比如 test
    2. 向 http://ip/actuator/gateway/routes/test 发送 DELETE 请求,删除这条路由
    3. 向 http://ip/actuator/gateway/refresh 发送 POST 请求,重新刷新路由

    就好了。
    这些处理完了以后,按照 3 楼的方法把 actuator 禁用掉,后面就填加不了新的了。
    phithon
        13
    phithon  
       114 天前
    以我对这个漏洞的理解,这个配置应该是加载内存里的,但看你的描述是“启动不起来”,这我就不知道了。
    Hug125
        14
    Hug125  
    OP
       114 天前
    @phithon #12 现在 gateway 启动不起来,这个路径没法打开
    phithon
        15
    phithon  
       114 天前
    @Hug125 我猜测启动不起来的原因不是这个漏洞,而是因为这个漏洞,你的服务器被控制了,你的文件或者代码被改了,或者被上木马了啥的
    threedream
        16
    threedream  
       114 天前
    报警吧
    Hug125
        17
    Hug125  
    OP
       114 天前
    @phithon 是的 被人把东西写到 redis 里了,把 redis 清空了,现在起来了 用#1 的办法在 nginx 拦住了所有带 actuator 的请求
    pengtdyd
        18
    pengtdyd  
       114 天前   ❤️ 3
    不要用新版本,用老版本-----------稳定!!!!!------某些人的口头禅
    wolfie
        19
    wolfie  
       114 天前
    https://wya.pl/2021/12/20/bring-your-own-ssrf-the-gateway-actuator/

    前两天中招,而且脚本很贴心的添加这个域名的转发规则,然后通过这个域名找到注入方式。
    hengyunabc
        20
    hengyunabc  
       114 天前
    spring boot 最好是把 endpoint 配置为单独的端口,不对外暴露。官方在 actuator 上总是各种打补丁,独立端口才是最优解。
    chawuchiren
        21
    chawuchiren  
       114 天前
    是不是只要把 actuator/gateway 节点关闭就好了?
    thirteen7
        22
    thirteen7  
       114 天前
    Hug125
        23
    Hug125  
    OP
       113 天前 via iPhone
    @pengtdyd 后续会升级版本的
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4359 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 958ms · UTC 03:01 · PVG 11:01 · LAX 20:01 · JFK 23:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.