一次Linux遭入侵,挖礦程式被隱藏案例分析

dbasdk發表於2018-07-02

本文轉載自“ ”,原文作者 :Fooying、zhenyiguo、murphyzhang
  
一、背景

  雲鼎實驗室曾分析不少入侵挖礦案例,研究發現入侵挖礦行為都比較粗暴簡單,透過 top 等命令可以直接看到惡意程式,挖礦程式不會被刻意隱藏;而現在,我們發現駭客開始不斷使用一些隱藏手段去隱藏挖礦程式而使它獲得更久存活,今天分析的內容是我們過去一個月內捕獲的一起入侵挖礦事件。

  二、入侵分析

  本次捕獲案例的入侵流程與以往相比,沒有特殊的地方,也是利用通用漏洞入侵伺服器並獲得相關許可權,從而植入挖礦程式再進行隱藏。

  透過對幾個案例的分析,我們發現駭客主要是利用 Redis 未授權訪問問題進行入侵,對於該問題的說明可以參考我們過去做的一些分析:

  https://mp.weixin.qq.com/s/inazTPN5mHJYnt2QDliv8w

  在伺服器被入侵後,首先可以明顯感覺到伺服器的資源被佔用而導致的操作遲緩等問題,透過一些常規手段可以發現一些異常資訊,但又看不到程式資訊:

  透過 top 命令,可以看到顯示的 CPU 使用率較低,但 ni 值為 100 ;同時透過 /proc/stat 計算 CPU 使用率又基本是 100% 。

  透過 netstat 檢視埠監聽情況,也可以看到異常的連線。

  透過在 Virustotal 查詢 IP,可以看到 DNS 指向為礦池域名。

  透過 find 命令查詢入侵時間範圍內變更的檔案,對變更檔案的排查,同時對相關檔案進行分析,基本可以確認駭客使用的程式隱藏手法。

  在變更檔案裡可以看到一些挖礦程式,同時 /etc/ld.so.preload 檔案的變更需要引起注意,這裡涉及到 Linux 動態連結庫預載入機制,是一種常用的程式隱藏方法,而 top 等命令都是受這個機制影響的。

  在 Linux 作業系統的動態連結庫載入過程中,動態連結器會讀取 LD_PRELOAD 環境變數的值和預設配置檔案 /etc/ld.so.preload 的檔案內容,並將讀取到的動態連結庫進行預載入,即使程式不依賴這些動態連結庫,LD_PRELOAD 環境變數和 /etc/ld.so.preload 配置檔案中指定的動態連結庫依然會被裝載,它們的優先順序比 LD_LIBRARY_PATH 環境變數所定義的連結庫查詢路徑的檔案優先順序要高,所以能夠提前於使用者呼叫的動態庫載入。

  ——段落引自《警惕利用 Linux 預載入型惡意動態連結庫的後門》

  透過檢視檔案內容,可以看到載入一個 .so 檔案:/usr/local/lib/libjdk.so

  而這個檔案也在檔案變更列表裡。

  我們透過檢視啟動的相關程式的 maps 資訊,也可以看到相關預載入的內容:

  透過對 libjdk.so 的逆向分析,我們可以確認其主要功能就是過濾了挖礦程式,具體可見下文分析。

  在知道了駭客使用的隱藏手法後,直接編輯 /etc/ld.so.preload 檔案去掉相關內容,然後再透過 top 命令即可看到挖礦程式:

  透過檢視 /proc/ 下程式資訊可以找到位置,看到相關檔案,直接進行清理即可:

  繼續分析變更的檔案,還能看到相關檔案也被變更 ,比如駭客透過修改 /etc/rc.d/init.d/network 檔案來進行啟動:

  同時修改 /etc/resolv.conf :

  還修改了 HOSTS 檔案,猜測是遮蔽其他挖礦程式和駭客入侵:

  同時增加了防火牆規則:

  查詢 IP 可以看到是一個國外 IP :

  三、樣本分析

  透過對樣本逆向分析,發現樣本 libjdk.so 主要是 Hook 了 readdir 和 readdir64 兩個函式:

  對應修改後的 readdir 函式結構如下(readdir64 函式也是類似的):

  get_dir_name 函式結構:

  get_proces_name 函式結構:

  process_to_filter 常量定義如下:

  整個函式功能結合來看就是判斷如果讀取目錄為 /proc,那麼遍歷的過程中如果程式名為 x7,則過濾,而 x7 就是挖礦程式名。

  而類似於 top、ps 等命令在顯示程式列表的時候就是呼叫的 readdir 方法遍歷 /proc 目錄,於是挖礦程式 x7 就被過濾而沒有出現在程式列表裡。

  四、附錄

  IOCs:

  樣本

  1. 4000dc2d00cb1d74a1666a2add2d9502

  2. 8bd15b2d48a051d6b39d4c1ffaa25026

  3. e2a72c601ad1df9475e75720ed1cf6bf

  4. d6cee2c684ff49f7cc9d0a0162b67a8d

  礦池地址

  1. xmr-asia1.nanopool.org:14433

  2. 123.56.154.87:14444

  錢包地址

42im1KxfTw2Sxa716eKkQAcJpS6cwqkGaHHGnnUAcdDhG2NJhqEF1nNRwjkBsYDJQtDkLCTPehfDC4zjMy5hefT81Xk2h7V.v7

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-2157185/,如需轉載,請註明出處,否則將追究法律責任。

相關文章