急死!CPU被挖矿了,却找不到哪个进程
yuyutoo 2025-06-13 17:48 4 浏览 0 评论
CPU起飞了
最近有朋友在群里反馈,自己服务器的CPU一直处于高占用状态,但用top、ps等命令却一直找不到是哪个进程在占用,怀疑中了挖矿病毒,急的团团转。
根据经验,我赶紧让他看一下当前服务器的网络连接,看看有没有可疑连接,果然发现了有点东西:
上Shodan查一下这IP地址:
反向查找,发现有诸多域名曾经解析到这个IP地址:
这是一个位于德国的IP地址,开放了4444,5555,7777等数个特殊的服务端口:
其中这位朋友服务器上发现的连接到的是7777端口,钟馗之眼显示,这是一个HTTP服务的端口,直接访问返回的信息如下:
mining pool!,服务器正在挖矿实锤了!
但神奇的是,这个进程像是隐身了一般,找不到存在的任何痕迹。
进程如何隐藏
现在说回到本文的正题:Linux操作系统上,进程要隐藏起来,有哪些招数?
要回答这个问题,先来知道ps、top等命令枚举系统的进程列表的原理。
Linux的设计哲学是:一切皆文件!
进程也不例外, Linux系统中有一个特殊的目录:/proc/,这个目录下的内容,不是硬盘上的文件系统,而是操作系统内核暴露出的内核中进程、线程相关的数据接口,也就是procfs,里面记录了系统上正在运行的进程和线程信息,来查看一下:
这些以数字命名的目录,就是一个进程的PID,里面记录了该进程的详细信息。
而ps、top等命令的工作原理,实质上就是遍历这个目录。
知道了原理,想实现隐藏就有以下几个思路:
命令替换
直接替换系统中的ps、top命令工具。可以从GitHub上下载它们的源码,加入对应的过滤逻辑,在遍历进程的时候,剔除挖矿进程,实现隐藏的目的。
模块注入
编写一个动态链接库so文件,在so中,HOOK遍历相关的函数(readdir/readdir64),遍历的时候,过滤挖矿进程。
通过修改LD_PRELOAD环境变量或/etc/ld.so.preload文件,配置动态链接库,实现将其注入到目标进程中。
内核级隐藏
模块注入的方式是在应用层执行函数HOOK,隐藏挖矿进程,更进一步,可以通过加载驱动程序的方式在内核空间HOOK相应的系统调用来实现隐藏。不过这对攻击者的技术要求也更高,遇到这样的病毒清理起来挑战也更大了。
揪出挖矿进程
通过上面的进程隐藏原理看得住来,都是想尽办法隐藏/proc目录下的内容,类似于“障眼法”,所以包含ps、top、ls等等在内的命令,都没办法看到挖矿进程的存在。
但蒙上眼不代表不存在,有一个叫unhide的工具,就能用来查看隐藏进程。
我让这位朋友安装这个工具来查找隐藏的进程,但奇怪的是,一执行yum install安装,远程连接的SSH会话就立刻断开。
于是退而求其次,选择通过源码安装,又是一直各种报错···
因为我没办法亲自操作这台服务器,沟通起来比较麻烦,于是我决定研究下这个unhide工具的源码,然后编一个python脚本发给他执行。
源码地址:https://github.com/YJesus/Unhide-NG/blob/master/unhide-linux.c
在查找隐藏进程模块,其大致使用了如下的方法:
挨个访问 /proc/pid/ 目录,其中,pid从1到到max_pid累加
如果目录不存在,跳过
如果是unhide自己的进程,跳过
如果在ps命令中能看到,跳过
剩下的,既不是自己,也不在ps命令输出中,则判定为隐藏进程
按照这个思路,我编写了一个Python脚本发给这位朋友,执行后果然发现了隐藏的进程:
别着急,不是真的有这么多进程,这里是把所有的线程ID列举出来了。随便挑选了一个看一下:
还记得前面通过netstat命令看到挖矿进程建立了一个网络连接吗?Linux一切皆文件,在 /proc/pid/fd 目录下有进程打开的文件信息:
这里发现这个进程打开了一个socket,后面的10212是inode id,再通过下面的命令看一下这个socket到底是什么:
cat /proc/net/tcp | grep 10212
输出了四元组信息:
左边是源IP地址:源端口,右边是目的IP地址:目的端口
目的端口1E61就是7777!!!
找到了,就是这货!
再次查看 cat /proc/pid/environ,定位到进程的可执行文件:
总算把这家伙找到了:
网上一搜这家伙,看来是惯犯了:
挖矿病毒分析
把这个挖矿木马下载下来,反汇编引擎中查看,发现加壳了。
脱壳后,在IDA中现出了原形,不禁倒吸了一口凉气,居然悄悄修改/root/.ssh/authorized_keys文件,添加了RSA密钥登录方式,留下这么一个后门,随时都能远程登录进来。
除此之外,还发现了病毒尝试连接的大量域名:
看到这里简直可怕!自己的服务器被病毒按在地上摩擦啊!
清除建议
开启SELinux
杀掉挖矿进程
删除病毒程序(注意rm命令是否被替换)
删除病毒驱动程序(注意rm命令是否被替换)
删除病毒添加的登录凭据
防火墙封禁IP、端口
这个病毒到底是怎么植入进来的呢???
咱们下回分解~
作者:小白
来源:编程技术宇宙(ID:xuanyuancoding)
相关推荐
- 从零搭建高可用的 MySQL 主从复制架构(基于 Linux 实战指南)
-
背景在生产环境中,单点MySQL数据库容易成为性能瓶颈或单点故障源。搭建MySQL主从复制架构,可以实现读写分离、高可用,提升系统的整体稳定性与扩展性。...
- 国外大神成功让Nexus4吃上安卓6.0:基本可正常使用
-
IT之家讯10月9日消息谷歌已经于10月6日正式开启了Nexus设备Android6.0Marshmallow系统的OTA升级推送。根据之前报道的消息,老一批的Nexus手机如Nexus4/Ne...
- 急死!CPU被挖矿了,却找不到哪个进程
-
CPU起飞了最近有朋友在群里反馈,自己服务器的CPU一直处于高占用状态,但用...
- 甜甜的安卓5.0却让手机ROOT难度大大增加
-
IT之家(www.ithome.com):甜甜的安卓5.0却让手机ROOT难度大大增加对设备进行ROOT,毫无疑问,这是安卓最美丽的地方之一,不管是对于消费者来说还是开发者。Root意味着掌握更多的权...
- Linux基础知识(linux基础知识点及答案)
-
系统目录结构/bin:命令和应用程序。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev:dev是Device(设备)的缩写,该目录...
- Linux 内核 6.15 发布:内存、网络、文件系统全面升级!
-
核心增强:性能与安全双飞升!Linux内核6.15的正式版!虽然因一个临门一脚的Bug晚了几小时,但最终还是带着一堆硬核更新闪亮登场!...
- AlmaLinux 9.6 发布,新增功能亮点纷呈!
-
距离上一版本AlmaLinux9.5发布六个月后,基于5.14内核的AlmaLinux正式宣布其企业级Linux发行版的9.x系列第六个更新——AlmaLinux9.6(Sag...
- 理解Linux下的SELinux(linux seccomp)
-
理解Linux下的SELinux长久以来,每当遇到授权问题或者新安装的主机,我的第一反应是通过setenforce0命令禁用SELinux,来减少产生的权限问题,但是这并不是一个良好的习惯。这篇文章...
- 3个简单实用的网址导航网站(简洁的网站导航)
-
在我们使用电脑上网的时候经常会访问某些常用的网站,每一次都去通过搜索访问就比较浪费时间,添加在浏览器收藏夹不方便在其他电脑使用。找一个好用的网址导航网站就可以帮我们把所有常用的网址集合在一个页面,方便...
- 整点不一样的网站制作教程,教你怎么用网站模板制作网站#...
-
网站制作教程整点不一样的网站。不要再问我网站制作教程了,今天给你整个怎么用网站模板制作网站的教程。·1、登录账号进入后台。·2、选择模板。自助建站平台通常提供各种各样的网站模板,可以根据自己的需求和喜...
- 5个最好的外贸独立站模板,让你的网站更加专业
-
作为外贸行业从业者,一个专业且具有吸引力的网站是必不可少的。然而,建立一个专业的网站需要耗费大量的时间和精力,尤其是在设计和开发方面。为了帮助您缩短网站建设的时间和成本,以下是5个最好的外贸独立站模板...
- 网站建设模板 **网站建设模板:全面指南与创意构思*
-
网站建设模板**网站建设模板:全面指南与创意构思**随着互联网技术的迅猛发展,网站已成为企业、机构和个人展示自身形象、传递信息、实现交流的重要平台。本文将详细介绍网站建设的基本模板,并提供创意...
- 原地封神!一个只用套模板即可制作电子相册的网站
-
对于忙碌的年轻人来说,一键操作的模板意味着无需复杂的操作步骤,就能轻松制作出精美的电子相册。但是一个好的工具也是事关重要,最近发现了一款非常适合年轻人的模板---FLBOOK在线制作电子杂志平台,只需...
- 跨屏建站网kpfree免费网站模板2023.1.14发布更新
-
跨屏建站网kpfree免费网站模板2023.1.14发布更新,摒弃了之前的卡片式设计,采用了移动优先的设计原则,简化了页面设计风格,优化了代码,优化了图片质量,确保网页打开速度。砍掉了一些花哨而无用的...
- 响应式大型电子企业集团类网站模板源码-青柠资源网qnziyw.cn
-
模板信息:模板编号:10964模板编码:UTF8模板颜色:红色模板分类:科技、电子、数码设备适合行业:电子设备类企业模板介绍:本模板自带eyoucms内核,无需再下载eyou系统,原创设计、手工书写D...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)