如何診斷沒有關聯的可執行檔名的進程?

如何診斷沒有關聯的可執行檔名的進程?

我正在運行的基於 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

相關內容