一種新的JavaScript混淆方法利用不可見的Unicode字符來表示二進(jìn)制值,在針對美國政治行動(dòng)委員會(huì)(PAC)附屬機(jī)構(gòu)的網(wǎng)絡(luò)釣魚攻擊中被濫用。
發(fā)現(xiàn)此次攻擊的網(wǎng)絡(luò)威脅實(shí)驗(yàn)室報(bào)告稱,該攻擊發(fā)生在2025年1月初,并帶有復(fù)雜的跡象,例如使用了:
·針對受害者提供個(gè)性化的非公開信息;
·調(diào)試器斷點(diǎn)和定時(shí)檢查以逃避檢測;
·遞歸包裝郵戳跟蹤鏈接到模糊的最終網(wǎng)絡(luò)釣魚目的地。
JavaScript開發(fā)人員在2024年10月首次披露了這種混淆技術(shù),它在實(shí)際攻擊中的迅速采用凸顯了新研究被武器化的速度。
使JS有效負(fù)載“不可見”
新的混淆技術(shù)利用不可見的Unicode字符,特別是韓文半寬(U+FFA0)和韓文全寬(U+3164)。
JavaScript負(fù)載中的每個(gè)ASCII字符被轉(zhuǎn)換為8位二進(jìn)制表示,其中的二進(jìn)制值(1和0)被不可見的韓文字符替換。
混淆后的代碼作為屬性存儲(chǔ)在JavaScript對象中,由于韓文填充字符呈現(xiàn)為空白,因此腳本中的有效負(fù)載看起來為空,如下圖末尾的空白所示。
隱藏惡意代碼的空白
一個(gè)簡短的引導(dǎo)腳本使用JavaScript代理的“get()陷阱”檢索隱藏的有效負(fù)載。當(dāng)訪問hidden屬性時(shí),Proxy將不可見的韓文填充字符轉(zhuǎn)換回二進(jìn)制并重建原始JavaScript代碼。
Juniper分析師報(bào)告稱,攻擊者除了上述步驟之外,還使用了額外的隱藏步驟,比如用base64編碼腳本,并使用反調(diào)試檢查來逃避分析。
韓文填充字符序列的Base64編碼
Juniper解釋說:“攻擊是高度個(gè)性化的,包括非公開信息,最初的JavaScript會(huì)在被分析時(shí)試圖調(diào)用調(diào)試器斷點(diǎn),檢測到延遲,然后通過重定向到一個(gè)正常的網(wǎng)站來中止攻擊。”
這種攻擊很難檢測,因?yàn)榭瞻诇p少了安全掃描儀將其標(biāo)記為惡意的可能性。
由于有效負(fù)載只是對象中的一個(gè)屬性,因此可以將其注入合法腳本而不會(huì)引起懷疑;另外,整個(gè)編碼過程很容易實(shí)現(xiàn),不需要高級知識。
Juniper表示,此次活動(dòng)中使用的兩個(gè)域名先前與Tycoon 2FA網(wǎng)絡(luò)釣魚工具包有關(guān)。如果是這樣,我們很可能會(huì)看到這種不可見的混淆方法在未來被更廣泛的攻擊者采用。
參考及來源:https://www.bleepingcomputer.com/news/security/phishing-attack-hides-javascript-using-invisible-unicode-trick/
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.