linux挖礦處置

ZT不高興發表於2022-12-22

挖礦的型別

  1. 主動挖礦:使用者在個人電腦或伺服器使用挖礦程式進行CPU,GPU計算,獲取虛擬貨幣。
  2. 被動挖礦:挖礦病毒透過系統漏洞,惡意程式,弱口令等方式入侵伺服器,裝置感染挖礦病毒後會開始挖掘虛擬貨幣。
  3. 前端挖礦:JS挖礦,挖礦病毒嵌入到網頁的javascript中,使用者訪問網頁時瀏覽器執行挖礦命令,現在比較少。不穩定,使用者關閉瀏覽器挖礦程式可能就停止執行了。

常見挖礦事件的行為

  1. 訪問惡意域名
  2. CPU GPU佔用率高
  3. 埠掃描行為

挖礦的排查思路

總體思路就是:隔離被感染主機   程式確認和系統排查   清除挖礦木馬  加固與防範

一:初步判斷:是否遭受挖礦攻擊,攻擊時間,傳播範圍,網路環境等。

二:異常程式與檔案:隔離被感染的主機後,就要確定挖礦的惡意程式及其關聯的惡意樣本,以便後續進行清楚工作。

三:系統排查:挖礦木馬會建立惡意的程式連線礦池,利用計算機CPU,GPU資源來挖礦。同時會利用系統的功能來實現持久化,例如建立使用者,計劃任務,啟動項,登錄檔等。

四:日誌排查:登入日誌,伺服器日誌,安全裝置日誌,做一下根因分析,避免加固後再次出現同類問題。

 

具體的排查操作

  • 異常程式與檔案
  1. 使用top 命令檢視佔用CPU最高的程式

      2.ps命令也可以定位高CPU佔用的程式。

  ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -n 5    cpu佔用前5的資訊

  •  網路連線排查 netstart

netstart -anltp  檢視到可疑ip可以到威脅情報上去確認是否為礦池域名或惡意地址

  • 檢視可疑的程式檔案

經過上面排查,基本獲取到程式的pid,可以依據pid去查詢相關惡意檔案

lsof -p pid

ls -al /proc/[pid]/exe   定位程式的實際路徑

  •  結束程式清除檔案

kill -9 pid

  • rm 刪除可疑的程式檔案

rm -rf 檔案路徑

  • 有些時候無法透過上述排查定位pid,可能是將/proc/pid進行了隱藏,可以透過以下方式隱藏

mkdir .hidden

mount -o bind .hidden /proc/pid

這種情況可以使用  cat /proc/$$/mountinfo

 

惡意程式為了持久化駐留,還會建立計劃任務 ,啟動項,使用者賬號等

計劃任務排查

1.使用計劃任務命令查詢   crontab -u root -l 檢視root使用者計劃任務

2.檢視/etc下計劃任務檔案

ls /etc/cron*  檢視/etc目錄下所有計劃任務檔案

常見的定時任務檔案

/var/spool/cron/*    #centos的

/var/spool/cron/crontabs/*    #ubantu的

/etc/anacrontab*   非同步定時

/etc/cron.hourly/*

/etc/cron.daily/*

/etc/cron.weekly/*

/etc/cron.monthly/*

  • 啟動項排查

chkconfig    檢視開機啟動專案

cat /etc/init.d/rc.loacal  檢視init.d資料夾下的rc.local檔案內容

cat /etc/rc.local    檢視rc.local檔案內容

ls -alt /etc/init.d  檢視init.d資料夾下所有檔案的詳細資訊

不同的linux發行版檢視開機啟動項的檔案不大相同,Debian系linux一般檢視/etc/init.d目錄最近有無修改和異常的開機啟動項;Redhat系一般檢視/etc/rc.d/init.d或者/etc/syetemd/syetem等目錄。

  • 可疑賬號排查

查詢可登入賬號:  cat /etc/passwd | grep -E "/bin/bash$" | awk -F: '{print $1}'

查詢超級使用者:  awk -F: '$3==0 {print $1}' /etc/passwd

查詢公鑰檔案

  cat /root/.ssh/*.pub

  cat /root/.ssh/authorized_keys

  • 日誌排查

登入成功  more /var/log/secure* | grep "Accepted password"

登入失敗 more /var/log/secure* | grep "Failed password"

空口令登入  more /var/log/secure* | grep "Accepted none"

新增使用者  more /var/log/secure* | grep "new user"

歷史命令   history        cat /root/.bash_history

系統日誌排查無果的話,可以排查其他服務的日誌,如web 中介軟體等

  • Linux的庫檔案劫持

  排查時命令如果無法正常顯示效果,可能是檔案被劫持或做了替換,這種情況可以使用busybox來檢視

 

相關文章