課時3:腳本的防御

腳本執(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 

  • 利用PsExecWMI等可通過內(nèi)網(wǎng)遠(yuǎn)程安裝服務(wù)

PSEXEC利用RPC遠(yuǎn)程執(zhí)行命令示例

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

RPCETW提供者

主要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,才會讓整個機制真正運作起來。

如何了解PRCETW具體的事件日志的格式

打印所有RPC調(diào)用:信息不完整,缺失對方IP

利用SMBETW事件獲取對方IP

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

最終演示效果

?