您好,登錄后才能下訂單哦!
本篇文章為大家展示了利用Office文檔結合社會工程學手段欺騙用戶執(zhí)行惡意代碼的示例分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Microsoft Office文檔為攻擊者提供了各種欺騙受害者運行任意代碼的方法。當然,攻擊者可能會嘗試直接利用Office漏洞,但更常見的情況是向受害者發(fā)送包含惡意代碼的文檔。 與此同時,微軟也一直在制定安全措施。一般措施當文檔從internet上下載時,并不會直接打開,而是在受保護視圖中打開它們。
Office 2016和Office 365使用其他安全措施(如GPO),以便在從Internet下載文檔時完全禁用宏。而且Packer文件擴展名黑名單,阻止黑名單文件類型的運行。 當然,這些保護并不完美,但它們有助于減少這類攻擊。最近,Matt Nelson演示了SettingContent-ms
文件可用于運行任意命令。這些文件最初不在黑名單中,因此可用于欺騙受害者從Office文檔運行SettingContent-ms
文件。但此文件類型現(xiàn)已添加到黑名單中,以保護Office 2016/365用戶。在2018年8月補丁周二期間,微軟還發(fā)布了一個修復程序,如果這些文件沒有從%WinDir%\ImmersiveControlPanel
打開,就阻止它們被打開。在這篇博客中,我將展示另外兩種誘導受害者運行惡意代碼的方法。兩種方法都需要一定量的用戶交互。
所述Shell.Explorer.1
OLE對象(CLSID {EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B}
)充當嵌入Windows資源管理器或嵌入式的Internet Explorer。此OLE對象可以嵌入Office文檔中,并作為持久對象保存在文檔中。專有格式用于持久化Shell.Explorer.1
對象,可以在偏移量76(0x4C)
處找到。位于此偏移處的結構是ShellLink(LNK)
結構的 MS-SHLLINK 。 初始化(加載)Shell.Exporer.1
對象時,ShellLink
結構將被解析為常規(guī)LNK文件。然后,該對象從ShellLink
獲取ID列表,并使用它來導航(瀏覽)到提供的文件,文件夾或網站。
提供文件夾路徑時,該對象的行為類似于Windows資源管理器。可以瀏覽文件或文件夾,甚至可以通過雙擊來執(zhí)行文件。攻擊者可能會濫用此功能來嵌入Windows資源管理器。如果攻擊者可以說服其受害者雙擊攻擊者控制的文件,則可以遠程運行可執(zhí)行代碼。 但是這種攻擊似乎很難實現(xiàn)。首先,OLE對象需要單擊才能激活,其次,用戶需要雙擊OLE對象才能實際獲得可用的Windows資源管理器視圖。最后,用戶還需要雙擊Windows資源管理器視圖中的文件。 在管理員限制瀏覽某些文件夾或驅動器的可能性的情況下,嵌入Windows資源管理器對象會很方便。例如,如果限制對C:
驅動器的訪問,則本地用戶可以使用包含嵌入式Windows資源管理器的Office文檔來規(guī)避此限制。此外,該對象可用于竊取NetNTLM哈希值,但由于這對Office文檔并不難,因此使用單擊的OLE對象進行激活是沒有意義的。
當Shell.Explorer.1
充當嵌入式Internet Explorer時,事情會變得更有意思。除了可以在文檔中嵌入Web瀏覽器之外,它還允許瀏覽本地計算機上的文件,以及瀏覽到遠程位置(共享和網站)上的文件。沒有一些用戶交互,這是不可能完成的。單擊激活也適用于此模式,單擊該對象將觸發(fā)Internet Explorer的文件下載功能,這意味著將向用戶顯示“文件下載”對話框。如果用戶單擊“ 運行”或“ 打開”(取決于文件格式),則將執(zhí)行該文件。
某些文件類型(如EXE文件)將觸發(fā)另一個警告對話框。但是通過使用其他可執(zhí)行文件類型可以輕松避免此對話框。
保護模式IE被禁用用于控件,這確實會阻止顯示其他對話框——如UAC對話框。因此,只需要兩次單擊就可以運行惡意代碼,即單擊以激活,然后運行/打開。
下面的PowerShell腳本將嘗試創(chuàng)建包含嵌入式Internet Explorer對象的Word文檔。該腳本使用Packager對象創(chuàng)建一個嵌入文件的對象,單擊該對象將觸發(fā)文件下載功能。
Microsoft Forms 2.0對象庫包含許多可以在Office文檔中使用的“HTML”ActiveX
控件。這些控件標記為可安全初始化,并且不要求用戶為嵌入它們的文檔啟用ActiveX。存儲格式比Shell.Explorer.1
對象簡單得多。本質上,它由對象的CLSID和HTML片段(UTF-16編碼)組成。HTML片段不一定必須格式正確,對象只會搜索它支持的屬性。兩個對象支持action屬性,該屬性采用URL。這些對象是:
- Forms.HTML:Image.1 (CLSID {5512D112-5CC6-11CF-8D67-00AA00BDCE1D})
Forms.HTML:Submitbutton.1 (CLSID {5512D110-5CC6-11CF-8D67-00AA00BDCE1D})
單擊設置action屬性的嵌入對象,將導致打開定義的URL。常規(guī)URL將在默認瀏覽器中打開,但文件URL(包括共享文件)將直接打開。將顯示一個警告對話框,但此對話框與其他警告對話框略有不同,如圖6所示。此警告對話框對于所有文件類型都是相同的。
Forms.HTML:Image.1
接受一個src,可用于配置文檔中顯示的圖像。使用圖像可以偽裝對象,例如將其偽裝成嵌入文檔以誘使受害者點擊它。 應該注意的是,當Office文檔包含Web標記時,會顯示另一個警告對話框,表明它是從Internet下載的。此對話框更明確,從遠程攻擊者的角度來看,這種技術沒什么用。
以下PowerShell腳本可用于創(chuàng)建具有嵌入的Forms.HTML:Image.1
對象的Word文檔,單擊該對象將導致計算器打開。
如上所述,文檔可能包含Web標記以將文件標記為從因特網下載。如果存在,文檔將在受保護的視圖中打開。在此模式下,將禁用文檔中存在的任何嵌入對象。除非攻擊者使用繞過受保護視圖的漏洞,否則需要額外的社交工程來欺騙用戶單擊“ 啟用編輯”。
用戶應該注意包含以下任何對象的文檔:
- Shell.Explorer.1 / {EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B} Forms.HTML:Image.1 / {5512D112-5CC6-11CF- 8D67-00AA00BDCE1D}
Forms.HTML:Submitbutton.1 / {5512D110-5CC6-11CF-8D67-00AA00BDCE1D}
對于Shell.Explorer.1
對象從對象中提取LNK文件并檢索ID列表以找出打開時的內容單擊對象。我們的GitHub頁面上的ShellLink .NET類庫可用于從LNK文件中讀取ID列表。通常,LNK文件在Shell.Explorer.1
對象的偏移量76處開始。 HTML Forms對象更容易解析,因為它們是帶有16字節(jié)GUID的UTF-16編碼的HTML片段。防御者應該知道有多種方法可以在Office文檔中存儲對象。例如,ActiveX控件也可以嵌入為PersistPropertyBag
對象,其中對象的屬性設置在XML文件中(例如activeX1.xml
)。
Red Teamers(和攻擊者)一直在尋找新方法,他們并不關心什么符合安全修復的標準。作為一名防守者,知道什么樣的攻擊有助于阻止他們(工具者)。他不應止步于此,通過部署應用程序白名單和攻擊面減少規(guī)則(或類似替代方案)之類的東西來提高攻擊者的門檻。但更重要的是,確保能夠了解網絡上發(fā)生的事情,并尋找入侵者。
上述內容就是利用Office文檔結合社會工程學手段欺騙用戶執(zhí)行惡意代碼的示例分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。