記一次NACOS開放公網訪問導致伺服器被挖礦的解決流程 [kdcflush] acosd

Java小学生丶發表於2024-07-26

我要在這裡放一段程式碼塊

// 這是一段防爬程式碼塊,我不介意文章被爬取,但請註明出處
console.log("作者主頁:https://www.hanzhe.site");
console.log("原文地址:https://www.cnblogs.com/hanzhe/p/18325131");

前言

事情的起因是這樣的,昨天領導找到我說伺服器記憶體滿了,影響其他程式正常執行了,讓我把測試伺服器上之前啟動的六個JAVA程式停一下,接著我就登上伺服器執行docker compose down把服務關掉,臨走之前習慣性使用htop檢視一下資源皮膚,意外發現伺服器中有個叫[kdcflush] acosd的程序把伺服器CPU效能吃滿了

image

我見識少第一次看到這個服務,覺得應該是公司執行的,好奇心驅使我網上查了下資料,想知道這個中介軟體(或者其他的程式)的作用是什麼,如此消耗效能沒準跟AI模型有關,好玩的話以後自己也折騰玩玩,但是查了有一會沒找到對應的資料,感覺不太妙,接著跟領導確認了下這個程序是不是我們自己執行的,最終得到的結論是伺服器很有可能被挖礦了

意識到問題後領導把它交給了我,我自己也有伺服器也處理中過幾次挖礦指令碼,不過自己的伺服器還不是隨便折騰,當時我的處理方案就是把資料複製出來,給雲服務重新裝個系統,再把資料放回去服務跑起來就解決了,但是公司的伺服器顯然不能這麼做,不過幸好思路還是有的,這裡記錄一下解決的流程

正文

挖礦指令碼這個東西我遇到好多次了,這是倒是我第一次真正面對他,憑我對LINUX伺服器的熟悉程度並不能直接解決它,於是我用kill -9 29273先簡單粗暴的把程序殺掉,然後去預習一下資料順便補補課,大概一個半小時後我準備回來解決它,不出意外它又揹著我偷偷執行起來了

image

首先每個執行的程序都會有一個PID,也就是上面截圖中的第一列,而LINUX中一切皆檔案,所以這個程序會以檔案的形式存在於/proc/pid/exe,檢視一下這個程序檔案

image

這個程序的檔案指向了/usr/sbin/nacosd檔案,瞬間就想明白了,前段時間用測試伺服器搭建了NACOS註冊中心,使用者名稱密碼都是預設的nacos也沒改預設埠號沒設定鑑權,就那麼明晃晃的擺在公網上,原來問題出在這了

殺掉這個指令碼很簡單,不過得想辦法徹底殺掉他不讓它在偷偷跑回來,這裡先檢查伺服器中有沒有可疑的定時任務

image

網上簡單查了一下titanagent感覺挺正常的,定時任務算是排查完了,接下來排查系統中有沒有註冊可疑的服務,根據大佬的文章得知LINUX中服務都已檔案的形式存放在/etc/systemd/system目錄下,這裡檢查該目錄下有沒有可疑的服務

image

嗯!可疑,看看這個服務的內容是什麼

image

嗯!沒錯了,這個服務的作用就是執行這個挖礦指令碼,如果我猜的不錯這個服務肯定設定開機自啟了

image

這樣一來思路就理清了,先使用systemctl disable system-nacosd命令關閉該服務的開機自啟,然後使用systemctl stop system-nacosd命令停止該服務,然後使用rm命令刪除服務配置檔案(這部分忘截圖了),接著刪除/usr/sbin/nacosd這個指令碼檔案,就算大功告成了

image

第一次停止指令碼大概一個半小時左右再回去看,指令碼自己就又跑起來了,如今已經到了第二天的中午伺服器還很安靜,應該是成功了!

就寫到這吧,能力有限技術有限,如果還有哪些我沒考慮到的地方歡迎指點

相關文章