SpecterOps公司的研究人員Matt Nelson(馬特·尼爾森)研究是否可以通過Microsoft Excel發(fā)起跳板攻擊(Pivoting)。結(jié)果,Nelson發(fā)現(xiàn)默認(rèn)的啟動與訪問權(quán)限存在漏洞,意味著基于宏的攻擊無需與受害者交互。
跳板攻擊(Pivoting)如果攻擊者成功入侵了一臺主機,他就可以任意地利用這臺機器作為跳板攻擊網(wǎng)絡(luò)中的其他系統(tǒng)。
Nelson發(fā)現(xiàn)未設(shè)置明確的啟動或訪問權(quán)限的Excel.Application控件會被DCOM組件暴露。因此攻擊者能通過其它方式實施初始攻擊,同時Microsoft Office宏安全機制無法阻止這類跳板攻擊,這時Excel.Application能被遠程啟動,從而達到攻擊者攻擊的目的。
簡單來說,DCOM默認(rèn)管理權(quán)限允許用戶遠程啟動后,通過Excel.Application組件接口發(fā)起遠程鏈接,之后插入惡意的宏就可以發(fā)起攻擊。
這就意味著遠程攻擊者可以執(zhí)行包含惡意宏的Excel電子表格。由于VBA允許Win32 API訪問,可能會出現(xiàn)無窮無盡的Shellcode Runner。
這只是PoC,Nelson并未執(zhí)行任何惡意操作,他僅僅啟動了calc.exe。Nelson表示,這非常簡單,只需創(chuàng)建一個新的宏,隨意命名,并添加至代碼保存。在這起實例中,Nelson將宏命名為“MyMacro”,并以.xls格式保存文件。
Nelson演示中使用的計算器Shellcode生成Excel子進程,但Nelson指出,由于VBA提供大量與操作系統(tǒng)之間的交互,可能不會生成子進程,而是注入到另一個進程。
Nelson補充稱,最后的步驟是遠程清除Excel對象,并將Payload從目標(biāo)主機上刪除。
雖然這種攻擊受限于擁有本地管理員組權(quán)限的用戶,但這種攻擊媒介相當(dāng)嚴(yán)重。畢竟,在這個攻擊中,Nelson假設(shè)本地管理員組中的一臺設(shè)備已經(jīng)被黑。
緩解措施Nelson表示緩解措施是存在的,但這些措施可能會比較麻煩。系統(tǒng)管理員可以手動設(shè)置Excel.Application的遠程啟動和訪問權(quán)限,但這可能會影響其它Office應(yīng)用。
Nelson提出的其它緩解措施包括:使用dcomccnfg.exe修改啟動與訪問自主訪問控制列表(簡稱DACL),開啟Windows 防火墻,并限制本地管理員的數(shù)量。