记一次阿里云被挖矿处理记录

摘要
莫名其妙的服务器就被攻击了,又被薅了羊毛,当做免费的挖矿劳动力了 。
一、起因
上班(摸鱼)好好的,突然收到一条阿里云的推送短信,不看不知道,两台服务器被拉去作为苦力,挖矿去了 。这不是耽误我摸鱼吗,再说你挖到的矿币又不带我分,岂能忍 。本着对公司负责任的态度(实在没办法),这不收拾一下过分的挖矿脚本,对不起这么多年积攒的专业知识 。
登录服务器,top 一下,ps 一下,-l 一下,好家伙,只看到 CPU 异常占用了,却没发现到底是哪个玩意贪了我这么多资源 。与以往的不太一样啊(你特么在逗我?) 。
按照以往的经验,ps -aux --sort=-pcpu|head -10 一下,贪渎者肯定原形毕露 。难不成穿了个马甲 。仔细分析,可能不仅仅是马甲这么简单,更有可能是隐身衣 。使出万能的百度大法,果然有几篇秘籍指出问题,一一对照下,只能发现大概,定位不到最终的“宝藏”地点 。看来百度不行,得一下了 。这次秘籍多了起来,给出了一项专门破解隐藏进程的功法 。
二、寻“宝”
是一个集成了 300 多个最常用 Linux 命令和工具的软件 。甚至还集成了一个 http 服务器和服务器,集成的包大小只有 1M 左右 。有人将称为 Linux 工具里的瑞士军刀 。简单点说就是一个集成了许多 Linux 工具和命令的大的工具箱 。在嵌入式软件中,有着广泛的运用 。
所以,下载 ,安装:
$ wget https://busybox.net/downloads/binaries/1.30.0-i686/busybox$ mv busybox /usr/bin/busybox$ chmod +x /usr/bin/busybox
查看基本功能
$ busybox --help
使用瑞士军刀查看一下进程信息
$ busybox top
作祟者原型毕露,有个 /bin/ 进程,占用过高的 CPU 使用
同时使用查看一下程序端口占用
$ netstat -anp | grep ESTAB
结果如下:
可以看到有一个程序占用端口 14444,连接的ip为 217.182.169.148,却并没有打印出程序的进程号,在搜索一下,ip 为法国的,基本确定入侵使用的端口为 14444,先把端口禁用掉 。
三、“六娃”的能力
既然确定是 /bin/,那就需要找出这个玩意是怎么具有“六娃”的能力,又是如何进行挖矿的 。
首先可以确定的是 /bin/ 是一个二进制执行程序,那就可以看看它的动态库依赖关系
$ ldd /bin/daemon
此时还未发现有任何异常的结果(请原谅眼神不好使,四个眼睛都没发现问题)
既然 ldd 无法找出异常,祭出大招,看看 /bin/ 所执行的系统调用
$ strace /bin/deamon

记一次阿里云被挖矿处理记录

文章插图
好家伙,不看不知道,居然有一个 ld.so.,来了个预加载 。
一般来说,预加载 so 有两种方式:
修改/etc/ld.so.配置文件,这种方法对配置修改后运行的进程有效,而无法影响已经在运行的进程启动进程前设置环境变量,此方法只对当前进程生效
可以影响程序的运行时链接,它允许定义在程序运行前优先加载的动态链接库,通过这个环境变量,可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数 。
进程在启动后,会按照一定的顺序加载动态库:
从上面的结果来看,加载了一个 /usr/local/lib/.so 动态库,从上面的 ldd 返回结果也看到了这个动态库,再仔细一看,这名字,不就是 +hider 。
.so,Hide aunder Linux using the ld . 官方的解释,本来可能只是作者觉得一个好玩的玩意,却被别有用心的人拿来做坏事 。
找到这家伙,那好办了,先把它直接干掉 。