投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
最近,一家歐洲電氣安裝設備製造商聯繫了 Group-IB,其員工收到了一封可疑信件,其中包含惡意附件。 伊利亞·波梅蘭采夫CERT Group-IB 的惡意軟體分析專家對此文件進行了詳細分析,發現了其中的 AgentTesla 間諜軟體,並講述了此類惡意軟體的預期結果及其危險性。

透過這篇文章,我們將推出一系列關於如何分析此類潛在危險文件的文章,我們正在等待 5 月 XNUMX 日最好奇的人參加有關該主題的免費互動式網路研討會 《惡意軟體分析:真實案例分析》。所有的細節都在切割之下。

分配機制

我們知道惡意軟體透過網路釣魚電子郵件到達受害者的電腦。這封信的收件人可能已被密件副本。

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
對標頭的分析表明,信件的寄件者受到了欺騙。事實上,這封信留下了 vps56[.]oneworldhosting[.]com.

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
電子郵件附件包含 WinRar 存檔 qoute_jpeg56a.r15 帶有惡意可執行文件 QOUTE_JPEG56A.exe 裡面。

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

惡意軟體生態系統

現在讓我們看看所研究的惡意軟體的生態系統是什麼樣的。下圖顯示了其結構和組件互動的方向。

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
現在讓我們更詳細地了解每個惡意軟體元件。

裝載機

原始文件 QOUTE_JPEG56A.exe 是一個已編譯的 AutoIt v3 腳本。

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
為了混淆原始腳本,使用類似的混淆器 PELock AutoIT 混淆器 特徵。
反混淆分三個階段進行:

  1. 消除混淆 對於-如果

    第一步是恢復腳本的控制流程。控制流程扁平化是保護應用程式二進位程式碼免於分析最常見的方法之一。令人困惑的轉換極大地增加了提取和識別演算法和資料結構的複雜性。

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  2. 行恢復

    有兩個函數用於加密字串:

    • gdorizabegkvfca - 執行類似 Base64 的解碼

      投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

    • xgacyukcyzxz - 第一個字串與第二個字串的長度的簡單位元組異或

      投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  3. 消除混淆 二進制轉字串 и 執行

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

主要負載以劃分形式存放在目錄中 字體 文件的資源部分。

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
塗膠順序如下: 鐵EQHCXWFG, , SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, 奧奇克羅威斯克沃, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, 和王家豪, AVZOUMVFRDWFLWU.

WinAPI函數用於解密提取的數據 地穴解密,並根據該值產生會話密鑰作為密鑰 fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

解密後的可執行檔被傳送到函數輸入 運行PE,執行 行程注入 в RegAsm程序 使用內建的 外殼程式碼 (也稱為 運行PE外殼程式碼)。作者權屬於西班牙語論壇的用戶 不可檢測物[.]網 綽號“Wardow”。

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
還值得注意的是,在該論壇的一個主題中,有一個混淆器 AutoIt的 具有在樣品分析過程中發現的類似特性。

他自己 外殼程式碼 非常簡單且吸引人的注意力,只是從駭客組織 AnunakCarbanak 借來的。 API呼叫哈希函數。

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

我們也了解用例 法語 Shellcode 不同的版本。
除了所描述的功能之外,我們還確定了不活動的功能:

  • 阻止任務管理器中的手動程序終止

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  • 子程序終止時重新啟動它

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  • 繞過UAC

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  • 將有效負載儲存到文件中

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  • 模態視窗演示

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  • 等待滑鼠遊標位置改變

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  • 反虛擬機器和反沙箱

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  • 自我毀滅

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  • 從網路中泵送有效負載

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

我們知道這種功能是保護器的典型功能 賽弗IT,顯然,這就是有問題的引導程式。

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

軟體主要模組

接下來,我們將簡要描述該惡意軟體的主要模組,並在第二篇文章中更詳細地考慮它。在本例中,它是一個應用程式 。NET.

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
在分析過程中,我們發現使用了混淆器 混淆者EX.

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

IE庫.dll

該庫作為主模組資源存儲,是一個眾所周知的插件 代理特斯拉,它提供從 Internet Explorer 和 Edge 瀏覽器提取各種資訊的功能。

Agent Tesla 是一款模組化間諜軟體,以合法的鍵盤記錄產品為幌子,使用惡意軟體即服務模型進行分發。 Agent Tesla 能夠從瀏覽器、電子郵件用戶端和 FTP 用戶端提取使用者憑證並將其傳輸到伺服器給攻擊者,記錄剪貼簿資料並擷取裝置螢幕。截至分析時,開發商的官方網站無法存取。

入口點是函數 取得已儲存的密碼 InternetExplorer 類別。

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分
一般來說,程式碼執行是線性的,並且不包含任何針對分析的保護。只有未實現的功能才值得關注 取得已儲存的Cookie。顯然,該插件的功能應該會擴展,但這從未實現。

投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

將引導程式附加到系統

讓我們研究一下引導程式是如何連接到系統的。所研究的樣本不會錨定,但在類似事件中,它會根據以下方案發生:

  1. 在文件夾中 C:用戶公共 腳本已創建 Visual Basic中

    腳本示例:

    投票失敗:讓我們讓特斯拉特工接觸乾淨的水。 第1部分

  2. 載入器檔案的內容用空字元填滿並儲存到資料夾中 %Temp%<自訂資料夾名稱><檔案名稱>
  3. 在註冊表中為腳本檔案建立自動運行鍵 HKCUSoftwareMicrosoftWindowsCurrentVersionRun<腳本名稱>

因此,根據第一部分分析的結果,我們能夠確定所研究的惡意軟體所有元件的家族名稱,分析感染模式,並取得用於寫入簽章的物件。我們將在下一篇文章中繼續分析該對象,其中我們將更詳細地查看主模組 代理特斯拉。千萬不要錯過!

順便說一句,5 月 XNUMX 日,我們邀請所有讀者參加主題為「惡意軟體分析:真實案例分析」的免費互動網路研討會,本文作者(CERT-GIB 專家)將在線上展示惡意軟體分析的第一階段惡意軟體分析-以實踐中的三個真實迷你案例為例,對樣本進行半自動解包,您可以參與分析。此網路研討會適合具有分析惡意檔案經驗的專家。註冊嚴格透過公司電子郵件進行: 登記。等著你!

雅苒

rule AgentTesla_clean{
meta:
    author = "Group-IB"
    file = "78566E3FC49C291CB117C3D955FA34B9A9F3EEFEFAE3DE3D0212432EB18D2EAD"
    scoring = 5
    family = "AgentTesla"
strings:
    $string_format_AT = {74 00 79 00 70 00 65 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 68 00 77 00 69 00 64 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 74 00 69 00 6D 00 65 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 63 00 6E 00 61 00 6D 00 65 00 3D 00 7B 00 33 00 7D 00 0D 00 0A 00 6C 00 6F 00 67 00 64 00 61 00 74 00 61 00 3D 00 7B 00 34 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 3D 00 7B 00 35 00 7D 00 0D 00 0A 00 69 00 70 00 61 00 64 00 64 00 3D 00 7B 00 36 00 7D 00 0D 00 0A 00 77 00 65 00 62 00 63 00 61 00 6D 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 37 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 38 00 7D 00 0D 00 0A 00 5B 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 73 00 5D 00}
    $web_panel_format_string = {63 00 6C 00 69 00 65 00 6E 00 74 00 5B 00 5D 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 6C 00 69 00 6E 00 6B 00 5B 00 5D 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 75 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 5B 00 5D 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 5B 00 5D 00 3D 00 7B 00 33 00 7D 00 00 15 55 00 52 00 4C 00 3A 00 20 00 20 00 20 00 20 00 20 00 20 00 00 15 55 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 3A 00 20 00 00 15 50 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 3A 00}
condition:
     all of them
}

rule  AgentTesla_obfuscated {
meta:
    author = "Group-IB"
    file = "41DC0D5459F25E2FDCF8797948A7B315D3CB075398D808D1772CACCC726AF6E9"
    scoring = 5
    family = "AgentTesla"
strings:
    $first_names = {61 66 6B 00 61 66 6D 00 61 66 6F 00 61 66 76 00 61 66 79 00 61 66 78 00 61 66 77 00 61 67 6A 00 61 67 6B 00 61 67 6C 00 61 67 70 00 61 67 72 00 61 67 73 00 61 67 75 00}
    $second_names = "IELibrary.resources"
condition:
     all of them
}

rule AgentTesla_module_for_IE{
meta:
    author = "Group-IB"
    file = "D55800A825792F55999ABDAD199DFA54F3184417215A298910F2C12CD9CC31EE"
    scoring = 5
    family = "AgentTesla_module_for_IE"
strings:
    $s0 = "ByteArrayToStructure" 
    $s1 = "CryptAcquireContext" 
    $s2 = "CryptCreateHash" 
    $s3 = "CryptDestroyHash" 
    $s4 = "CryptGetHashParam" 
    $s5 = "CryptHashData"
    $s6 = "CryptReleaseContext" 
    $s7 = "DecryptIePassword" 
    $s8 = "DoesURLMatchWithHash" 
    $s9 = "GetSavedCookies" 
    $s10 = "GetSavedPasswords" 
    $s11 = "GetURLHashString"  
condition:
     all of them
}

rule RunPE_shellcode {
meta:
    author = "Group-IB"
    file = "37A1961361073BEA6C6EACE6A8601F646C5B6ECD9D625E049AD02075BA996918"
    scoring = 5
    family = "RunPE_shellcode"
strings:
    $malcode = {
      C7 [2-5] EE 38 83 0C // mov     dword ptr [ebp-0A0h], 0C8338EEh
      C7 [2-5] 57 64 E1 01 // mov     dword ptr [ebp-9Ch], 1E16457h
      C7 [2-5] 18 E4 CA 08 // mov     dword ptr [ebp-98h], 8CAE418h
      C7 [2-5] E3 CA D8 03 // mov     dword ptr [ebp-94h], 3D8CAE3h
      C7 [2-5] 99 B0 48 06 // mov     dword ptr [ebp-90h], 648B099h
      C7 [2-5] 93 BA 94 03 // mov     dword ptr [ebp-8Ch], 394BA93h
      C7 [2-5] E4 C7 B9 04 // mov     dword ptr [ebp-88h], 4B9C7E4h
      C7 [2-5] E4 87 B8 04 // mov     dword ptr [ebp-84h], 4B887E4h
      C7 [2-5] A9 2D D7 01 // mov     dword ptr [ebp-80h], 1D72DA9h
      C7 [2-5] 05 D1 3D 0B // mov     dword ptr [ebp-7Ch], 0B3DD105h
      C7 [2-5] 44 27 23 0F // mov     dword ptr [ebp-78h], 0F232744h
      C7 [2-5] E8 6F 18 0D // mov     dword ptr [ebp-74h], 0D186FE8h
      }
condition:
    $malcode 
}

rule AgentTesla_AutoIT_module{
meta:
    author = "Group-IB"
    file = "49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08C05B5E3BD36FD52668D196AF"
    scoring = 5
    family = "AgentTesla"
strings:                                    
    $packedexeau = {55 ED F5 9F 92 03 04 44 7E 16 6D 1F 8C D7 38 E6 29 E4 C8 CF DA 2C C4 E1 F3 65 48 25 B8 93 9D 66 A4 AD 3C 39 50 00 B9 60 66 19 8D FC 20 0A A0 56 52 8B 9F 15 D7 62 30 0D 5C C3 24 FE F8 FC 39 08 DF 87 2A B2 1C E9 F7 06 A8 53 B2 69 C3 3C D4 5E D4 74 91 6E 9D 9A A0 96 FD DB 1F 5E 09 D7 0F 25 FB 46 4E 74 15 BB AB DB 17 EE E7 64 33 D6 79 02 E4 85 79 14 6B 59 F9 43 3C 81 68 A8 B5 32 BC E6}
condition:
     all of them
}

哈希

姓名 qoute_jpeg56a.r15
MD5 53BE8F9B978062D4411F71010F49209E
SHA1 A8C2765B3D655BA23886D663D22BDD8EF6E8E894
SHA256 2641DAFB452562A0A92631C2849B8B9CE880F0F8F

890E643316E9276156EDC8A

類別 存檔 WinRAR
尺寸 823014
姓名 QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

類別 PE(編譯的 AutoIt 腳本)
尺寸 1327616
原名 未知
日期戳 15.07.2019
鏈接 微軟連結器(12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

類別 外殼程式碼
尺寸 1474

來源: www.habr.com

添加評論