此次服务器被植入挖矿程序发现起来较为巧合,首先是上周三开始,我通过sonatype/nexus3搭建的仓库间歇性崩溃,但是每次重新start一下也能直接使用所以没有彻底清查,去docker logs里查看发现是执行bash命令和powershell命令出错,没有想明白是什么原因。

  后来恰好ES更新7.0版本了,我一看“呦呵,7.0里面连type都没有了?”赶紧跟个风,于是把我运行很长时间的ES5.6+kibana5.6的镜像删除了,去官网pull了最新的ES和kibana镜像。在启动的过程中ES始终无法启动,我觉得似乎是nofile和nproc设置的问题,众所周知,ES创建进程和打开文件还是非常多的,也许默认值nproc=1024不太够?于是将limits.conf中的nproc改为64000,nofile改为102400,sudo reboot。ES7启动!

  之后两天相安无事,第三天突然ES程序崩了,由于我ES镜像设置的always restart,所以这就奇怪了,想连上服务器排查问题,发现ssh服务器被拒绝。

  ssh_exchange_identification: read: connection reset by peer

  这就奇怪了,好好的服务器怎么ssh不上去了呢,当时以为是ssh_server崩了,于是重启服务器,重启后一切正常。直到2天后复现了此错误。

  搜索之后发现此问题常出现于fork bomb,无限创建进程导致系统资源被占满,所以连接时没有资源才拒绝访问,过了一段时间,突然ssh上去了,执行ps -aux 发现了大量的bash任务

  bash -c "107.174.47.156/xxxxxxx.sh"

  搜索此IP,发现已经被几个人标记为:

Reported on  Mar,  :: PM

This Server spreads mining malware and hacked our Server.

This Server spreads mining malware and hacked our Server. http://107.174.47.156/mr.sh http://107.174.47.156/2mr.sh http://107.174.47.156/11 I Think this is proof enough

Reported on  Apr,  :: PM

Server is hacking and mining crypto on hacked nodes

Server is hacking and mining crypto on hacked nodes

Reported on  Apr,  :: AM

Mining Hacker

Mining Hacker

  确定中招了,侥幸的是,虽然此台服务器提供了很多的服务,但是除了kubernetes以及docker以外,全都是通过容器来提供的,那么就给我排查提供了不小的帮助。在服务器运行过程中,这些容器中绝大部分都是通过official认证的官方镜像下载的,小部分是通过dockerfile自己创建的,其中包含es,kibana,mysql,centos,ubuntu等等,还有少量几个是直接pull曾被至少1K人下载过的容器。其中包含pause以及sonatype/nexus3。

  先说pause,我在9台服务器上部署了kubernetes集群,只有提供服务的这台节点出现了此问题,所以应当不是pause容器的问题,那么只剩sonatype/nexus3了。说到这个镜像,此镜像其实比较活跃,每次nexus3版本更新都会更新,并且用户名就是sonatype,虽然没有official认证的字眼,但我本人一直觉得应该比较靠谱。

但是有两个疑点:

1、此镜像不提供Dockerfile,也就是说它要么是通过docker commit实现的,要么就是Dockerfile引用了某些不能被人所知的东西不愿意公开。(后来在我自己重新打包nexus3镜像的过程中,发现打包此镜像并不需要多复杂的shell命令,如果熟练的话完全可以通过dockerfile的方式进行创建,这样不提供Dockerfile就显得更加可疑了。)

2、通过docker logs查看日志时发现,此容器在不停的尝试执行bash命令和powershell命令。而其他容器都没有此问题。

3、这个容器启动时在不停的更新插件,这些插件不清楚是干什么的,如果某个插件的定位被篡改,那么很容易被植入某些奇怪的代码。

所以我觉得应当是此镜像的问题。加上这个用户一直未被official认证,所以我放弃使用此镜像构建maven仓库,改为手动容器构建。1天内仍未复现挖矿问题,待观察几天后可以下定论了。这个容器我使用了很长时间,但是直到上周三前还没出现过问题,所以我怀疑是它更新插件的代码早就被篡改了,新下下来的插件包含挖矿程序。我到现在依旧不认为pull次数超过10M的镜像有这么大问题会没人发现,所以我觉得可能是恰好我下载镜像的版本插件更新的IP有问题?本来没问题但是IP卖给别人了?DNS出错了?但是我建议使用此镜像的都清查一下,反正执行个 ps -aux | grep bash也不是什么麻烦事。

总结:下载非official的镜像需谨慎即使是这个pull了超过10M次的镜像,建议限制其内存以及CPU使用量。并且定期查看系统资源占用,及时发现问题。

更新:自建的mvn仓库并没有持续更新插件以及频繁创建powershell和bash,目前第三天使用良好,系统也没有其他程序创建挖矿程序,基本确定是那个container的问题了。极其建议没有官方镜像的功能使用团队或者自建镜像,尽量不要下载非official认证的镜像!

PS:我这个容器好像没有上报给Docker hub就被我删了,也没留什么图,现在去报告好像没啥证据,如果有人复现了此问题建议去Docker Hub官方提供截图证据。

服务器被疑似挖矿程序植入,发现以及解决过程(建议所有使用sonatype/nexus3的用户清查一下)的更多相关文章

  1. linux服务器报No space left on device错误的解决过程记录

    起因 今天在本地提交了点代码,但到服务器上git pull的时候提示No space left on device,第一反应是猜想可能硬盘满了(很有可能是log导致的),不过想想又觉得不太可能,这台服 ...

  2. 记一次服务器被植入挖矿木马cpu飙升200%解决过程

    线上服务器用的是某讯云的,欢快的完美运行着Tomcat,MySQL,MongoDB,ActiveMQ等程序.突然一则噩耗从前线传来:网站不能访问了. 此项目是我负责,我以150+的手速立即打开了服务器 ...

  3. 详情介绍win7:编辑文件夹时提示操作无法完成,因为其中的文件夹或文件已在另一个程序中打开的解决过程

    我们在使用电脑中,总会遇到下面这种情况: 那怎么解决呢,现在就开始教程: 在电脑的底下显示各种图标那一行点击右键,再选择“启动任务管理器” 接下来你就可以对你刚刚要操作的文件进行重命名.删除等操作啦! ...

  4. Linux挖矿程序kworkerds分析

    0×00 背景概述 近日,同伴的一台Linux服务器中了kworkerds挖矿程序,随即对挖矿程序进行了处理与分析. 0×01服务器现状 进入服务器之后通过top命令,没有发现有占用CPU资源过高的进 ...

  5. 阿里云服务器被挖矿程序minerd入侵的终极解决办法[转载]

    突然发现阿里云服务器CPU很高,几乎达到100%,执行 top c 一看,吓一跳,结果如下: root 386m S : /tmp/AnXqV -B -a cryptonight -o stratum ...

  6. SSH 暴力破解趋势——植入的恶意文件属 DDoS 类型的恶意文件最多,接近70%,包括 Ganiw、 Dofloo、Mirai、 Xarcen、 PNScan、 LuaBot、 Ddostf等家族。此外挂机、比特币等挖矿程序占5.21%

    SSH 暴力破解趋势:从云平台向物联网设备迁移 | 云鼎实验室出品 from: http://www.freebuf.com/articles/paper/177473.html 导语:近日,腾讯云发 ...

  7. windows服务器解决挖矿程序问题

    前几天发现服务器报警,cpu使用率已达100%,查资料知道正是最近比较流行的挖矿程序在捣鬼.我们使用的是阿里云的服务器,操作系统是windows server.网上有大量的资料讲如何处理,我把自己处理 ...

  8. 阿里云windows 2008 服务器处理挖矿程序 Miner

    阿里云盾最近报发现wanacry蠕虫病毒和挖矿进程异常 仔细检查进程后,发现两个奇怪的进程 Eternalblue-2.2.0.exe,winlogins.exe 特别是伪装成 winlogins.e ...

  9. [转帖]WannaCry惊天大发现!疑似朝鲜黑客组织Lazarus所为

    WannaCry惊天大发现!疑似朝鲜黑客组织Lazarus所为 Threatbook2017-05-16共588524人围观 ,发现 17 个不明物体系统安全 https://www.freebuf. ...

随机推荐

  1. 【循环数组的最大字串和】Maximal-sum Subsequence

    [循环数组的最大字串和]Maximal-sum Subsequence PROBLEM 题目描述 给一个 N×N 的矩阵 M,可以取连续的一段数(必须是横着或者竖着或者斜着,这个矩阵是循环的,具体如下 ...

  2. 【树状数组】区间出现偶数次数的异或和(区间不同数的异或和)@ codeforce 703 D

    [树状数组]区间出现偶数次数的异或和(区间不同数的异或和)@ codeforce 703 D PROBLEM 题目描述 初始给定n个卡片拍成一排,其中第i个卡片上的数为x[i]. 有q个询问,每次询问 ...

  3. React_基本原理_ajax

    React 基本原理 初始化显示界面 创建虚拟DOM树 渲染到 原生 DOM 树 绘制界面显示 更新界面 setState() 更新状态机 重新创建虚拟 DOM 树 新/旧树比较差异 (执行一次 DO ...

  4. react_app 项目开发 (4)_ React UI 组件库 ant-design 的基本使用

    最流行的开源 React UI 组件库 material-ui 国外流行(安卓手机的界面效果)文档 ant-design 国内流行 (蚂蚁金服 设计,一套 PC.一套移动端的____下拉菜单.分页.. ...

  5. DAG---矩阵嵌套问题

    矩形嵌套时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c, ...

  6. Exception in thread "main" java.lang.IllegalStateException: Failed to read Class-Path attribute from manifest of jar file:

    表示jar所在位置文件夾中沒有下載好,將目標目錄刪除,重新maven下就好了

  7. RobotFramework环境配置:默认以管理员权限运行cmd

    设置cmd以管理员权限运行 目的:创建或删除文件等命令时,需要管理员权限运行cmd(linux以root用户登录).   例如,创建日志目录.   方法一: 1.激活administrator用户 2 ...

  8. 天梯赛练习题L2-006. 树的遍历

    题目链接 已知一棵树的后序遍历顺序和中序遍历顺序,求层次遍历的顺序: 树的四种遍历: 先序遍历:先访问根节点,再访问左子树,最后访问右子树 中序遍历:先访问左子树,再访问根节点,最后访问右子树 后序遍 ...

  9. Springboot-001-解决nested exception is org.apache.ibatis.binding.BindingException: Parameter 'env' not found. Available parameters are [arg1, arg0, param1, param2]

    环境:Springboot + Mybatis + MySQL + VUE 场景: 前端发出数据比对请求,在服务后台与数据库交互时,接口提示错误信息如下所示: { "code": ...

  10. thinkphp ckeditor与ckfinder

    thinkphp ckeditor与ckfinder 下载 ckeditor下载地址 ckfinder下载地址 整合 将ckeditor与findeditor下载完成后,放到public目录下,配置c ...