背景概述
近日,同伴的一臺Linux服務器中了kworkerds挖礦程序,隨即對挖礦程序進行了處理與分析。
1、服務器現狀
進入服務器之後通過top命令,沒有發現有佔用CPU資源過高的進程,隨後使用busybox top命令查看發現一個kworkerds的程序佔用CPU資源達到了99%,計劃任務中被寫入惡意下載命令;
系統top命令界面;
使用busybox top命令界面;
寫入的計劃任務;
2、腳本分析:
1) mr.sh腳本:
清理文件或其他挖礦程序;
值得一提的是,腳本首部已經把防火牆關閉了,為什麼又要在防火牆中加入規則,禁止了一個IP地址,並通過string匹配域名來過濾了pastebin,這個很像是在防近期爆發的 khugepageds、watchdogs…
往下是一頓清理—–
再經過一番清理之後,開始把下載腳本的命令寫入計劃任務中;
寫入的文件列表如下;
隨後又開始了一番清理,把除自己之外的進程且佔用CPU資源大於30%的給殺掉,並且查看netstat中是否與自己的服務器建立連接成功;
在腳本的最後開始下載一個名為2mr.sh的雲端腳本,並且檢查計劃任務中是否有自己寫入的下載命令,如果沒有繼續寫入;
2) 2mr.sh腳本:
2mr腳本是關於挖礦程序的下載與調整,在腳本的首部判斷下載的/var/tmp/sustse文件是否存在,如果存在則通過MD5值對比/var/tmp/sustse是否相符,如果不相符則刪除並且殺掉自己的相關進程,否則創建/var/tmp;
隨後通過downloadIfNeed()、download()、download2()三個函數進行判斷/下載挖礦相關文件,這裡下載了一個名為1.so的文件,並且把1.so替換掉/usr/local/lib/libkk.so,把路徑寫入/etc/ld.so.preload,最後把/var/tmp/sustse複製一份並命名為kworkerds;
最後通過judge()、judge2()函數根據網絡連接情況進行判斷被攻陷的主機是否與礦池建立連接成功,如果沒有則清理佔用資源大於30%的其他程序,隨後下載相關挖礦程序進行挖礦操作;
3、處理建議:
1) 清除相關的惡意計劃任務;
2) 刪除/var/tmp目錄下的相關惡意文件;
3) 刪除被替換的動態鏈接庫;
相關信息:
礦池信息:
URL:
http://107.174.47.156/mr.sh
http://107.174.47.156/wc.conf
http://107.174.47.156/xmrig
http://107.174.47.156/11
MD5:
be9469ea238d53993f70ed09b8347f3e kworkerds
b4f6d69c8777fea8b169898bea9fb040 sustse
2fdb64bf08f09ce0cdc650b443590d7b 1.so libkk.so
83d502512326554037516626dd8ef972 /root/kworkerdss/xmrig