EnSilo網(wǎng)絡(luò)安全公司的研究團(tuán)隊(duì)發(fā)現(xiàn)了一個(gè)可以繞過Windows查殺機(jī)制的方法,可以Bypass所有Windows的殺毒軟件和安全機(jī)制,他們把這個(gè)方法叫做AtomBombing內(nèi)存注入。
前言
在Windows有一個(gè)功能叫做Atom Tables,而這個(gè)功能主要可以用于進(jìn)程和進(jìn)程之間的通信,線程和線程之間的通信。而enSilo網(wǎng)絡(luò)安全公司的研究團(tuán)隊(duì)利用這個(gè)功能的設(shè)計(jì)缺陷,成功的將一個(gè)惡意代碼注入到一個(gè)合法的進(jìn)程當(dāng)中,并且不會(huì)被殺毒軟件查殺。這個(gè)缺陷影響了所有的Windows系統(tǒng)。非常不幸的是,這個(gè)缺陷沒辦法修復(fù),因?yàn)樗粚儆谀硞€(gè)代碼的漏洞,而是Atom Tables在設(shè)計(jì)之初就存在這個(gè)功能了,它屬于Windows底層系統(tǒng)的一個(gè)機(jī)制。如果要修復(fù)這個(gè)缺陷,只能重新開發(fā)一個(gè)Atom Tables的替代品,或者重新編寫Atom Tables的運(yùn)行機(jī)制,而這樣將會(huì)對(duì)Windows系統(tǒng)的內(nèi)核進(jìn)行大規(guī)模的調(diào)整。所以正如標(biāo)題所示,這個(gè)不是漏洞預(yù)警,是威脅預(yù)警!
原理預(yù)覽
實(shí)際上,這個(gè)技術(shù)的原理并沒有多復(fù)雜,但是影響卻非常的顯著。比如我要運(yùn)行一個(gè)shellcode.exe,而這個(gè)可執(zhí)行程序中內(nèi)置的惡意代碼。Windows殺毒的查殺機(jī)制會(huì)檢查這個(gè)軟件的簽名證書,運(yùn)行行為等等,從而達(dá)到一個(gè)查殺的效果。但是,如果我們能夠說服用戶雙擊這個(gè)shellcode.exe,在利用AtomBombing技術(shù)后,它可以和其它的合法進(jìn)程建立一個(gè)不會(huì)被查殺的通訊。比如我們可以讓Chrome.exe和shellcode.exe進(jìn)行通信,而windows的進(jìn)程列表里面只會(huì)出現(xiàn)Chrome.exe的進(jìn)程,同時(shí)殺毒軟件會(huì)認(rèn)為chrome是一個(gè)合法程序,不會(huì)對(duì)其進(jìn)行查殺。
實(shí)際上,針對(duì)Windows內(nèi)存注入的方式大概也就那么幾個(gè),分別為使用函數(shù)QueueUserAPC DLL注入,調(diào)用SetWindowsHookEx注入,code cave注入和前不久的PowerLoaderEx內(nèi)存注入。然而AtomBombing注入和其他的注入有很多不同,它是利用系統(tǒng)底層的缺陷進(jìn)行注入,繞開了全部的殺毒軟件,可以影響到全部的Windows系統(tǒng),本質(zhì)上來說并沒有什么補(bǔ)丁可以針對(duì)這個(gè)缺陷。
危害
首先第一個(gè)危害就是繞過windows全部的查殺機(jī)制了,就如我之前所述,這個(gè)東西屬于windows底層的一個(gè)功能,現(xiàn)有殺毒軟件無法對(duì)其進(jìn)行防護(hù)。一旦惡意代碼注入到白名單進(jìn)程中,任何的查殺機(jī)制都無法自動(dòng)進(jìn)行防御。
因?yàn)樗梢噪S意注入到任意進(jìn)程,也就是說它可以注入到瀏覽器進(jìn)程中,任意修改網(wǎng)頁數(shù)據(jù),達(dá)到一個(gè)中間人攻擊的效果。與此同時(shí),這個(gè)注入技術(shù)還可以獲得未進(jìn)行HTTPS加密的元數(shù)據(jù)。惡意代碼可以注入到瀏覽器內(nèi)存中,在數(shù)據(jù)傳輸?shù)絺鬏攲又皩⑵溥M(jìn)行截獲,從而獲得一份原始的未加密數(shù)據(jù)。
缺陷利用代碼:Github.com