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 ...
随机推荐
- HBuilder webApp开发(七)微信/QQ/新浪/腾讯微博分享
链接 https://blog.csdn.net/zhuming3834/article/details/51706256
- 使用jstack排查多线程死锁、阻塞
问题: 针对线上多线程死锁.阻塞,跑着跑着就卡住了 查看线上线程池的状态 jstack用于生成java虚拟机当前时刻的线程快照. 线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成 ...
- Rust从入门到放弃(1)—— hello,world
安装及环境配置 特点:安全,性能,并发 rust源配置 RLS安装 cargo rust管理工具,该工具可以愉快方便的管理rust工程 #!/bin/bash mkdir learn cd learn ...
- 《数据结构》《C++程序设计》《计算机组成原理》中的英语名词
一.数据结构 data 数据data element 数据元素data item 数据项data object 数据对象data structure 数据结构ADT (Abstruct Date Ty ...
- Oracle 原生驱动带来的精度问题的分析与解决
问题 Oracle 官方提供了 dotnet core 驱动,但我们在使用中遇到了精度问题. 复现 以下代码运行数学运算 1/3,无论是 OracleCommand.ExecuteScalar() 还 ...
- PERFORM参数传递
参数传递:将主程序变量传递给子例程形式参数传递类型值传:子例程中参数变量的值的改变,不影响外部程序实际变量的值. , B , C TYPE I. WRITE:'A=',A,'B=',B,'C=',C. ...
- mssql 导出作业,导出表,导出存储过程等
1.mssql 导出作业 1.选中sql server 代理-作业 2.点击F7 显示对象资源管理器详细信息,3.按住ctrol 选中 右键编写作业脚本到就可以了 2.mssql 导出表和存储过程等 ...
- animations与transition
transition过渡 和animation 动画 要知道 transition过渡和animation动画都是实现元素运动的一种方式.区别在于: transition过渡需要人为触发,例如点击触发 ...
- openssl生成随机数
#include <stdio.h> #include <openssl/bn.h> int main() { BIGNUM *bn; bn = BN_new(); //生成一 ...
- Jmeter参数化、检查点、集合点教程
在使用Jemeter做压力测试的时候,往往需要参数化用户名,密码以到达到多用户使用不同的用户名密码登录的目的,这个时候我们就可以使用参数化登录. 一.badboy录制需要的脚本.也可以用fiddler ...