腳本執(zhí)行防御
目的:彌補模塊執(zhí)行防御不足,針對可執(zhí)行腳本進(jìn)行檢測防御
所用技術(shù):AMSI
難點:
如何區(qū)分內(nèi)容腳本與工具腳本
針對內(nèi)容腳本與工具腳本進(jìn)行檢測
系統(tǒng)性能:不能影響用戶使用
AMSI實現(xiàn)的工具腳本防御
AMSI是什么?
AMSI在腳本防御優(yōu)勢有哪些?
什么是工具腳本,如何檢測?
什么是內(nèi)容腳本,如何檢測?
如何編寫自定義AMSI腳本檢測程序
AMSI是什么?
AMSI全稱為Windows Antimalware Scan Interface, 即windows反病毒掃描接口,由微軟在2015年引入Windows操作系統(tǒng)。AMSI允許Python、Ruby、JavaScript等腳本引擎開發(fā)人員,甚至是微軟的PowerShell程序,在執(zhí)行腳本之前請求系統(tǒng)中的防病毒軟件(不限于Windows defender)掃描被執(zhí)行腳本的內(nèi)容,以確認(rèn)被執(zhí)行腳本是否存在惡意行為。
AMSI集成架構(gòu)
AMSI針對腳本檢測優(yōu)勢
1.能夠確定腳本類型
2.在腳本代碼最終執(zhí)行之前進(jìn)行檢測,可做到無視混淆及加密等反檢測技術(shù)。
3.攻擊者無法輕易繞過
工具腳本的檢測
目標(biāo): 旨在減少內(nèi)網(wǎng)環(huán)境中腳本引擎數(shù)量,減少涉及腳本相關(guān)的攻擊面
實現(xiàn)方式:
?只允許相關(guān)工具腳本引擎執(zhí)行,其余腳本引擎不允許執(zhí)行
?對工具腳本添加特定簽名,不符合簽名格式的腳本不允許執(zhí)行
內(nèi)容腳本檢測
目標(biāo):針對廣義上所有腳本進(jìn)行檢測
實現(xiàn)方式:
1.獲取OSINT中相關(guān)惡意腳本特征,構(gòu)建惡意特征庫
2.利用AMSI針對腳本內(nèi)容進(jìn)行特征匹配
RPC與內(nèi)網(wǎng)安全
RPC可以視為一種命令序列
RPC是遠(yuǎn)程調(diào)用的基礎(chǔ)設(shè)施,無法完全禁止
許多內(nèi)網(wǎng)基于操作(如PsExec、WMI)基于RPC
內(nèi)網(wǎng)刺探和橫向移動都可利用RPC
利用PsExec、WMI等可通過內(nèi)網(wǎng)遠(yuǎn)程安裝服務(wù)
PSEXEC利用RPC遠(yuǎn)程執(zhí)行命令示例
利用ETW監(jiān)控系統(tǒng)事件
RPC的ETW提供者
主要API和調(diào)用流程
StartTrace:創(chuàng)建會話,返回會話句柄。創(chuàng)建后既不接收任何日志,也不發(fā)送日志給任何人。 ControlTrace:對會話發(fā)出EVENT_TRACE_CONTROL_STOP命令。該命令刪除會話,是StartTrace的逆操作。
EnableTraceEx2:讓會話開啟對某個提供者的事件的監(jiān)聽。提供者產(chǎn)生了日志就會傳遞給會話。但如果沒有消費者日志就不會被讀取。
OpenTrace:讓會話和某個日志文件或者消費者建立連接。也就是說,這個會話收到的日志應(yīng)當(dāng)輸出到該日志文件或傳遞給該消費者。但實際上調(diào)用
OpenTrace之后不處理也不會有任何日志輸出。
ProcessTrace:處理會話。真的開始往日志文件或者消費者輸出日志了。OpenTrace之后再調(diào)用ProcessTrace,才會讓整個機制真正運作起來。
如何了解PRC的ETW具體的事件日志的格式
打印所有RPC調(diào)用:信息不完整,缺失對方IP
利用SMB的ETW事件獲取對方IP
綜合SMB日志和PRC日志找到對方IP
最終演示效果