手工逆 Chrome 擴展後門的一些思路

昨天看到 V2EX 上的這個討論:

大家注意了 Chrome 的插件 User-Agent Switcher 是個木馬

v2ex.com/t/389340

對於我這種很在意隱私與安全,且研究過 Chrome 擴展木馬的老司機來說,也還是嚇了一跳。剛開始以為自己也中招了,後來發現沒有,如果有,那這個確實是很細思恐極的事。

Chrome 擴展,在 Google 那是有安全審計的,所以基本上會覺得靠譜,但是對於玩安全的我們來說,都是默認抱著懷疑的態度去安裝一些擴展。你們只要注意下,那些你安裝的擴展需要的許可權是不是很多?(這點很像 Android App 的許可權生態,同樣的陋習)。如果這些擴展是惡意的或者存在 XSS、MITM 等漏洞被惡意利用,那麼危害就很大了。擴展的許可權是大於網頁的(但一般情況下小於本地文件),至少可以無視同源策略。這意味著,如果你安裝了一個惡意擴展,那麼在這個瀏覽器的一切行為都有可能被監控,隱私數據都有可能被盜取。

當年我挖掘過一些擴展漏洞,達到的效果如:訪問我的一個鏈接,就可以拿你 Gmail 許可權。也寫過擴展後門及相關安全工具,早期這方面更不安全,第三方擴展都可以隨意安裝,現在安裝會麻煩得多,但不是不可以。

這是我玩 Chrome 擴展的一些見解。這次這個後門,我手工逆起來很快,給大家簡單分享下經驗。

首先是後門擴展地址:

chrome.google.com/webst

可以隨便搜索個 Chrome 擴展下載服務把擴展文件下載下來分析。比如這個:

chrome-extension-downloader.com

擴展後綴是 crx,改為 7z,解壓就好。

解壓後,直接去讀相關文件:js、html、json 等,可以先看看 manifest.json 文件,這裡做了這個擴展需要的基本聲明,尤其是許可權,如下:

可以看到這個許可權已經足夠控制你 Chrome 的一切網路行為了,只要它願意。

然後直入主題去看這次出問題的 js 文件:background.js,第 80 行,這行是一大段代碼,做了些加密操作,可以用我開源的 XSSOR(xssor.io)直接去解。

把這行代碼粘貼到 XSSOR 的 ENCODE/DECODE 的文本框去,然後點擊 JS BEAUTIFY 就可以一鍵解密並美化。

美化後,裡面的 Canvas 操作邏輯就很明顯了,惡意代碼隱藏在圖片 promo.jpg 里,通過 Canvas 技術讀取出來並應用下面這個技巧來動態執行:

document.defaultView[(typeof r.Ae).charAt(0).toUpperCase() + (typeof r.Ae).slice(1)](n)()

實際上,這個技巧等於:

document.defaultView[Function](n)()

n 這個變數可以是任意一段 JavaScript 代碼。

我們在做調試時,可以把這些代碼片段拿出來,在 XSSOR 的 ENCODE/DECODE 里進行,用其中的 EVAL CODZ 功能就好(在 JS BEAUTIFY 按鈕旁邊)。調試輸出,可以用 alert,也可以 console.log,看個人喜好。

不過由於這裡涉及到從圖片里獲取數據並解析輸出,我還是寫了個獨立頁面進行手動調試,這裡:

xssor.io/s/uasbackdoor.

註:獨立頁面的調試可以考慮用在 Chrome 開發者工具里去斷點調試跟蹤輸出。

你可以訪問看看,等幾秒,就可以看到上面那個 n 變數的內容了(來自 promo.jpg 圖片並解析後的)。內容不小,如圖:

這段內容很眼花,但是我們已經可以接觸到真相了。後續可以繼續通過 XSSOR 的 JS BEAUTIFY 去美化,但是還是會很眼花,因為所有變數都加花了,而且這裡運用了大量 ES6 語法糖,如果對 JavaScript 新標準不了解,看這段代碼很容易暈。

到這,重複上面的一些調試技巧逐一耐心調試,沒有解不開的代碼。

如果你想更清晰了解某些代碼片段的意思,有必要好好去了解下 Chrome 擴展開發的一些知識。

更多細節自己實戰起來吧,這裡懶得展開。通過昨晚的簡單調試可以得出結論這個擴展確實具備後門特點,不過懶得深入判斷細節邏輯,至於危害是多大,目前不好說。但是,我還是希望通過本文的分享,告訴大家小心 Chrome 惡意擴展帶來的威脅,在使用一些不那麼可信的擴展時,多留意。可以開個網路抓包分析是否有怪異請求發出去,能力 OK 的話,就自己審計一番,擴展的源碼按照如上方式是可以輕易得到的,畢竟都是前端那些事。


微信公眾號「Lazy-Thought

幾個黑客在維護,都很懶,都想改變點什麼


推薦閱讀:

TAG:黑客Hacker | 网络安全 | 软件后门 |