不在沉默中爆发就在沉默中死亡,处于沉寂状态的 Emotet 僵尸网络是怎样卷土重来的?(一)
在 2019年大部分時間里處于沉寂狀態的 Emotet 僵尸網絡又重新爆發了! 研究人員認為,Emotet 可能正是在這段沉寂期間進行的基礎設施維護和升級,只要它的服務器重新啟動并運行,Emotet 便會攜全新增強型威脅函數強勢回歸。
Emotet感染鏈分析
有證據表明,Emotet背后的運營團隊Mealybug已經從維護自己的自定義銀行木馬發展成為了其他組織的惡意軟件的分銷商。在過去的一兩個月中,研究人員已經確定了許多組織和政府機構受到了新一代Emotet的銀行木馬惡意軟件的影響。除了惡意垃圾郵件活動之外,研究人員還看到Emotet用于安裝其他形式的惡意軟件(例如MegaCortex)或部署勒索軟件病毒(例如Ryuk)。MegaCortex是一只專門經由Emotet木馬聯網下載的勒索軟件,加密文檔后向被害人獲取贖金。今年8月IBM發現MegaCortex在美、法、荷及加國作亂,發作后會刪光用戶磁盤數據。但是近日研究人員Vitali Kremez及BleepingComputer發現,這只惡意程序的新變種更為兇猛,啟動后會顯示一則附上黑客收款用電子郵件,奇熱內文為“Locked by MegaCortex”的勒索消息,但更厲害的是,它還會變更Windows系統的登錄密碼。
11月初,中國國內多家企業受到Emotet銀行木馬郵件攻擊。此次攻擊主要是利用大量群發釣魚郵件,其郵件內容偽裝成各種類型的商務往來信息,包括:發票交易、收據、會議邀請等。Emotet木馬運行后會收集系統信息,加密后發送至服務器,然后繼續下載第三方載荷,包括Qbot,The Trick等其他木馬程序。統計數據,Emotet針對國內的釣魚郵件攻擊最嚴重地區為廣東、北京、浙江、上海等地。數據顯示,近期Emotet木馬針對國內的攻擊呈明顯上升趨勢,從事進出口貿易的企業是Emotet銀行木馬的主要目標。
自 2014 年Emotet被發現以來,它一直被用作銀行木馬。在短短 5 年的時間里,Emotet 已成功演變成目前最臭名昭著的網絡威脅之一但從 2018 年開始,研究人員看到它在多起大型惡意垃圾郵件(malspam)活動中被用作僵尸網絡,并用于傳播其他惡意軟件。目前,它在全球惡意軟件的排名中仍然高居前列。
Emotet是一個可執行文檔,最初是作為銀行木馬開發的。然而,近年來,它已演變成一個更具攻擊性的惡意軟件傳播網絡。一旦目標設備被感染,它可以用來執行垃圾郵件活動或下載其他惡意軟件樣本。Emotet發起的攻擊活動非常專業,所以簽名安全查詢不太可能有效。
在評估Emotet對企業造成的風險級別時,重要的是要了解,安全檢測軟件只是位于安全堆棧的底部,因此很難準確發現Emotet造成的攻擊。
感染生命周期
Emotet主要是進行電子郵件網絡釣魚活動的,攻擊時,用戶將收到一封看似正常的電子郵件,內容都是關于發票,訂單或未付帳單。當用戶打開文檔,該文檔可能是許多惡意軟件類型之一。然后,該文檔將調用批處理腳本,然后調用PowerShell,以循環瀏覽多個URL,以下載Emotet有效載荷。之后,有效載荷將運行,然后繼續從事攻擊。
在這篇文章中,我將介紹一個邪惡文檔使用Emotet感染您的計算機的進程。
惡意文檔
在此示例中,文檔以電子郵件的附件形式出現,該附件聲稱是收件人可能已經下達的大筆訂單,附件名為ORDER_DETAILS_FILE.doc。
該文檔由一組混淆宏構成的,這些宏在兩次攻擊之間似乎基本保持不變如果文檔已經在Microsoft Office保護模式下打開,則文檔本身使用了一點社會工程,方法是請求用戶啟用編輯函數,以便能夠查看或編輯文檔。
可以看出,文檔的左上角是一個很小的文本框(由映像中的紅色圓圈突出顯示),它很小,幾乎看起來像是屏幕上的壞點。可以在此編輯框中更改每個惡意軟件感染的位置。如果要對其進行擴展,則會在cmd.exe中找到稍后運行的命令行指令。宏抓取編輯框的內容,然后調用cmd.exe,將編輯框的內容作為參數傳遞。
批處理腳本
命令行是批處理腳本的混淆斑點,它大量使用環境變量擴展來構建要運行的命令。這種混淆處理有兩個目的:它使它很難靜態分析工具找出批處理腳本嘗試(這使其逃避了某些檢測技術),并且還提供了一種基本但有效的方法來阻止惡意軟件在非標準環境中執行,因此提供了一些附加的反分析函數。
在上面的批處理腳本(已對其進行了混淆處理)中可以看到一個示例,其中在腳本的第一行中使用了環境變量“SESSIONNAME”。展開后,此變量內容的某些字母用于構建單詞PowerShell。如果環境變量設置為意外值,則批處理腳本將無法建立單詞“PowerShell”,并且惡意軟件將停止工作。在正常會話中,該值為“Console”,而在RDP會話中,該值則類似于“RDP- tcp #1”。這使得腳本能夠非常快速地測試一個真正的用戶會話是否正在運行,或者文檔是否正在從RDP會話運行,這是一個惡意軟件分析師可能會做的事情
PowerShell?
批處理腳本最終生成一個PowerShell腳本,然后調用它。這個腳本循環遍歷一個包含5個URL的列表,這些URL被劫持來嘗試下載有效載荷。它遍歷每個URL,直到找到一個仍然有可用有效載荷的URL,然后下載“420.exe”。研究人員發現實際的編號在不同的文檔之間是不同的,但是通常exe的名稱都是三位數字。在研究人員的示例中,可執行文檔被下載到C:\Users\Public中,盡管在其他示例中,研究人員看到了可執行文檔也會被下載到C:\users\%username%\AppData\Local\Temp。
Emotet運行進程
此時,Emotet就開始運行,它會將exe從下載位置復制并重命名到C:\Windows\SysWOW64\ reswalaska.exe。至此,Emotet就擁有了你的系統。下圖顯示了以上進程的全部步驟。
緩解措施
對于運行Bromium安全平臺的設備來說,此類攻擊會被隔離在uVM中,并在用戶關閉Word文檔后立即將其刪除。如果安裝并啟用了Bromium安全平臺,則不需要進行必要的修復步驟。但是,最好還是從設備上刪除文檔,這樣可以防止文件被轉移到另一臺設備上。
從郵件服務器刪除電子郵件也是謹慎的做法,以避免不小心將其轉發給不受保護的其他用戶或組織。如果用戶將文件保存到本地文件系統、u盤或網絡文件共享,也應該刪除它。這些都不是必需的,但這將是一個好習慣。
對未安裝Bromium安全平臺的設備該怎么辦?
建議從郵件服務器中刪除電子郵件,以免將其意外轉發給其他用戶或組織。如果用戶將文件保存到本地文件系統、u盤或網絡文件共享,也應該刪除它。
沒有安全平臺的設備應該檢查Emotet有效載荷本身,它可能位于以下位置:
作為一種檢測設備是否被感染的方法,可以搜索代理日志,找出惡意軟件試圖下載有效載荷的域。只有在已經可以訪問示例以從中提取域的情況下,這才有效。對于在虛擬機內部檢測到惡意軟件的Bromium客戶而言,這應該很容易做到,以防止它傳播到不受Bromium保護的其他設備。
在我撰寫此文時,以下這些域仍在提供惡意載荷,因此你應謹慎對待。
如果發現了惡意軟件的跡象,最好將計算機與網絡隔離并重新映像。 Emotet可用于下載其他未知惡意軟件,盡管依靠來自防護軟件的掃描最終會發現Emotet,但可能還要花費更多時間才能檢測到Emotet提供的任何有效載荷。
如何發現Emotet的網絡釣魚活動
要發現Emotet,就要對Emotet的網絡釣魚活動的行為進行分析,并深入研究通過運行Microsoft Word文檔中經過混淆VBA宏來釋放有效載荷的能力。
Emotet是一個高度模塊化的銀行木馬,具有對應的基于決策樹的算法來執行指定任務。
由于Emotet具有傳遞混淆有效載荷并通過自升級模塊擴展其函數的能力,因此它已成為針對組織進行有針對性攻擊的常用有效載荷下載器。
Emotet的運營商采用了“惡意軟件即服務”業務模型,該木馬用于下載和傳播Trickbot等其他惡意軟件系列。
自從2014年成立為銀行木馬以來,Emotet一直發展,直到成為一個多組件惡意軟件家族。多年來,它采用了高度靈活的代碼庫,該庫現在包括以下函數:
1.使用封裝程序逃避惡意軟件分類;
2.使用反分析技術;
3.間接執行有效載荷以破壞基于流程鏈的分析;
4.通過啟動有效載荷即服務或竊取管理員憑據來行權限升級;
5.跨攻擊階段的混淆代碼;
6.使用多種持久性機制;
7.加密的導入和函數名稱;
8.代碼中的多個JMP指令會混淆反向工程工具;
9.自我升級模塊;
10.在受到威脅的網絡內肆意傳播的能力;
11.通過從網絡瀏覽器和電子郵件客戶端竊取通訊錄和憑據,使受感染主機能夠發送網絡釣魚電子郵件活動;
惡意行為分析
在本文中,研究人員將深入研究其通過運行Microsoft Word文檔中混淆VBA宏來刪除有效載荷的能力。在下一篇文章中,研究人員會舉一個Emotet示例的二進制進行分析,探索惡意軟件是如何工作的。
在這篇文章中,研究人員從Bromium 安全平臺隔離的近期攻擊中獲得了一個樣本。
Receipt (1).doc
MD5 097acffec441bdcd69ff3c56fdf0f615
SHA1 7049bbf580e598cc6bf111a0670f0d25a8ccd6c0
SHA256 6a1a7e4618a1803fce47331915610ffacc49abf261ee5783ef409e20b78c8e6d
惡意下載程序
樣本中的Emotet攻擊活動以超鏈接的形式傳播,該超鏈接下載了Microsoft Word文檔。打開后,文檔會提示用戶單擊“啟用內容”。默認情況下,如果文檔包含宏或ActiveX控件,Microsoft Word會以安全警告提示用戶。通常情況下,惡意軟件作者利用社交工程誘騙用戶單擊“啟用內容”按鈕,以進行下一階段的攻擊。
在本例中,啟用內容會使文檔執行VBA AutoOpen宏。正如Emotet VBA腳本中所預期的那樣,字符串被嚴重混淆,并包含許多零散的字符串。這是一項眾所周知的技術,它使靜態分析引擎更難檢測惡意內容。
研究人員將遍歷腳本以找到有趣的模式并對代碼進行混淆處理:
混淆AutoOpen宏
變量‘dBCwQQZ’用字符串 ‘winmgmts:Win32_Process’定義
變量' TCXD_U '是用字符串' GetObject(winmgmts:Win32_ProcessStartup) '定義的
變量 ‘jDD_UwDB’由字符串 ‘GetObject(winmgmts:Win32_Process).Create’定義
將 ‘GetObject(winmgmts:Win32_ProcessStartup).ShowWindow’ 的參數設置為0
構造字符串‘powershell -e’
可以看到,VBA腳本引用了WMI類winmgmts:Win32_ProcessStartup和winmgmts:Win32_Process。執行時,autoopen() Sub使用這些WMI類啟動PowerShell實例,該實例在后臺運行Base64編碼的命令。
間接執行
在Bromium控制器中查看了Base64編碼的PowerShell命令
由于宏使用WMI來運行PowerShell,所以進程在后臺使用WmiPrvSe.exe (WMI提供程序主機)啟動。通過以這種方式執行PowerShell,惡意軟件作者可以避開基于進程鏈的檢測。
正如研究人員有關Ursnif使用的逃避技術的文章中所解釋的那樣,這是一種使用合法Windows進程從宏啟動PowerShell的已知技術。Bromium檢測到這種間接執行的類型,并將所有相關的進程創建歸因于負責運行惡意VBA代碼(在本例中為WINWORD.exe)的原始可執行文檔。
混淆PowerShell命令
對Base64編碼的字符串進行解碼后,將產生如下圖所示的輸出。使用相同的字符串連接和大小寫不匹配技術來混淆該命令,從而使分析人員和掃描引擎更難以理解。
解碼后的字符串包含一個‘+’ 字符(用于連接字符串)和大小寫混合字符
只需刪除所有‘+’ 字符即可顯示反混淆命令:
刪除所有‘+’字符后的命令輸出
上面的PowerShell命令展開并解碼Base64編碼的字符串,并將其作為數據流讀取,直到到達字符串末尾為止。然后,它使用Invoke-Expression cmdlet的 ‘iex’ 別名在內存中運行結果輸出,這是惡意軟件作者執行命令的另一種流行技術。為了實現這一目標,它使用了變量$Verbosepreference,其中包含字符串 ‘SilentlyContinue’。從字符串中選擇第一個和第三個字符(‘i’ 和 ‘e’),然后將其與‘X’連接起來以形成字符串 ‘ieX’。
字符串 ‘ieX’的形成,即Invoke-Expression cmdlet的別名
混淆PowerShell腳本
?
經過去混淆處理的PowerShell腳本首先使用'@'字符作為分隔符來拆分分配給變量$XXQCZAxA的字符串,然后進入ForEach循環,該循環迭代所得的URI數組,以使用Net.WebClient將可執行文檔下載到受害者的文檔系統中。類。該腳本使用環境變量$ env:userProfile來獲取當前登錄用戶的用戶配置文檔目錄。下載的文檔將以文檔名“ 15.exe”保存到受害者的用戶個人資料目錄(例如C:\ Users \ [Username])。如果下載的文檔大小大于40KB,則腳本將退出ForEach循環,并使用Invoke-Item cmdlet運行“ 15.exe”。
經過反混淆處理的PowerShell命令
HTTP GET請求
從下面的截圖中可以看到,PowerShell命令發送了一個HTTP GET請求,以從 hxxp://dautudatnenhoalac[.]com/wp-admin/DYAsI中檢索第一階段的Emotet可執行文檔。來自網絡服務器的響應指示所提供的文檔名為 ‘s17zjCTuWfNF.exe’,并且有效載荷是PE格式的文檔,如該文檔開頭的魔術字節0x4D5A('MZ')的ASCII表示所示。
HTTP GET請求,該請求下載第一階段的Emotet有效載荷
惡意行為分析
下載有效載荷后,PowerShell運行’15.exe’ (PID: 2600)。然后,該進程從同一位置啟動另一個 ’15.exe’ (PID: 2412) 實例。
通過PowerShell處理啟動15.exe
’15.exe’ (PID: 2412) 的第二個實例將其自身復制到名為 ‘ipropmini.exe’的C:\Windows\SysWOW64 目錄。然后,它創建一個服務,其中BinaryPath指向 C:\Windows\SysWOW64\ipropmini.exe,而DesiredAccess為18。DesiredAccess'18'授予對該服務的SERVICE_CHANGE_CONFIG和SERVICE_START訪問權限。
創建服務以建立持久性
由于多種原因,通過Windows服務啟動二進制文檔是一種流行的技術。首先,它破壞了基于流程鏈的檢測,其次,在服務啟動時,即使二進制文檔不是有效的服務可執行文檔,也始終會執行該二進制文檔。
可執行文檔‘ipropmini.exe’ (由services.exe啟動)產生自己的另一個實例,然后從Internet下載下一階段的有效載荷。然后,可執行文檔在第一個Emotet進程(‘15.exe’)上執行Process Hollowing,進而寫入修改后的代碼。
第一個Emotet進程‘15.exe’中的進程為空 (PID: 2600)
如果讓Emotet繼續運行,它將從遠程服務器下載更多的有效載荷,生成多個進程并收集系統信息,然后通過加密的通道將其發送到命令與控制(C2)服務器。
在Bromium控制器中查看進程交互圖
在Emotet感染生命周期中引發攻擊
HTTP POST請求
Emotet使用HTTP POST將與系統相關的信息發送到C2服務器,并接收來自服務器的進一步命令和有效載荷作為響應。
對C2服務器的HTTP POST請求
IOC
https://www.bromium.com/emotet-analysis-catch-me-if-you-can/
https://www.bromium.com/emotet-technical-breakdown/
總結
以上是生活随笔為你收集整理的不在沉默中爆发就在沉默中死亡,处于沉寂状态的 Emotet 僵尸网络是怎样卷土重来的?(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Word 和 LaTeX 文档相互转换
- 下一篇: 用于监控的开源软件