如何诊断没有关联的可执行文件名的进程?

如何诊断没有关联的可执行文件名的进程?

我正在运行的基于 KVM 的服务器上有一个进程占用了 100% CPU。

这是 htop 的输出。

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command                 
22230 adminx     20   0  185M  3468  1600 S 100.  0.5 72h45:33 apache 
22232 adminx     20   0  185M  3468  1600 R 100.  0.5 72h45:12 apache 
10660 root       20   0 26880  4680  3176 R  0.0  0.6  0:00.11 htop
 1061 root       20   0  276M  5796     0 S  0.0  0.8  0:05.59 /usr/lib/snapd/snapd 
 9529 root       20   0 92796  6916  5992 S  0.7  0.9  0:00.11 sshd: root@pts/3

进程名称为apache,用户为adminx。系统上不应该有任何可执行的 apache,并且用户adminx在任何情况下都不应该运行它。

strace两个 pid的输出如下所示。

strace -p 22230

epoll_wait(7, [], 1024, 204)            = 0
epoll_wait(7, [], 1024, 34)             = 0
epoll_wait(7, [], 1024, 500)            = 0
epoll_wait(7, [], 1024, 465)            = 0
epoll_wait(7, [], 1024, 34)             = 0
......

strace -p 22232

sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
sched_yield()                           = 0
......

我不知道该进程是如何发起的,服务器可能已被黑客入侵。我已经终止了该进程,并计划重新安装服务器。

考虑到这种性质,如果没有该名称的可执行文件,如何跟踪进程是如何启动的?如何捕获可执行文件的内存映像进行分析,以及如何分析其内存分配?

附言。我找到了可执行文件的名称。它似乎被复制到共享内存并被删除。

adminx@gw06  ~  ls -l /proc/10160/exe
lrwxrwxrwx 1 adminx adminx 0 Jun  3 09:22 /proc/10160/exe -> /dev/shm/apache (deleted)

答案1

这可能是比特币挖矿恶意软件。

您可以使用以下命令检查可执行文件

ls -l /proc/22230/exe

该文件的名称可能不同。该过程可以设置其$0如例如所示top

相关内容