腳本執(zhí)行防御
目的:彌補模塊執(zhí)行防御不足,針對可執(zhí)行腳本進行檢測防御
所用技術:AMSI
難點:
如何區(qū)分內容腳本與工具腳本
針對內容腳本與工具腳本進行檢測
系統(tǒng)性能:不能影響用戶使用
AMSI實現(xiàn)的工具腳本防御
AMSI是什么?
AMSI在腳本防御優(yōu)勢有哪些?
什么是工具腳本,如何檢測?
什么是內容腳本,如何檢測?
如何編寫自定義AMSI腳本檢測程序
AMSI是什么?
AMSI全稱為Windows Antimalware Scan Interface, 即windows反病毒掃描接口,由微軟在2015年引入Windows操作系統(tǒng)。AMSI允許Python、Ruby、JavaScript等腳本引擎開發(fā)人員,甚至是微軟的PowerShell程序,在執(zhí)行腳本之前請求系統(tǒng)中的防病毒軟件(不限于Windows defender)掃描被執(zhí)行腳本的內容,以確認被執(zhí)行腳本是否存在惡意行為。
AMSI集成架構

AMSI針對腳本檢測優(yōu)勢
工具腳本的檢測
目標: 旨在減少內網環(huán)境中腳本引擎數(shù)量,減少涉及腳本相關的攻擊面
實現(xiàn)方式:
?只允許相關工具腳本引擎執(zhí)行,其余腳本引擎不允許執(zhí)行
?對工具腳本添加特定簽名,不符合簽名格式的腳本不允許執(zhí)行
內容腳本檢測
目標:針對廣義上所有腳本進行檢測
實現(xiàn)方式:
1.獲取OSINT中相關惡意腳本特征,構建惡意特征庫
2.利用AMSI針對腳本內容進行特征匹配
RPC與內網安全
PSEXEC利用RPC遠程執(zhí)行命令示例

利用ETW監(jiān)控系統(tǒng)事件

RPC的ETW提供者

主要API和調用流程
StartTrace:創(chuàng)建會話,返回會話句柄。創(chuàng)建后既不接收任何日志,也不發(fā)送日志給任何人。
ControlTrace:對會話發(fā)出EVENT_TRACE_CONTROL_STOP命令。該命令刪除會話,是StartTrace的逆操作。
EnableTraceEx2:讓會話開啟對某個提供者的事件的監(jiān)聽。提供者產生了日志就會傳遞給會話。但如果沒有消費者日志就不會被讀取。
OpenTrace:讓會話和某個日志文件或者消費者建立連接。也就是說,這個會話收到的日志應當輸出到該日志文件或傳遞給該消費者。但實際上調用
OpenTrace之后不處理也不會有任何日志輸出。
ProcessTrace:處理會話。真的開始往日志文件或者消費者輸出日志了。OpenTrace之后再調用ProcessTrace,才會讓整個機制真正運作起來。
如何了解PRC的ETW具體的事件日志的格式

打印所有RPC調用:信息不完整,缺失對方IP

利用SMB的ETW事件獲取對方IP

綜合SMB日志和PRC日志找到對方IP

最終演示效果

