Linux挖矿程序kworkerds分析
0×00 背景概述
近日,同伴的一台Linux服务器中了kworkerds挖矿程序,随即对挖矿程序进行了处理与分析。
0×01服务器现状
进入服务器之后通过top命令,没有发现有占用CPU资源过高的进程,随后使用busybox top命令查看发现一个kworkerds的程序占用CPU资源达到了99%,计划任务中被写入恶意下载命令;
系统top命令界面;
使用busybox top命令界面;
写入的计划任务;
0×02脚本分析:
1) mr.sh脚本:
清理文件或其他挖矿程序;
值得一提的是,脚本首部已经把防火墙关闭了,为什么又要在防火墙中加入规则,禁止了一个IP地址,并通过string匹配域名来过滤了pastebin,这个很像是在防近期爆发的 khugepageds、watchdogs…
往下是一顿清理—–
再经过一番清理之后,开始把下载脚本的命令写入计划任务中;
写入的文件列表如下;
随后又开始了一番清理,把除自己之外的进程且占用CPU资源大于30%的给杀掉,并且查看netstat中是否与自己的服务器建立连接成功;
在脚本的最后开始下载一个名为2mr.sh的云端脚本,并且检查计划任务中是否有自己写入的下载命令,如果没有继续写入;
2) 2mr.sh脚本:
2mr脚本是关于挖矿程序的下载与调整,在脚本的首部判断下载的/var/tmp/sustse文件是否存在,如果存在则通过MD5值对比/var/tmp/sustse是否相符,如果不相符则删除并且杀掉自己的相关进程,否则创建/var/tmp;
随后通过downloadIfNeed()、download()、download2()三个函数进行判断/下载挖矿相关文件,这里下载了一个名为1.so的文件,并且把1.so替换掉/usr/local/lib/libkk.so,把路径写入/etc/ld.so.preload,最后把/var/tmp/sustse复制一份并命名为kworkerds;
最后通过judge()、judge2()函数根据网络连接情况进行判断被攻陷的主机是否与矿池建立连接成功,如果没有则清理占用资源大于30%的其他程序,随后下载相关挖矿程序进行挖矿操作;
0×03处理建议:
1) 清除相关的恶意计划任务;
2) 删除/var/tmp目录下的相关恶意文件;
3) 删除被替换的动态链接库;
相关信息:
矿池信息:
URL:
MD5:
be9469ea238d53993f70ed09b8347f3e kworkerds
b4f6d69c8777fea8b169898bea9fb040 sustse
2fdb64bf08f09ce0cdc650b443590d7b 1.so libkk.so
83d502512326554037516626dd8ef972 /root/kworkerdss/xmrig
PS:1.so~~~
*本文作者:runmoke
Linux挖矿程序kworkerds分析的更多相关文章
- Linux安装程序Anaconda分析(续)
本来想写篇关于Anaconda的文章,但看到这里写的这么详细,转,原文在这里:Linux安装程序Anaconda分析(续) (1) disptach.py: 下面我们看一下Dispatcher类的主要 ...
- Linux安装程序Anaconda分析
1.概述 Anaconda是RedHat.CentOS.Fedora等Linux的安装管理程序.它能够提供文本.图形等安装管理方式,并支持Kickstart等脚本提供自己主动安装的功能.此外, ...
- kworkerds 挖矿木马简单分析及清理
公司之前的开发和测试环境是在腾讯云上,部分服务器中过一次挖矿木马 kworkerds,本文为我当时分析和清理木马的记录,希望能对大家有所帮助. 现象 top 命令查看,显示 CPU 占用 100%,进 ...
- 在Linux下,如何分析一个程序达到性能瓶颈的原因
0.在Linux下,如何分析一个程序达到性能瓶颈的原因,请分别从CPU.内存.IO.网络的角度判断是谁导致的瓶颈?注意现在的机器CPU是多核 1.用sar -n DEV 1 10 2.用iotop命令 ...
- 01-Coredump核心转存&&Linux程序地址分析【转】
转自:http://www.itwendao.com/article/detail/404132.html 目录(?)[-] 一Core Dump核心转存 二Linux程序地址分析 一Core Dum ...
- 以C语言为例完成简单的网络聊天程序以及关于socket在Linux下系统调用的分析
套接字是网络编程中的一种通信机制,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程. 端 ...
- SSH 暴力破解趋势——植入的恶意文件属 DDoS 类型的恶意文件最多,接近70%,包括 Ganiw、 Dofloo、Mirai、 Xarcen、 PNScan、 LuaBot、 Ddostf等家族。此外挂机、比特币等挖矿程序占5.21%
SSH 暴力破解趋势:从云平台向物联网设备迁移 | 云鼎实验室出品 from: http://www.freebuf.com/articles/paper/177473.html 导语:近日,腾讯云发 ...
- Android/Linux下CGroup框架分析及其使用
1 cgroup介绍 CGroup是control group的简称,它为Linux kernel提供一种任务聚集和划分的机制,可以限制.记录.隔离进程组(process groups)所使用的资源( ...
- Linux Kernel Oops异常分析
1.PowerPC小系统内核异常分析 1.1 异常打印 Unable to handle kernel paging request for data at address 0x36fef31eFa ...
随机推荐
- Vue.js 源码分析(四) 基础篇 响应式原理 data属性
官网对data属性的介绍如下: 意思就是:data保存着Vue实例里用到的数据,Vue会修改data里的每个属性的访问控制器属性,当访问每个属性时会访问对应的get方法,修改属性时会执行对应的set方 ...
- 《 .NET并发编程实战》扩展阅读 - 元胞自动机 - 1 - 为什么要学元胞自动机
先发表生成URL以印在书里面.等书籍正式出版销售后会公开内容.
- Spring整合Mybaits java.sql.SQLException: Access denied for user '***'@'localhost' (using password: YES)
最近在搞Spring和Mybatis的整合,当我们在Spring里面配置数据源,而数据源是从外部的properties文件读取过来的时候就会报错 java.sql.SQLException: Acce ...
- jsonp格式前端发送和后台接受写法
jsonp是ajax提交的一种格式不会受跨域限制 一.前端发送 <button>11111</button> <script src="https://cdn. ...
- Flask--数据库连接池
目录 数据库连接池 pymsql链接数据库 数据库连接池版 数据库连接池 pymsql链接数据库 import pymysql conn = pymysql.connect(host='127.0.0 ...
- MongoDB常用数据库命令第三集
show dbs 查看已经存在的数据库 use 数据库名 切换到指定的数据库(无论数据库是否存在 均可切换成功) db 查看当前数据库 db.getCollectionNames() 查看当前数据库下 ...
- electron——初探
是什么? Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并到同一个运行时 ...
- 浅谈cookie 和 session
一. cookie 定义:保存在浏览器本地上的一组组键值对 特点: 由服务器让浏览器进行设置的 浏览器保存在浏览器本地 下次访问时自动携带 应用: 登录 保存浏览习惯 简单的投票 使用cookie的原 ...
- LNMP环境下搭建SVN服务
最近自己买了个服务器,试着在上面搭建了LNMP环境,因为以前在本地用MAMP Pro搭建过LAMP环境,所以基本上还算是轻车熟路,第一次搭建LNMP,使用的是一键安装,过程是顺利的,后来在使用过程中遇 ...
- linux下sendmail
1. 安装 # yum install sendmail.x86_64 bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动sendmail服务,配置非常麻烦,而且 ...