OriginLogger:鍵盤記錄惡意軟件Agent Tesla的新變種。

2019 年 3 月 4 日,鍵盤記錄惡意軟件Agent Tesla被發現。

最近,研究人員發現了OriginLogger,這是一個基於Agent Tesla的惡意軟件。

我將在本文介紹 OriginLogger 鍵盤記錄器惡意軟件,看看它如何處理配置變量的字符串混淆,以及我在查看提取的配置時發現的內容。

Palo Alto Networks 客戶通過 Cortex XDR 和具有雲交付安全服務《包括 WildFire 和高級威脅預防》的下一代防火墻獲得 OriginLogger 及其前身惡意軟件 Agent Tesla 的保護。

OriginLogger:鍵盤記錄惡意軟件Agent Tesla的新變種。
OriginLogger的發現過程

在搜索過程中,我偶然發現了一個銷售『完全無法檢測』《FUD》工具的人在 2018 年發佈的 YouTube 視頻。

此人展示了帶有鏈接的 OriginLogger 工具,該鏈接可以從一個已知的網站購買該工具,該網站會傳播惡意軟件、漏洞利用等。

OriginLogger的部分功能

OriginLogger的全部功能

此外,他們還展示了 Web 面板和惡意軟件生成器。

OriginLogger Web 面板

OriginLogger 生成器

上圖顯示的生成器圖像對我來說特別有趣,因為它提供了一個默認字符串:facebook、twitter、gmail、instagram、movie、skype、porn、hack、whatsapp、discord,這可能是這個應用程序獨有的。

果然,在 VirusTotal 上的內容搜索顯示了 2022 年 5 月 17 日上傳的一個匹配文件《SHA256:595a7ea981a3948c4f387a5a6af54a70a41dd604685c72cbd2a55880c2b702ed》。

VirusTotal 搜索字符串

由於缺少依賴項,下載並嘗試運行此文件會導致錯誤。

但是,知道生成器的文件名 OriginLogger.exe,允許我擴展搜索並找到一個包含運行OriginLogger所需的所有文件的Zip歸檔文件 (SHA256: b22a0dd33d957f6da3f1cd9687b9b00d0ff2bdf02d28356c1462f3dbfb8708dd)。

Zip 壓縮文件中的捆綁文件

settings.ini 文件包含生成器將使用的配置,在下圖中我們可以看到 SmartWords 下列出的先前搜索字符串。

OriginLogger Builder settings.ini 文件

文件 profile.origin 包含客戶在購買 OriginLogger 時註冊的嵌入式用戶名/密碼。

OriginLogger 生成器登錄屏幕

有趣的是,如果你逆向配置文件中的值,就會顯示明文密碼。

profile.origin 文件的內容

OriginLogger 生成器登錄屏幕,以明文形式顯示密碼

當用戶登錄時,生成器會嘗試向 OriginLogger 服務器進行身份驗證以驗證訂閱服務。

此時,我有了兩個版本的構建器。

第一個(b22a0d*)包含在Zip文件中,編譯於2020年9月6日。

另一個包含SmartWords字符串(595a7e*)的版本是在2022年6月29日編譯的,大約在第一個版本的兩年之後。

更高版本通過 TCP/3345 向 IP 23.106.223[.]46 發出身份驗證請求。

自 2022 年 3 月 3 日起,此 IP 已解析到域 originpro[.]me。

此域已解析為以下 IP 地址:

第二個 IP,204.16.247[.]26,由於解析了這些其他 OriginLogger 相關域而脫穎而出:

這個嘗試連接到一個不同的IP地址進行身份驗證。

PCAP 顯示遠程 IP 地址

與 originpro[.]me 關聯的 IP 地址不同,74.118.138[.]76 不直接解析為任何 OriginLogger 域,而是解析為 0xfd3[.]com。

在此域上逆向顯示它包含mail.originlogger[.]com的DNS MX和TXT記錄。

從 2022 年 3 月 7 日左右開始,相關域開始解析為 IP 23.106.223[.]47,它在最後一個八位字節中比用於 originpro[.]me 的 IP《使用 46》高一個值。

這兩個 IP 地址共享了多個 SSL 證書:

共享 SSL 證書

以IP 23.106.223開頭的兩個服務器的RDP登錄屏幕。

X顯示有多個帳戶的Windows Server 2012 R2服務器。

RDP登錄界面為23.106.223[.]

在進一步搜索該域時,我發現了用戶 0xfd3 的 GitHub 配置文件,其中包含下圖中所示的兩個存儲庫。

用戶 0xfd GitHub

OriginLogger:鍵盤記錄惡意軟件Agent Tesla的新變種。
滴管

由於 Agent Tesla 和 OriginLogger 都是商業化的鍵盤記錄器,因此初始 dropper在不同的活動中會有很大的差異,不應被視為兩者都是獨一無二的。

我將以下內容作為攻擊釋放 OriginLogger 的真實示例來展示,並表明它們可能非常復雜和模糊。

初始誘餌文檔是一個Microsoft Word文件(SHA256: ccc8d5aa5d1a682c20b0806948bf06d1b5d11961887df70c8902d2146c6d1481)。

打開時,該文件顯示一張德國公民的護照照片以及一張信用卡。

我不太確定這對普通用戶有多大的吸引力,但無論如何,你都會注意到圖像下方包含許多 Excel 工作表,如下圖所示。

誘餌文件

這些工作表中的每一個都包含在單獨的嵌入式 Excel 工作簿中,並且完全相同:

在每個工作簿中都有一個單一的宏,它隻是保存要在以下位置執行的命令:

運行後,它將通過 MSHTA 下載並執行 hxxp://www.asianexportglass[.]shop/p/25.html 上的文件內容。

該網站的屏幕截圖如下圖所示。

網站看起來合法

該文件在文檔中間包含一個嵌入的混淆腳本作為註釋。

網站隱藏評論

取消轉換腳本會顯示下圖中所示的代碼,該代碼從 BitBucket 片段下載下一個有效負載 (hxxps://bitbucket[.]org/!api/2.0/snippets/12sds/pEEggp/8cb4e7aef7a46445b9885381da074c86ad0d01d6/files/snippet.txt)並使用名為 calsaasdendersw 的計劃任務建立持久性,該任務每 83 分鐘運行一次,並再次使用 MSHTA 執行 hxxp://www.coalminners[.]shop/p/25.html 中包含的腳本。

未轉換的腳本

BitBucket 網站上托管的代碼段包含進一步混淆的 PowerShell 代碼和兩個編碼和壓縮的二進制文件。

這兩個文件中的第一個《SHA256: 23fcaad34d06f748452d04b003b78eb701c1ab9bf2dd5503cf75ac0387f4e4f8》是使用 CSharp-RunPE 的 C# 反射加載器。

該工具用於挖空一個進程並在其中註入另一個可執行文件,在本例中,鍵盤記錄器有效負載將放置在 aspnet_compiler.exe 進程中。

執行dotNet程序集中包含的方法的PowerShell命令

請注意調用 Execute 方法的 projFUD.PA 類。

Morphisec 在 2021 年發佈了一個名為『揭示 Snip3 Crypter,一種高度規避的 RAT 加載器』的博客,他們在其中分析了一個加密器即服務,並使用該工件對加密器的開發者進行指紋識別。

兩個文件中的第二個《SHA256:cddca3371378d545e5e4c032951db0e000e2dfc901b5a5e390679adc524e7d9c》是 OriginLogger 有效負載。

OriginLogger:鍵盤記錄惡意軟件Agent Tesla的新變種。
OriginLogger 配置

如前所述,此分析的初衷是自動化並從鍵盤記錄器中提取與配置相關的詳細信息。

為了實現這一點,我首先查看了如何使用與配置相關的字符串。

我不會深入研究惡意軟件的任何實際功能,因為它是相當標準的,並且反映了對原有Agent Tesla 變體的分析。

為了開始提取與配置相關的細節,我需要弄清楚用戶提供的數據是如何存儲在惡意軟件中的。

結果很簡單,生成器將獲取動態字符串值並將它們連接成一個巨大的文本塊,然後將其編碼並存儲在一個字節數組中,以便在運行時進行解碼。

一旦惡意軟件運行並命中需要字符串的特定函數,例如將屏幕截圖上傳到的 HTTP 地址,它會將偏移量和字符串長度傳遞給函數,然後該函數將在塊中的該位置顯示出文本。

為了說明這一點,你可以在下面看到用於主要文本塊的解碼邏輯。

OriginLogger 明文塊解碼

每個字節通過字節數組中的字節索引進行異或運算,並再次通過值 170 進行異或運算以顯示明文。

對於生成器生成的每個示例,此文本塊將根據配置的不同而有所不同,因此偏移量和定位將發生變化。

查看下圖中顯示的原始文本很有幫助,但如果不將其連接起來觀察,就很難確定邊界在哪裡結束或開始。

明文數據塊

當需要分析惡意軟件時,它也沒有幫助,因為你無法辨別什麼時候或在哪裡使用了哪些內容。

為了解決下一個問題,我需要了解OriginLogger如何處理拼接。

下面你可以看到負責分割字符串的函數,後面是包含偏移量和長度的各個方法的開頭。

OriginLogger 字符串函數

在本例中,如果惡意軟件在某個時間點調用了 B() 方法,它會將 2、2、27 傳遞給圖像頂部的混淆後的無名函數。

第一個整數用於存儲解碼字符串的數組索引。

然後將第二個整數(offset)和第三個整數(length)傳遞給GetString函數以獲取文本。

對於這個特定條目,結果值《如下所示》在創建它上傳的 HTML 頁面期間使用,以顯示被盜數據。

了解字符串解析的工作原理後,我就可以自動提取這些字符串。

首先,查看底層中間語言 (IL) 匯編指令會有所幫助。

用於字符串函數的 OriginLogger IL 指令

對於每一個這樣的查找,函數塊的結構將保持不變。

在上圖中的索引 6-8 處,你將看到三個 ldc.i4.X 指令,其中 X 指示一個整數值,該整數值將在調用之前描述的拼接函數之前被推入堆棧。

這種整體結構創建了一個框架,然後可以使用該框架來匹配二進制文件中的所有相應函數以進行解析。

利用這一點,我編寫了一個腳本來識別編碼的字節數組,確定異或值,然後以惡意軟件使用的相同方式拼接解碼的塊。

此時,你可以滾動瀏覽解碼的字符串並查找感興趣的內容。

一旦識別出某些內容,知道了偏移量和隨後的函數名,就可以利用惡意軟件了。

OriginLogger 解碼字符串

此時,我開始重命名混淆的方法以反映它們的實際值,這使得分析更容易。

OriginLogger FTP 上傳函數

需要注意的是,通過將字符串類型指定為委托並識別感興趣的令牌,可以使用 de4dot 及其動態字符串解密功能來實現相同的字符串反混淆,這對於單個文件分析非常有效。

下圖是2020年3月上傳的Chrome密碼恢復代碼:

Chrome 密碼恢復

將上圖與帶有重命名方法的OriginLogger示例代碼進行比較,如下圖所示。

OriginLogger Chrome 密碼竊取函數

OriginLogger:鍵盤記錄惡意軟件Agent Tesla的新變種。
通過工件識別 OriginLogger

使用這個工具,我提取了1917個不同的配置,這可以深入了解所使用的泄露方法,並允許基於底層基礎設施對樣本進行聚類。

例如,為將鍵盤記錄器和屏幕截圖數據上傳到的示例配置的 一個URL 是 hxxps://agusanplantation[.]com/new/new/inc/7a5c36cee88e6b.php。

該 URL 不再處於活動狀態,因此我開始搜索有關它的歷史信息,以了解這些 HTTP POST 請求的接收端是什麼。

通過將域插入 URLScan.io,它會在同一目錄中顯示面板的登錄頁面,但更重要的是,在四個月前掃描此主機時,在此主機上觀察到了 OriginLogger Web 面板《SHA256:c2a4cf56a675b913d8ee0cb2db3864d66990e940566f57cb97a9161bd262f271》。

域的 URLScan.io 掃描歷史記錄

同樣,其中一種泄露方法是通過 Telegram 木馬。

為了使用它們,OriginLogger 需要包含一個 Telegram 木馬令牌,以便惡意軟件可以與之交互。

這為分析正在使用的基礎設施提供了另一個獨特的機會。

在這種情況下,我可以使用令牌以相當於 whoami 命令的方式查詢 Telegram,並觀察木馬創建者使用的名稱。

下面是一些顯示相關命名的示例。

OriginLogger:鍵盤記錄惡意軟件Agent Tesla的新變種。
惡意基礎設施

與其他商業銷售的鍵盤記錄器一樣,OriginLogger 被全球范圍內的各種各樣的人用於各種惡意目的。

SMTP 仍然是用於泄露數據的主要機制,這很可能是因為:

流量將比其他包含的協議能更好地與正常用戶流量融合在一起。

攻擊者獲得被盜的電子郵件賬戶相對容易。

電子郵件提供商通常提供大量存儲空間。

在1909個樣本中,被盜數據有296個唯一的電子郵件收件人地址和334個用於發送數據的唯一電子郵件帳戶憑證。

FTP在1888個示例中配置,使用56個惟一的FTP服務器和79個惟一的FTP帳戶,多個帳戶登錄到不同的目錄,可能基於不同的活動。

在56個可訪問的服務器中,隻有11個被限制,有442個唯一的受害者,有些受害者被記錄了數百次。

Web上傳到OriginLogger面板的功能緊隨其後,並在1866個示例中進行了配置,上傳到92個惟一的url。

在分析這些url時,用於上傳的PHP文件在文件名中顯示了字母數字字符的模式,在目錄結構中顯示了兩個額外的模式。

查看下圖所示的web面板的源代碼,可以看到PHP文件名是一些隨機字節的MD5值,放在/inc/(傳入)目錄中。

用於setup.php的OriginLogger源代碼

注意,許多鍵盤記錄器購買者可能沒有太多技術經驗,並且傾向於使用為他們創造一切的『全方位服務』供應商。

我懷疑這是許多 URI 具有相似結構的原因。

例如,下面結構始終重復:

目錄的第一級顯示不太可能自動生成的值,這可能與帳戶相關:

同樣,此目錄結構將 inc 更改為 mawa 並將 webpanel 附加到名稱:

對於最後一種泄露方法,我們在1732個樣本中發現了Telegram,其中 181 個獨特的 Telegram 木馬接收被盜數據。

除了能夠為木馬發出 whoami 之外,我們還能夠查詢與上傳被盜信息的渠道相關的信息。

主要渠道

最後,一個不經常使用的功能是 OriginLogger 能夠在感染受害者系統後下載額外的有效負載。

在本文討論的示例中,隻有兩個配置為下載其他惡意軟件。

OriginLogger:鍵盤記錄惡意軟件Agent Tesla的新變種。
總結

OriginLogger 與 Agent Tesla 非常相似,是一種商品化的鍵盤記錄器惡意軟件,它們之間具有許多重疊的相似之處和代碼,但區分兩者以進行跟蹤和理解非常重要。

雖然鍵盤記錄器基本上都是為低級的攻擊者服務的,但其危害性也不容小覷。

參考及來源:https://unit42.paloaltonetworks.com/originlogger/