這兩天收到了自架的機器上資源超出 100% 的通知,進去機器使用 htop
觀察後
看到有個不明的 procss 名為 perfctl 佔了非常高的 cpu / memory 使用量。
簡單記錄一下處理過程和發現步驟 XD
- 確認此 perfctl 執行使用者為
www-data
,猜測應是由此台機器上的 wordpress 資安漏洞導致 - 更新現有的 wordpress 與相關的 plugin / theme,修補資安漏洞
- 首先嘗試了
kill -9 ${process id}
- 砍掉 perfctl 後 cpu / memory 資源使用量確實大幅下降,約莫 1hr 後 perfctl 會自動重啟
- 確認排程服務列表是不是有被修改過
for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done
- 發現有一筆可疑的 cron job 排程
備註:如果看不太懂 cron job expression 到這個 線上工具 看看,基本上就每小時會執行一次(和上述步驟測試結果吻合)
11 * * * * /home/www/.config/cron/perfcc
crontab -e
清除 cron job 排程並移除此惡意程式
經過一天持續觀察,確實就沒發生資源再度被佔用的情況,大致上就以上處理後告一段落!
事後發現其實也有其他人遇到類似問題:
https://serverfault.com/questions/1095192/100-cpu-load-caused-by-service-perfctl/1099296#1099296
用 wordpress 真的是個時常被打的目標,之前也不少次遇到 web shell 相關的檔案被惡意上傳上來,偶爾看看機器被打好像也挺有趣的(菸)
前提是要好好定時備份 ~還好這次不是遇到 不死木馬 那種各種砍不掉的 process (?)
之後有遇到再慢慢紀錄上來 XD