我剛剛提到,一個用戶啟動了一個名為「httpd」的進程。
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
好吧,我想知道為什麼這個進程被稱為“httpd”,因為在 debian apache 上沒有啟動名為“httpd”的進程。
如果我得到它,我會得到以下結果:
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)
所以我猜這是惡意軟體。但是我怎麼才能找到啟動httpd進程的腳本呢?
答案1
您可以使用以下命令開始查找可執行文件
ls -l /proc/<PID>/exe
然後你可以找到誰創建了它(父PID)
ps -p <PID> -o ppid=
並蒐索直到找到起點。
您還可以檢查常見的自動執行點,例如初始化腳本、全域和使用者特定的 cron 作業、at
腳本、rc.local
文件
更新:我剛剛想起一個程式叫史努比那
Snoopy 是一個小型函式庫,用來記錄系統上所有執行的指令(+ 參數)。
用它來檢查命令執行情況非常有用
這不是一個完整的解決方案,我知道有一些簡單的方法可以規避這個問題。希望比我更有經驗的人我們會更有幫助