課時3:腳本的防御

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

  • 1.能夠確定腳本類型 

  • 2.在腳本代碼最終執(zhí)行之前進行檢測,可做到無視混淆及加密等反檢測技術 

  • 3.攻擊者無法輕易繞過

工具腳本的檢測

目標旨在減少內網環(huán)境中腳本引擎數(shù)量,減少涉及腳本相關的攻擊面

實現(xiàn)方式

?只允許相關工具腳本引擎執(zhí)行其余腳本引擎不允許執(zhí)行 

?對工具腳本添加特定簽名不符合簽名格式的腳本不允許執(zhí)行

內容腳本檢測

目標針對廣義上所有腳本進行檢測

實現(xiàn)方式

1.獲取OSINT中相關惡意腳本特征,構建惡意特征庫

2.利用AMSI針對腳本內容進行特征匹配

RPC與內網安全

  • RPC可以視為一種命令序列

  • RPC是遠程調用的基礎設施,無法完全禁止 

  • 許多內網基于操作(如PsExec、WMI)基于RPC

  • 內網刺探和橫向移動都可利用RPC 

  • 利用PsExecWMI等可通過內網遠程安裝服務

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

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

RPCETW提供者

主要API和調用流程


  • StartTrace:創(chuàng)建會話,返回會話句柄。創(chuàng)建后既不接收任何日志,也不發(fā)送日志給任何人。 ControlTrace:對會話發(fā)出EVENT_TRACE_CONTROL_STOP命令。該命令刪除會話,是StartTrace的逆操作。 

  • EnableTraceEx2:讓會話開啟對某個提供者的事件的監(jiān)聽。提供者產生了日志就會傳遞給會話。但如果沒有消費者日志就不會被讀取。 

  • OpenTrace:讓會話和某個日志文件或者消費者建立連接。也就是說,這個會話收到的日志應當輸出到該日志文件或傳遞給該消費者。但實際上調用

  • OpenTrace之后不處理也不會有任何日志輸出。

  •  ProcessTrace:處理會話。真的開始往日志文件或者消費者輸出日志了。OpenTrace之后再調用ProcessTrace,才會讓整個機制真正運作起來。

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

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

利用SMBETW事件獲取對方IP

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

最終演示效果

?