WF曲速未來:PowerShell腳本的內部證書規則區塊鏈
WF曲速未來表示:本文將提供讓你可以在組織中使用的不同規則來檢測PowerShell的證書。
WF曲速未來表示:本文將提供讓你可以在組織中使用的不同規則來檢測PowerShell的證書。
YARA
這是開始這項研究的YARA規則:
此YARA規則搜索字符串--BEGIN CERTIFICATE--后跟回車符(\ r),換行符(\ n),最后是任何不是大寫字母M的字符。它使用正則表達式($ re1 )搜索此序列,必須在文件的開頭找到此序列($ re1為0)。
Microsoft的certutil生成的證書將始終以--BEGIN CERTIFICATE--開頭,然后是回車符和換行符,然后是BASE64編碼的內容。該RFC允許多余的空格,而不是由產生的certutil,這就是為什么我們不考慮這個YARA規則多余的空格。
請注意,還有一個較舊的證書文件規范,它允許第一行和BASE64有效負載之間的標頭。雖然我們沒有在VirusTotal上觀察到這些規則,但我們的規則將觸發這些舊證書。
如果您希望YARA規則檢測嵌入式證書(例如,另一個文件中的證書),您可以將條件從“$ re1 at 0”更改為“@ re1> 0”,如下所示:
這意味著您希望正則表達式re1(@ re1)匹配的字符串的位置大于0(> 0),例如不在文件的開頭。
另一個例子--BEGIN CERTIFICATE--可以在文件中的某個位置找到(即不在位置0)。crt文件可以包含多個證書。
由于YARA仍然是許多組織的新技術,我們還開發了Suricata和ClamAV規則,可以在下一節中找到。
Suricata
Suricata是一個免費的開源IDS。
使用以下Suricata規則,您可以監視網絡流量,查找不符合正確標準且可能包含惡意負載的可疑證書文件如下圖:
我們執行與YARA規則完全相同的匹配類型:我們搜索--BEGIN CERTIFICATE--后跟回車符和換行符,盡管編碼有點不同(--BEGIN CERTIFICATE-- | 0D 0A |)。在標頭之后,我們使用byte_test操作查找與M(0x4D)不同的字節。
第一個規則在文件的開頭(file_data)查找此模式,而第二個規則在文件的任何位置查找此模式。
我們已在測試環境中測試了這些規則,但請確保在生產環境中使用它們之前執行相同操作。
ClamAV
ClamAV是一種免費的開源反病毒。
就像Suricata一樣,ClamAV可以提供自定義檢測簽名,可以幫助您檢測惡意文件,例如隱藏在電子郵件附件中的有效負載。
這些簽名應存儲在.ndb文件中。簽名ClamAV.Certificate.Unknown檢測到包含證書數據以外的其他內容的證書文件(!(4D)表示不是M)和簽名ClamAV.ContainsCertificate.Unknown檢測到包含除證書數據之外的其他內容的嵌入證書文件。
請注意,如果您有最新版本的ClamAV,也可以使用ClamAV的YARA規則。
結論
此研究基于一個簡單的想法:具有不以大寫字母M開頭的數據的證書不能包含有效的證書數據。將繼續遵守現在的規則,并及時報告出是否做出有趣的發現。
區塊鏈安全公司WF曲速未來建議您從規則開始檢測證書,而不是嵌入證書。
當然,繞過現有的規則檢測是微不足道的,就像任何基于模式匹配的規則一樣。例如,添加額外的空格將避免基本規則檢測到是因為當前正在搜索使用certutil生成的文件,這是各種對手的當前運作方式,所以規則設置得非常具體。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。