譯者:知道創宇404實驗室翻譯組
原文鏈接:https://www.intezer.com/blog/research/stantinkos-proxy-after-your-apache-server/

前言

黑客通常會開發自己的Linux惡意軟件,BlackTech的新型惡意軟件ELF_PLEAD 和Winnti的PWNLNX 工具就是最近的例子。結合這種趨勢,我們發現了與Stantinko group相關的新版本Linux代理木馬。在本文發布之時,只檢測到一個在VirusTotal中的惡意軟件。

Stantinko黑客組織以Windows操作系統為目標而聞名,其活動可以追溯到2012年。惡意軟件主要包括硬幣礦工和廣告軟件僵尸網絡。

在2017年 概述Stantinko運營的白皮書中,ESET研究人員分析了Linux木馬代理。到目前為止,這是Stantinko唯一已知的Linux惡意軟件。

我們發現了這個偽裝為httpd的Linux木馬的新版本。httpd是Apache超文本傳輸協議服務器,這是Linux服務器上的常用程序。該示例的版本為2.17,而較早的版本為1.2 。

我們認為,這種惡意軟件是利用受到破壞的Linux服務器的廣泛活動的一部分。我們將對該惡意軟件進行技術分析,并將其與以前的版本進行比較。

技術分析

新的代理版本文件名為httpd,在撰寫本文時,只檢測到一個在VirusTotal中的惡意軟件。圖1描述了VirusTotal的結果,于2020年11月7日從俄羅斯(斯坦汀科的主要目標國家之一)上載,是未剝離的64位ELF二進制文件。

粘貼的圖像0 8

圖1:VirusTotal(7d2a840048f32e487f8a61d7fc1a0c39 )中樣本檢測報告

惡意軟件流

執行后,惡意軟件將驗證配置文件,該配置文件將與惡意軟件一起在受感染的計算機上傳遞。惡意軟件期望配置文件位于“ /etc/pd.d/proxy.conf”。如果配置文件不存在,或者缺少所需的結構,則該惡意軟件將退出而不進行任何其他惡意活動。圖2是配置解析邏輯的摘錄。配置存儲為鍵/值對。

粘貼的圖像0 7

圖2:ParseConfigElement 函數用于解析配置文件

該配置文件應具有以下密鑰:proxy_ip、port、redirect_url、localhost、ip_header和request_header_log_files。

驗證并解析配置文件結構后,將調用start_demon 函數,并且代理程序將自身守護進程。然后創建一個套接字和一個偵聽器以接受來自客戶端的連接。我們相信與該特洛伊木馬進行交互的客戶是活動中其他受感染的計算機。圖3是摘自主要功能的代碼片段,顯示了上述通用代碼流程。

粘貼的圖像0 12

圖3:主要功能流程片段

客戶端連接到偵聽器后,程序將調用on_client_connect函數,檢查請求方法是GET、POST還是NOTIFY。

如果請求方法是GET,則程序將返回301重定向HTTP響應,該響應包含來自配置文件的redirect_url參數。這意味著,如果僅使用瀏覽器簡單搜索C&C IP,可能會由于重定向到良性網站而產生誤導,而不會留下攻擊中使用的額外有效負載的痕跡。如果請求方法是POST或NOTIFY,則惡意軟件將使用create_post_data函數根據客戶端的HTTP請求標頭和內容來構建POST請求,以發送到C&C服務器。然后,程序將調用mysql_server_do_request函數,該函數負責將POST請求發送到C&C。圖4顯示了on_client_connect的一個片段功能。

粘貼的圖像0 11

圖4:on_client_connect函數的代碼片段

POST請求被發送到C&C服務器上的以下路徑之一:

  • /kbdmai/index.php
  • /kbdmai/dht/index.php
  • /kbdmai/DRTIPROV/index.php
  • /kbdmai/winsvc/index.php
  • /kbdmai/anti_rstrui/index.php

根據從客戶端發送的數據,在detect_proxy_script函數中選擇路徑。我們認為,每條路徑都將不同的有效負載作為攻擊鏈的一部分。C&C IP地址作為proxy_ip參數存儲在配置文件中。最后,代理將C&C響應轉發回客戶端。圖5著重強調了攻擊流程。

粘貼的圖像0 9

圖5:攻擊流程

  1. 受感染的客戶端將POST或NOTIFY HTTP請求發送到代理
  2. 代理解析該請求,然后將POST請求傳遞給攻擊者的服務器
  3. 攻擊者的服務器回復代理,代理將響應傳遞給客戶端
  4. 未受感染的計算機將GET請求發送到代理
  5. 代理通過301重定向回復到預配置的URL

版本比較

兩種版本之間的差異將近三年,特洛伊木馬代理的目的相似,但并不完全相同。在本節中,我們將基于以下三個條件比較版本1.2 和2.17:參數、功能和ELF結構。

參量

新版本(2.17)使用一個配置文件,該配置文件與惡意軟件一起放在受害者的計算機上。配置文件包含C&C IP地址以及其他參數。在舊版本(1.2 )中,C&C被硬編碼在二進制文件中,一旦檢測到二進制文件,便可以更輕松地阻止廣告系列的流量。

功能性

除了代理功能外,舊版本還從C&C接收文件和自我更新命令。新版本更簡單,因為它僅充當代理。

ELF結構

版本1.2 和2.17均未刪除,并包含調試符號。舊版本是靜態鏈接的,而新版本是動態鏈接的。

Stantinko連接

將文件上傳到Intezer Analyze后,我們注意到新變體與舊變體共享了幾個函數名。這些函數(例如get_binary_full_pathread_variable_string 不會在新版本中靜態調用。我們幾乎可以肯定,這些功能是以前版本中的遺留功能。

貼圖0 6

圖6:Linux版本之間的字符串重用

有趣的是,基于ESET的研究,C&C路徑暗示了一些早期活動。硬編碼路徑的示例如圖7所示。根目錄名稱為kbdmai。 “ KDBMAI.dll”是Stantinko在2012年使用的惡意軟件文件名。此外,該惡意軟件的C&C托管在kdbmai [.] net上。另一個有趣的目錄是DRTIPROV。DRTIPROV是該組織的Windows惡意軟件之一的程序數據庫(pdb)路徑的一部分。

粘貼的圖像0 10

圖7:在detect_proxy_script函數中硬編碼的路徑

包裝

Stantinko是針對Linux服務器的最新惡意軟件,它可以在雷達下飛行,并加入DokiIPStormRansomEXX等威脅。

現在,新的Stantinko樣本中的代碼已在Intezer的基因組數據庫中建立了索引。注冊 Intezer Protect 社區版, 以在運行時防御Linux云服務器免受最新的Linux威脅。

粘貼的圖像0 5

IOCs

新版本:2.17 1de81bf6ee490b6bebe9f27d5386a48700e8431f902f4f17d64ddc5d8509ca7a

舊版本:1.2
889aa5a740a3c7441cdf7759d4b1c41c98fd048f4cf7e18fcdda49ea3911d5e5

968b41b6ca0e12ea86e51e0d9414860d13599cd127ad860e1c52c2678f4f2cb9

43a6894d5953b37f92940d5c783c9977690f358b5e25bba8c096fa54657bb2e5

a305d488733d50ea92a2794cb6e0aa9d1d176e2c8906305ea48ff503fc2eb276


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1410/