信息來源:4hou
Microsoft Teams是一款基于聊天的智能團隊協(xié)作工具,可以同步進行文檔共享,并為成員提供包括語音、視頻會議在內(nèi)的即時通訊工具。攻擊者可以用Microsoft Teams的mock installation文件夾中的真實二進制文件來執(zhí)行惡意payload。
該問題影響大多數(shù)使用Squirrel安裝和更新框架的Windows桌面APP,該開使用NuGet包。研究人員測試發(fā)現(xiàn)受影響的應用包括WhatsApp, Grammarly, GitHub, Slack 和 Discord。
易構(gòu)建包
逆向工程師Reegun Richard發(fā)現(xiàn)他可以創(chuàng)建一個偽造的Microsoft Teams包,并使用簽名的二進制文件來執(zhí)行特定位置展示的內(nèi)容。研究人員實驗的過程中發(fā)現(xiàn)整個過程除了攻擊者創(chuàng)建的一個最小包外不需要目標系統(tǒng)上的任何資源。
研究人員發(fā)現(xiàn)在正常的Microsoft Teams安裝過程中,需要真實的Update.exe文件和current、packages兩個文件夾就可以啟動系統(tǒng)中繼承了經(jīng)過簽名的可執(zhí)行文件的信任的惡意軟件,這類惡意軟件可以繞過一些防御措施。Update可執(zhí)行文件會部署current文件夾中的所有內(nèi)容。而packages位置需要一個RELEASES文件,但并不需要其是有效的,只需要SHA1文件名大小的格式。
Richard在POC視頻中證明如何用update.exe來啟動payload后再受害者主機上獲取shell訪問權限。
微軟意識到了該問題,但并沒有決定解決該漏洞。研究人員稱微軟給出的理由是glitch并不滿足安全問題的底線。也就是說,并不是所有的NuGet包都受到該漏洞的影響,但所有依賴Squirrel one-click installer的app都受到影響。
除了Microsoft Teams外,所有的APP都需要正確的version文件夾、RELEASES文件和對應的Update文件才能工作。所以,攻擊中需要的最小包要包含:
· 簽名的update.exe文件
· 含有payload的'current'或'app-(version number)' 文件夾
· 含有偽造的RELEASES文件的packages文件夾
研究人員對受影響的WhatsApp, Grammarly, GitHub, Slack 和 Discord應用程序都創(chuàng)建了POC,如下所示:
在之前的研究中,Richard和另一個研究人員發(fā)現(xiàn)使用Squirrel安裝器的app可以被濫用來下載和運行可執(zhí)行文件。
POC地址:https://github.com/jreegun/POC-s/tree/master/Exe%20Sideloading