一次minerd肉雞木馬的排查思路
前言
在日常使用Linux系統服務器時,如果系統安全維護方面做的不夠規範和嚴謹,很容易導致主機被黑客植入惡意木馬病毒被當做肉雞。以後就是一次肉雞木馬病毒的排查過程,有助於運維服務器時遇到此情況時進行鍼對性的排查和修復。
【問題現象】
Linux主機CPU跑滿,或者使用服務器越來越慢,以及收到報警信息提示服務器有對外惡意掃描。
【問題原因】
這種狀況在出現時通過top命令可以看到有一個minerd進程佔用CPU較高。
經定位,該進程是一個挖礦程序,通過上述截圖可以看到進程對應的PID為1170,根據進程ID查詢一下產生進程的程序路徑
執行ll /proc/$PID/exe,其中$PID為查詢到的進程ID
異常程序在/opt目錄下
此程序一般是由計劃任務產生的,Linux系統中默認創建了計劃任務後會在/var/spool/cron目錄下創建對應用户的計劃任務腳本,執行ls /var/spool/cron 查詢一下系統中是否有異常的計劃任務腳本程序。
可以看到,在此目錄下有1個root的計劃任務腳本和一個異常的目錄crontabs(默認情況下不會有此目錄,用户創建計劃任務也不會產生此目錄)
查看腳本內容,有一個每隔10分鐘便會通過curl下載執行的腳本程序(crontabs目錄下為同樣內容的計劃任務)
手動將腳本內容下載到本地,腳本內容如下:
分析此腳本,主要進行了如下修改:
1、創建了上述查看到的兩個計劃任務腳本
2、創建了密鑰認證文件,導入到了/root/.ssh目錄下(當前腳本的密鑰文件名是KHK75NEOiq,此名稱可能會有所變化,要根據具體情況進行核實)
3、修改ssh配置文件允許了root遠程登錄,允許了密鑰認證,修改默認的密鑰認證文件名
4、重啟了sshd服務使配置生效
5、創建了偽裝程序ntp,並運行了ntp程序
6、查詢系統中是否有正常運行的計劃任務,殺死正在運行的計劃任務進程。
【處理方法】
根據以上分析,提供以下處理方法:
1、刪除計劃任務腳本中異常配置項,如果當前系統之前並未配置過計劃任務,可以直接執行rm -rf /var/spool/cron/* 情況計劃腳本目錄即可。
2、刪除黑客創建的密鑰認證文件,如果當前系統之前並未配置過密鑰認證,可以直接執行rm -rf /root/.ssh/* 清空認證存放目錄即可。如果有配置過密鑰認證,需要刪除指定的黑客創建的認證文件即可,當前腳本的密鑰文件名是KHK75NEOiq,此名稱可能會有所變化,要根據具體情況進行核實。
3、修復ssh配置項,根據個人需求進行修改,一般默認腳本中進行修改的PermitRootLogin、RSAAuthentication、PubkeyAuthentication為開啟狀態,需要修改的是密鑰認證文件名,建議修改成默認值AuthorizedKeysFile .ssh/authorized_keys即可。修改完成後重啟sshd服務,使配置生效即可。
4、刪除黑客創建的偽裝程序ntp
執行ls /etc/init.d/可以看到系統中是由對應的偽裝程序的
通過chkconfig --list ntp 可以看到此程序默認設置的是開機自動啟動。
如果此程序不進行清除,即使刪除了minerd程序並且殺死了對應的進程,過一會系統還會重新創建minerd程序,併產生新的進程
查詢一下當前系統中是否有ntp進程,可以看到ntp進程是通過/usr/sbin/ntp程序產生,因此需要把對應的執行程序也進行刪除。
總結一下刪除偽裝程序的操作步驟
kill -9 $PID 殺死查詢到的ntp進程
rm -rf /etc/init.d/ntp
rm -rf /usr/sbin/ntp (此路徑要根據具體的查詢數據確定,實際情況可能會有所變化)
5、根據之前的查詢minerd程序所在路徑為/opt,在執行的腳本中同時也在/opt目錄下創建了一個KHK75NEOiq33的程序文件,因此要刪除這兩個文件,執行rm -rf KHK75NEOiq33 minerd 即可。
6、使用kill命令殺死minerd進程
通過ps命令查詢一下minerd對應的進程詳細情況。
kill -9 $PID 殺死對應的進程ID
備註:根據ps查詢結果顯示minerd有向域名xmr.crypto-pool.fr進行數據通信,通過ping測試域名解析核實此域名對應的IP地址,然後在ip.taobao.com進行查詢顯示IP為法國的IP,然後通過iftop -i eth1 -PB命令對流量進行了監控,確實存在向法國的IP發送數據的情況,為了避免再次被入侵,可以通過iptables屏蔽對應的異常IP(具體的IP和域名要根據實際查詢的情況而定,可能會有所不同)。
以上修復完成後可以等待一會再次進行一下觀察,看看是否還會在/opt目錄下創建新的minerd程序,以及是否還有新的minerd進程產生。
最後,建議平時增強服務器的安全維護,優化代碼,以避免因程序漏洞等導致服務器被入侵。
- 應用健康度隱患刨析解決系列之數據庫時區設置
- 對於Vue3和Ts的心得和思考
- 一文詳解擴散模型:DDPM
- zookeeper的Leader選舉源碼解析
- 一文帶你搞懂如何優化慢SQL
- 京東金融Android瘦身探索與實踐
- 微前端框架single-spa子應用加載解析
- cookie時效無限延長方案
- 聊聊前端性能指標那些事兒
- Spring竟然可以創建“重複”名稱的bean?—一次項目中存在多個bean名稱重複問題的排查
- 京東金融Android瘦身探索與實踐
- Spring源碼核心剖析
- 深入淺出RPC服務 | 不同層的網絡協議
- 安全測試之探索windows遊戲掃雷
- 關於數據庫分庫分表的一點想法
- 對於Vue3和Ts的心得和思考
- Bitmap、RoaringBitmap原理分析
- 京東小程序CI工具實踐
- 測試用例設計指南
- 當你對 redis 説你中意的女孩是 Mia