Hexacorn一名安全研究員(網(wǎng)名Adam)發(fā)現(xiàn)一種被稱為“PROPagate”的新型Windows代碼注入技術(shù),它利用合法Windows GUI管理API和函數(shù)的通用屬性。
近期Windows版本上的多個應(yīng)用程序受影響Adam最初集中研究Windows操作系統(tǒng)函數(shù)SetWindowSubclass API,負(fù)責(zé)管理父進(jìn)程內(nèi)GUI應(yīng)用程序窗口。發(fā)現(xiàn)其能濫用SetWindowSubclass函數(shù)內(nèi)部使用的合法GUI窗口屬性(UxSubclassInfo和CC32SubclassInfo),在其它合法應(yīng)用程序內(nèi)部加載并執(zhí)行惡意代碼。
Adam表示,并不是所有進(jìn)程都可以實現(xiàn)注入,只有使用Windows GUI控制和流行GUI框架的應(yīng)用程序能實現(xiàn)注入。Adam補充稱,這并不是真正意義上的限制,該漏洞覆蓋了大多數(shù)流行的應(yīng)用程序,包括Windows Explorer——流行的代碼注入目標(biāo)。
安全研究員Adam 10月底發(fā)布博文初次介紹PROPagate技術(shù)時表示,PoC PROPagate攻擊將代碼注入了Windows Explorer、Total Commander、 Process Hacker、Ollydbg等應(yīng)用程序。
Adam表示不會在網(wǎng)上發(fā)布這個對Windows XP和Windows 10 都奏效的PoC。
Adam上周五發(fā)布后續(xù)研究時表示,稍作修改后,PROPagate代碼注入攻擊對32位和64位進(jìn)程均奏效。
PROPagate攻擊可以通過其它API實現(xiàn)安全研究員Adam表示,除了SetWindowSubclass API屬性UxSubclassInfo和CC32SubclassInfo,其它通用或合法屬性可以以相同的方式被潛在利用,并且有進(jìn)一步的研究空間。許多應(yīng)用程序會創(chuàng)建窗口屬性,其利用的屬性似乎包含引用回調(diào)函數(shù)或經(jīng)修改指向惡意代碼方法的Memory Pointer。
Adam羅列了PROPagate攻擊的未來研究途徑:
微軟類庫MFC(Microsoft Foundation Class Library)使用‘AfxOldWndProc423’屬性對窗口創(chuàng)建子類。
ControlOfs[HEX]_與Delphi應(yīng)用程序有關(guān)的屬性引用內(nèi)存可視化組件庫(VCL)對象。
新窗口框架,例如Microsoft.Windows.WindowFactory.*
大量自定義控制使用“子類”,并且這些控制能以類似的方式被修改。
一些屬性會暴露COM/OLE接口,例如OleDropTargetInterface。
SetWindowWord 和SetClassWord。
PROPagate恐無法打補丁進(jìn)行修復(fù)安全研究員Adam明確表示,PROPagate是一種逃避技術(shù),與其它類型的安全漏洞(如遠(yuǎn)程代碼執(zhí)行或提權(quán)漏洞)相比,PROPagate不算是一個值得關(guān)注的嚴(yán)重問題,因此他并未聯(lián)系微軟。
Adam補充稱,要利用這種攻擊,攻擊者必須在系統(tǒng)上運行代碼。
PROPagate與AtomBombing類似,盡管可被武器化 。但即使安全研究員Adam向微軟報告了這個問題,微軟可能不會將其視為安全漏洞。去年發(fā)現(xiàn)類似的代碼注入技術(shù)AtomBombing的enSilo研究團(tuán)隊聯(lián)系微軟后,由于AtomBombing是一個設(shè)計缺陷,而非漏洞,Microsoft無法在不改變整個OS運作模式的情況下打補丁修復(fù),收到了類似回復(fù)。但在enSilo披露AtomBombing技術(shù)幾個月后,Dridex銀行木馬使用該技術(shù)將惡意代碼注入被感染電腦上的合法應(yīng)用程序。PROPagate也有可能被用于發(fā)起類似的惡意軟件攻擊。
Adam指出,AtomBombing就是一個絕佳的例子,PROPagate在本質(zhì)上與AtomBombing非常類似。這是在遠(yuǎn)程進(jìn)程內(nèi)執(zhí)行代碼的簡練方式,無需借助傳統(tǒng)的方式,例如遠(yuǎn)程線程或異步過程調(diào)用。在操作系統(tǒng)和反病毒層面防范代碼執(zhí)行技術(shù)一直相當(dāng)困難。
另一代碼注入技術(shù):AtomBombin2016年年底,一種稱為AtomBombin的新的代碼注入技術(shù)被發(fā)現(xiàn),該技術(shù)利用Windows的異步過程調(diào)用(簡稱APC)機制。該惡意軟件能修改Windows的操作系統(tǒng)atom table,欺騙合法應(yīng)用程序執(zhí)行惡意活動。AtomBombing還幫助惡意軟件執(zhí)行Man-in-the-Browser(MitB)攻擊,這是銀行木馬常用的攻擊媒介。通過利用AtomBombing,惡意軟件還能對用戶屏幕進(jìn)行截屏,訪問加密密碼或采取白名單應(yīng)用程序能執(zhí)行的其它活動。
當(dāng)時,所有Windows版本受影響。目前,這種技術(shù)還不能夠被防入侵的安全工具檢測到。
AtomBombing需要以下三步來實現(xiàn):
1.任意地址寫任意值(Write-What-Where) - 能夠?qū)⑷我鈹?shù)據(jù)寫入目標(biāo)進(jìn)程的地址空間中的任意位置。
2.執(zhí)行 - 劫持目標(biāo)進(jìn)程的線程以執(zhí)行在步驟1中寫入的代碼。
3.恢復(fù) - 清理并且恢復(fù)執(zhí)行在步驟2中被劫持的線程。
其他代碼注入技術(shù)除了AtomBombinb,過去發(fā)現(xiàn)的其它代碼注入技術(shù)還包括SQL注入、XSS攻擊、hotpatching、code hooking等。較為出名的曾被濫用的其它一些臭名昭著的代碼注入技術(shù)包括:DLL Sideloading、Process Hollowing、異步過程調(diào)用(APC)劫持、Gapz/Powerloader/EXMI技術(shù)、AtomBombing和Hook導(dǎo)入表(IAT hooking)。