首页 > 编程知识 正文

研究进程具体实例,进程状态转换实例

时间:2023-05-03 20:41:45 阅读:161061 作者:3521

CPU起飞的最近,有朋友群里反馈,自己的服务器的CPU一直处于高占用状态,但是topps等命令中哪个进程占用的

根据经验,我马上向他展示了当前服务器的网络连接,检查了是否有可疑连接,果然发现了什么:

上面挖矿病毒请查一下这个IP地址:

反向搜索时,此IP地址有很多已解析的域名。

这是位于德国的IP地址,开放了4444、5555、7777等几个特别的服务端口。

其中,在该好友服务器上发现的连接端口为7777端口,Shodan显示器,这是一个HTTP服务器端口,直接访问返回的信息如下。

钟馗之眼

但奇怪的是,这个过程似乎很隐蔽,找不到存在的痕迹。

如何隐藏流程,回到本文的正题。mining pool!

要回答这个问题,首先要了解ps、top等命令枚举系统的进程列表原理。

Linux的设计哲学是Linux操作系统上,进程要隐藏起来,有哪些招数?

过程也不例外。 Linux系统有一个名为一切皆文件!的特殊目录。 该目录下的内容是操作系统内核暴露的内核中的进程和线程相关的数据接口(/proc/),而不是硬盘上的文件系统,是系统管理

以这些数字命名的目录是进程的PID,其中包含该进程的详细信息。

ps、top等命令的工作原理实质上是遍历这个目录。

了解原理,想要实现隐藏,有以下想法。

直接替换命令替换系统中的ps,top命令工具。 从GitHub下载它们的源代码,并加入相应的过滤逻辑,在遍历过程时,可以去除开采过程,实现隐藏的目的。

模块创建动态链接库so文件,在so中,HOOK遍历相关函数(procfs),在遍历过程中过滤开采过程。

修改readdir/readdir64环境变量或/etc/ld.so.preload文件以配置动态链接库并将其注入到目标进程中。

内核级隐藏模块的注入方式是在APP应用层执行函数HOOK,隐藏开采过程。 此外,通过加载驱动程序,可以通过与内核空间的HOOK对应的系统调用实现隐藏。 但是,这对攻击者的技术要求也很高,遇到这种病毒的清理,挑战也就越大。

通过上述进程隐藏原理可以看出开采过程,但我们正在寻找隐藏/proc目录下内容的方法。 类似于“LD_PRELOAD”,因此,3358www.Sina.com/、http://ww.Sina.com/、3358 ww.Sina.com /、3358 ww.Sina

但是,眼罩并不意味着不存在。 有了障眼法这个工具,就可以看到隐藏过程。

我请这位朋友安装此工具以寻找隐藏的进程,但奇怪的是,ps安装会导致远程连接的SSH会话立即断开。

于是退而求其次,选择用源代码安装,又一直报告着各种各样的错误……

我不能自己操作这个服务器,交流起来很麻烦,所以我研究了这个unhide工具的源代码,编写了python脚本发送给他执行。

源地址: https://github.com/yjesus/unhide-ng/blob/master/unhide-Linux.c

要查找隐藏流程模块,请大致使用以下方法:

访问top目录。 其中pid从1累计到max_pid

如果目录不存在,则跳过

如果是unhide自己的进程,请跳过

如果可以通过ps命令看到,请跳过

如果剩下的不是自己,也不是正在输出ps命令,则判断为隐藏进程

按照这个想法,我编写了Python脚本并发送给了这个朋友。 执行后,还是发现了隐藏的过程:

不要着急。 并不是真的有这么多过程。 这里列举了所有线程ID。 我选了一个:

还记得之前在ls命令中看到开采进程建立了网络连接吗? Linux都是文件,包含进程打开的文件信息位于unhide目录中。

这里发现这个进程打开了一个socket,后面的10212是inode id,再通过下面的命令看一下这个socket到底是什么:

cat /proc/net/tcp | grep 10212

输出了四元组信息:

左边是源IP地址:源端口,右边是目的IP地址:目的端口

目的端口1E61就是7777!!!

找到了,就是这货!

再次查看 cat /proc/pid/environ,定位到进程的可执行文件:

总算把这家伙找到了:

网上一搜这家伙,看来是惯犯了:

挖矿病毒分析

把这个挖矿木马下载下来,反汇编引擎中查看,发现加壳了。

脱壳后,在任性的火车中现出了原形,不禁倒吸了一口凉气,居然悄悄修改/root/.ssh/authorized_keys文件,添加了RSA密钥登录方式,留下这么一个后门,随时都能远程登录进来。

除此之外,还发现了病毒尝试连接的大量域名:

看到这里简直可怕!自己的服务器被病毒按在地上摩擦啊!

清除建议

开启SELinux

杀掉挖矿进程

删除病毒程序(注意rm命令是否被替换)

删除病毒驱动程序(注意rm命令是否被替换)

删除病毒添加的登录凭据

防火墙封禁IP、端口

这个病毒到底是怎么植入进来的呢???

咱们下回分解~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。