Ich habe gerade erwähnt, dass ein Benutzer einen Prozess namens „httpd“ startet.
31712 ftp_johndoe 20 0 35988 8828 1460 S 14.0 0.0 1h50:31 httpd
28616 ftp_johndoe 20 0 5304M 43936 35080 S 4.0 0.2 0:02.72 /usr/bin/php5-cgi -c /var/www/vhosts/system/johndoe.net/etc/php.ini
31711 ftp_johndoe 20 0 35808 8608 1460 S 1.0 0.0 1h51:15 httpd
Nun, ich habe mich gefragt, warum der Prozess „httpd“ heißt, denn unter Debian startet Apache keine Prozesse namens „httpd“.
Wenn ich es ablehne, erhalte ich die folgenden Ergebnisse:
httpd 28868 ftp_johndoe txt REG 253,0 10456 12335127 /usr/bin/perl
httpd 28868 ftp_johndoe mem REG 253,0 22952 12335108 /usr/lib/perl/5.14.2/auto/File/Glob/Glob.so
httpd 28868 ftp_johndoe mem REG 253,0 109888 12335102 /usr/lib/perl/5.14.2/auto/POSIX/POSIX.so
httpd 28868 ftp_johndoe mem REG 253,0 18672 12335109 /usr/lib/perl/5.14.2/auto/Fcntl/Fcntl.so
httpd 28868 ftp_johndoe mem REG 253,0 39256 12980353 /usr/lib/perl5/auto/Socket/Socket.so
httpd 31712 ftp_johndoe 63u IPv4 520937935 0t0 TCP server.name.com:38504->64.233.165.26:smtp (ESTABLISHED)
httpd 31712 ftp_johndoe 67u IPv4 520937969 0t0 TCP server.name.com:38536->64.233.165.26:smtp (ESTABLISHED)
httpd 31712 ftp_johndoe 73u IPv4 520937951 0t0 TCP server.name.com:38520->64.233.165.26:smtp (ESTABLISHED)
Ich gehe also davon aus, dass es sich um Malware handelt. Aber wie finde ich das Skript, das den httpd-Prozess startet?
Antwort1
Sie können mit der Suche nach der ausführbaren Datei beginnen, indem Sie
ls -l /proc/<PID>/exe
Dann können Sie herausfinden, wer es erstellt hat (die übergeordnete PID) mit
ps -p <PID> -o ppid=
Und suchen Sie, bis Sie den Ausgangspunkt finden.
Sie können auch die allgemeinen automatischen Ausführungspunkte überprüfen, wie Init-Skripte, globale und benutzerspezifische Cron-Jobs, at
Skripte, rc.local
Dateien
AKTUALISIEREN:Ich erinnere mich gerade an ein Programm namensSchnüfflerDas
Snoopy ist eine kleine Bibliothek, die alle ausgeführten Befehle (+ Argumente) auf Ihrem System protokolliert.
Es könnte sehr nützlich sein, es zu verwenden, um die Befehlsausführung zu überprüfen
Dies ist keine vollständige Lösung. Mir ist bewusst, dass es einfache Möglichkeiten gibt, dies zu umgehen. Hoffentlich kann jemand mit mehr Erfahrung als ich hilfreicher sein.