杜曲是個惡毒的套娃

介紹

1 年 2011 月 1 日,一個名為 ~DN9.tmp 的文件從匈牙利發送到 VirusTotal 網站。 當時,該檔案僅被兩個防毒引擎 BitDefender 和 AVIRA 偵測為惡意檔案。 杜曲的故事就這樣開始了。 展望未來,必須要說的是,Duqu 惡意軟體家族就是以該檔案的名稱命名的。 然而,該檔案是一個完全獨立的間諜軟體模組,具有鍵盤記錄功能,可能是使用惡意下載器-dropper安裝的,並且只能被視為Duqu惡意軟體在運行期間加載的“有效負載”,而不是一個組件( Duqu 的模組)。 Duqu 組件之一於 XNUMX 月 XNUMX 日才發送至 Virustotal 服務。 其顯著特點是由 C-Media 數位簽署的驅動程式。 一些專家立即開始與另一個著名的惡意軟體範例 Stuxnet 進行類比,該惡意軟體也使用簽署的驅動程式。 全球各防毒公司偵測到的 Duqu 感染的電腦總數有數十台。 許多公司聲稱伊朗再次成為主要目標,但從感染的地理分佈來看,這還不能確定。
杜曲是個惡毒的套娃
在這種情況下,你應該自信地只用新詞談論另一家公司 APT (進階持續性威脅)。

系統實施流程

匈牙利組織 CrySyS(匈牙利布達佩斯科技經濟大學密碼學和系統安全實驗室)的專家進行的一項調查發現了感染系統的安裝程序(滴管)。 這是一個 Microsoft Word 文件,利用了 win32k.sys 驅動程式漏洞(MS11-087,微軟於 13 年 2011 月 XNUMX 日描述),該漏洞負責 TTF 字體渲染機制。 該漏洞的 shellcode 使用嵌入在文件中的名為「Dexter Regular」的字體,Showtime Inc. 被列為該字體的創建者。 如你所見,《Duqu》的創作者對幽默感並不陌生:《Dexter》是一名連環殺手,是 Showtime 製作的同名電視劇中的英雄。 德克斯特只殺死(如果可能的話)罪犯,也就是說,他以合法性的名義違法。 或許,這樣一來,Duqu開發商就諷刺了他們為了良好的目的而從事非法活動。 發送電子郵件是有目的地完成的。 這批貨物很可能使用受損(被駭客入侵)的電腦作為中介,使追蹤變得困難。
因此,Word 文件包含以下元件:

  • 文字內容;
  • 內建字體;
  • 利用 shellcode;
  • 司機;
  • 安裝程式(DLL 程式庫)。

如果成功,利用 shellcode 會執行以下操作(在內核模式下):

  • 檢查是否再次感染;為此,在註冊表中檢查位址「HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones4」處是否存在「CF1D」鍵;如果正確,則 shellcode 完成其執行;
  • 兩個檔案被解密 - 驅動程式 (sys) 和安裝程式 (dll);
  • 驅動程式被注入到 services.exe 進程中並啟動安裝程式;
  • 最後,shellcode 在記憶體中用零擦除了自身。

由於win32k.sys是在特權使用者「System」下執行的,Duqu開發人員優雅地解決了未經授權啟動和權限升級(在權限有限的使用者帳戶下運行)的問題。
安裝程式在收到控制權後,在記憶體中解密了其中包含的三塊數據,其中包括:

  • 簽署的驅動程式(sys);
  • 主模組(dll);
  • 安裝程式設定資料 (pnf)。

在安裝程式設定資料中指定了日期範圍(以兩個時間戳記的形式 - 開始和結束)。 安裝程式檢查其中是否包含目前日期,如果不包含,則完成執行。 安裝程式配置資料中還有儲存驅動程式和主模組的名稱。 在這種情況下,主模組以加密形式保存在磁碟上。

杜曲是個惡毒的套娃

為了自動啟動 Duqu,使用驅動程式檔案建立了一項服務,該驅動程式檔案使用儲存在登錄中的金鑰動態解密主模組。 主模組包含其自己的配置資料塊。 首次啟動時,它被解密,安裝日期被輸入其中,之後再次加密並由主模組保存。 因此,在受影響的系統中,成功安裝後,會保存三個文件:驅動程式、主模組及其配置資料文件,而最後兩個文件以加密形式儲存在磁碟上。 所有解碼過程僅在記憶體中進行。 這種複雜的安裝過程用於最大限度地減少被防毒軟體偵測到的可能性。

主要模組

主模組(資源302),根據 信息 卡巴斯基實驗室公​​司,使用純 C 語言的 MSVC 2008 編寫,但使用物件導向的方法。 這種方法在開發惡意程式碼時並不常見。 通常,此類程式碼是用 C 編寫的,以減少大小並消除 C++ 中固有的隱式呼叫。 這裡存在著一定的共生關係。 另外,也使用了事件驅動的架構。 卡巴斯基實驗室員工傾向於這樣的理論:主模組是使用預處理器附加元件編寫的,該附加元件可讓您以物件樣式編寫 C 程式碼。
主模組負責接收操作員命令的程式。 Duqu 提供了多種互動方法:使用 HTTP 和 HTTPS 協定以及使用命名管道。 對於HTTP(S),指定了指揮中心的域名,並提供了透過代理伺服器工作的能力-為它們指定了使用者名稱和密碼。 為通道指定 IP 位址及其名稱。 指定的資料儲存在主模組配置資料塊中(以加密形式)。
為了使用命名管道,我們啟動了自己的 RPC 伺服器實作。 它支援以下七種功能:

  • 返回已安裝的版本;
  • 將dll注入指定進程並呼叫指定函數;
  • 載入dll;
  • 透過呼叫CreateProcess()啟動一個程序;
  • 讀取給定文件的內容;
  • 將資料寫入指定檔案;
  • 刪除指定檔案。

命名管道可以在本機網路中使用,以便在受 Duqu 感染的電腦之間分發更新的模組和設定資料。 此外,Duqu 還可以充當其他受感染電腦(由於網關上的防火牆設定而無法存取 Internet)的代理伺服器。 Duqu 的某些版本沒有 RPC 功能。

已知的“有效負載”

賽門鐵克發現至少有四種類型的有效負載是在 Duqu 控制中心的指揮下下載的。
而且,只有其中一個常駐並編譯為可執行檔(exe),儲存到磁碟上。 其餘三個以 dll 函式庫的形式實現。 它們被動態加載並在記憶體中執行,而不保存到磁碟。

常駐「有效負載」是一個間諜模組(信息竊取者)具有鍵盤記錄功能。 透過將其發送給 VirusTotal,Duqu 研究工作開始了。 主要的間諜功能位於該資源中,其中前 8 KB 包含 NGC 6745 星系照片的一部分(用於偽裝)。 這裡應該回顧一下,2012年1297506月,有媒體發布了伊朗被曝遭遇惡意軟體「Stars」的資訊(http://www.mehrnews.com/en/newsdetail.aspx?NewsID=XNUMX),而詳細資訊該事件沒有被披露。 也許正是當時在伊朗發現的 Duqu「有效載荷」的樣本,因此得名「星星」。
間諜模組收集了以下資訊:

  • 正在運行的進程列表,有關當前用戶和域的資訊;
  • 邏輯驅動器列表,包括網路磁碟機;
  • 螢幕截圖;
  • 網路介面位址、路由表;
  • 鍵盤擊鍵日誌檔;
  • 打開的應用程式視窗的名稱;
  • 可用網路資源清單(共享資源);
  • 所有磁碟(包括可移動磁碟)上的檔案的完整清單;
  • 「網路環境」中的電腦清單。

另一個間諜模組(信息竊取者)是已經描述的內容的變體,但編譯為 dll 庫;鍵盤記錄器、編譯文件列表和列出域中包含的計算機的功能已從中刪除。
下一個模組(偵察)收集的系統資訊:

  • 該電腦是否屬於網域的一部分;
  • Windows 系統目錄的路徑;
  • 作業系統版本;
  • 當前用戶名;
  • 網路介面卡清單;
  • 系統時間和本地時間以及時區。

最後一個模組(壽命延長劑)實現了增加作業完成之前剩餘天數的值(儲存在主模組配置資料檔案中)的功能。 預設情況下,該值設定為 30 或 36 天,取決於 Duqu 修改,並且每天減少 XNUMX。

指揮中心

20 年 2011 月 5.2 日(有關這項發現的資訊傳播三天後),Duqu 操作員執行了一項程序,銷毀指揮中心的運作痕跡。 指揮中心位於世界各地被駭客入侵的伺服器上—越南、印度、德國、新加坡、瑞士、英國、荷蘭和韓國。 有趣的是,所有已識別的伺服器都運行 CentOS 版本 5.4、5.5 或 32。 作業系統有 64 位元和 4.3 位元。 儘管所有與指揮中心操作相關的文件都被刪除,卡巴斯基實驗室的專家還是能夠從閒置空間的日誌檔案中恢復一些資訊。 最有趣的事實是,伺服器上的攻擊者總是將預設的 OpenSSH 5.8 軟體包替換為 4.3 版本。 這可能表明 OpenSSH 80 中的未知漏洞被用來攻擊伺服器。 並非所有系統都被用作指揮中心。 從嘗試重定向連接埠 443 和 XNUMX 的流量時 sshd 日誌中的錯誤來看,有些被用作代理伺服器來連接到終端命令中心。

日期和模組

卡巴斯基實驗室檢查了 2011 年 31 月分發的 Word 文檔,其中包含編譯日期為 2007 年 20608 月 5 日的安裝程式下載驅動程式。 在 CrySys 實驗室發現的文件中,類似的驅動程式(大小 - 45 位元組,MD613 - EEDCA0BD9E9D5A69122007E17C21F2008)的編譯日期為 19968 年 5 月 9 日。 此外,卡巴斯基實驗室專家還發現了自動執行驅動程式 rndismpc.sys(大小 - 6 位元組,MD10 - 5AEC9E05C93221544EE783C20BED2008C2009E),日期為 2007 年 28 月 2008 日。 未找到標記為 XNUMX 的組件。 根據《Duqu》各個部分的編譯時間戳,它的開發可以追溯到 XNUMX 年初。 其最早的表現形式與檢測 ~DO 類型的臨時檔案(可能由間諜軟體模組之一創建)相關,其創建日期為 XNUMX 年 XNUMX 月 XNUMX 日(文章 「Duqu 和 Stuxnet:有趣事件的時間表」)。 與 Duqu 相關的最近日期是 23 年 2012 月 2012 日,包含在賽門鐵克於 XNUMX 年 XNUMX 月發現的安裝程式下載驅動程式中。

使用的資訊來源:

系列文章 關於卡巴斯基實驗室的 Duqu;
賽門鐵克分析報告 “W32.Duqu 下一個 Stuxnet 的前身”,版本 1.4,2011 年 XNUMX 月(pdf)。

來源: www.habr.com

添加評論