Wie kann ich einen Prozess diagnostizieren, dem kein ausführbarer Dateiname zugeordnet ist?

Wie kann ich einen Prozess diagnostizieren, dem kein ausführbarer Dateiname zugeordnet ist?

Auf einem von mir betriebenen KVM-basierten Server beansprucht ein Prozess 100 % der CPU-Leistung.

Dies ist die Ausgabe von 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

Der Prozessname ist apacheund der Benutzer ist adminx. Auf dem System sollte kein ausführbarer Apache vorhanden sein und der Benutzer adminxsollte ihn auf keinen Fall ausführen.

Die Ausgabe straceder beiden PIDs wird unten angezeigt.

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
......

Ich weiß nicht, woher der Prozess stammt, und der Server wurde möglicherweise gehackt. Ich habe den Prozess beendet und plane, den Server neu zu installieren.

Wie lässt sich bei einem solchen Vorgang nachvollziehen, wie der Prozess gestartet wurde, wenn es keine ausführbare Datei mit diesem Namen gibt? Wie lässt sich das Speicherabbild der ausführbaren Datei zur Analyse erfassen und wie lassen sich ihre Speicherzuweisungen analysieren?

PS. Ich habe den Namen der ausführbaren Datei gefunden. Es scheint, dass sie in den gemeinsamen Speicher kopiert und dann gelöscht wurde.

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

Antwort1

Dabei könnte es sich um Bitcoin-Mining-Malware handeln.

Sie können die ausführbare Datei überprüfen mit

ls -l /proc/22230/exe

Der Name dieser Datei kann anders sein. Der Prozess kann ihn festlegen, $0wie beispielsweise gezeigt top.

verwandte Informationen