一次Linux遭入侵,挖礦程式被隱藏案例分析
本文轉載自“ ”,原文作者 :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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [原創]事件分析 | Linux watchdogs 感染性隱藏挖礦病毒入侵還原錄事件Linux
- 支援雙系統挖礦,警惕新型挖礦病毒入侵
- 公司伺服器被入侵植入挖礦軟體,如何追查?伺服器
- 阿里雲遇到 imWBR1 挖礦程式的入侵阿里
- 利用WMI命令入侵挖礦,新型挖礦病毒Audliodg持續活躍中
- 一次伺服器被入侵後的分析伺服器
- 分享一次伺服器被挖礦的處理方法伺服器
- 最新報告稱黑客正利用 WAV 音訊檔案隱藏挖礦惡意程式碼黑客音訊
- Stratum挖礦協議&XMR挖礦流量分析協議
- Avive World算力挖礦系統開發|中本聰模式挖礦案例模式
- 什麼?上千個NPM元件被植入挖礦程式!NPM元件
- CPU被挖礦,Redis竟是內鬼!Redis
- 防止駭客入侵系統建立隱藏帳戶
- 以太坊原始碼分析(42)miner挖礦部分原始碼分析CPU挖礦原始碼
- PAXG質押挖礦節點系統開發/dapp單雙幣挖礦/流動性挖礦/詳情說明/案例分析/原始碼部署APP原始碼
- Filecoin礦機挖礦系統開發(案例詳細)
- linux挖礦處置Linux
- docker Redis 被挖礦場景復現DockerRedis
- 一次Linux伺服器被入侵和刪除木馬程式的經歷Linux伺服器
- NSA 攻擊工具再遭利用,windows、linux伺服器淪為挖礦工具WindowsLinux伺服器
- 挖礦病毒分析(centos7)CentOS
- 記一次Linux系統被入侵的排查過程(一)Linux
- MDEX挖礦系統開發/MDEX流動性挖礦系統開發(程式碼原理分析)
- 以太坊原始碼分析(16)挖礦分析原始碼
- 主機被入侵分析過程
- 挖礦系統開發技術詳解丨挖礦APP開發原始碼案例APP原始碼
- go-ethereum原始碼解析-miner挖礦部分原始碼分析CPU挖礦Go原始碼
- 記一次滾動條隱藏
- 智慧合約LP質押挖礦系統開發功能分析案例
- DeFI挖礦系統模式開發APP(案例)模式APP
- 一行程式碼如何隱藏Linux程式?行程Linux
- 入侵1500個雲服務賬號建立百萬虛擬機器挖礦,幕後駭客被逮捕虛擬機
- 記一次伺服器被用來挖礦的異常問題處理伺服器
- 比特幣CPU挖礦、GPU挖礦、礦池及礦機挖礦技術原理比特幣GPU
- excel一次性取消隱藏快捷鍵 excel表格怎麼取消隱藏Excel
- 記一次防毒工作--kdevtmpfsi挖礦病毒防毒dev
- defi質押挖礦dapp系統開發原理技術分析(案例演示)APP
- 記一次ASP.NET網站的入侵和如何避免被入侵ASP.NET網站