Sysmon (System Monitor) 是一種 Windows 系統服務和設備驅動程序,一旦安裝在系統上,它就會在系統重啟后繼續駐留,以監視系統活動并將其記錄到 Windows 事件日志中。Sysmon 記錄的事件日志非常詳細,提供了進程執行、文件系統活動、網絡級事件、Windows 注冊表事件和其他 Windows 特定進程(如命名管道)的可視化。 部署Sysmon部署 Sysmon 非常簡單。我們將從 Microsoft 網站下載軟件包,然后為 sysmon 下載一個非常好的配置文件。
Sysmon 需要一個配置文件,這樣它才知道如何以及在系統上監控什么。我們也可以創建自己的 sysmon 配置,但有一些非常知名的配置是專門針對安全事件量身定制的,并且也映射到 Mitre 技術。 這里直接使用 olaf hartongs sysmon 配置:
先從微軟官網下載 sysmon。然后解壓存檔并以管理員身份打開 powershell 并導航到 sysmon 目錄。我們建議將 sysmon 文件解壓到“C:\Windows\”下,這樣 sysmon 路徑就變成了“C:\Windows\sysmon”。 Invoke-WebRequest -Uri https://raw./olafhartong/sysmon-modular/master/sysmonconfig.xml -OutFile C:\Windows\\Sysmon\config.xml
.\Sysmon64.exe -accepteula -i config.xml
Get-Service -name Sysmon64 sysmon日志文件位置cmd打開eventvwr找到 應用程序和服務日志 > Microsoft > Windows > Sysmon > Operational 對應的文件的位置為
利用進程執行追蹤惡意軟件Sysmon 不僅會顯示正在運行的進程,還會顯示進程何時結束,以及有關可執行文件或二進制文件本身的大量信息。它還為系統上運行的所有二進制文件提供哈希值,并列出它們是否已簽名,從而可以輕松查看惡意代碼是否試圖模仿合法程序(例如 PowerShell 或其他內置 Microsoft 工具)。 Event ID 1: 進程創建Sysmon 事件 ID 1 表示進程執行。每當內存中生成新進程時,Sysmon 中都會記錄 ID 為 1 的事件。此事件對于安全事件非常重要,因為了解哪些程序或惡意軟件在內存中運行可以為分析提供更多重要背景信息。 這里模擬執行黑客工具mimikatz抓取明文密碼。 在sysmon的日志中查詢事件ID1可以看到已經記錄了mimikatz的執行記錄。 在上面的例子中,我們可以看到一些在分析階段提供價值的重要字段:
可以嘗試將mimikatz重命名并移動到其他位置執行,對比sysmon的記錄。 修改文件名后重新運行,sysmon仍然記錄了修改前的原始文件名。可以在 Windows 文件夾中看到一個名為 WinSvc 的文件。通常攻擊者喜歡將他們的工具設置在合法的文件系統位置以逃避防御。 在上面的例子中,文件元數據立即表明生成的進程實際上是 mimikatz。攻擊者經常制作自己的自定義工具或剝離已知的默認元數據,就像在上面的例子中,它顯示公司名稱、工具描述等。 其次假設沒有文件元數據被篡改,并使該工具看起來像合法的工具。在這種情況下,我們可以利用威脅情報供應商的哈希值。不同的威脅行為者可能在不同的活動中使用同一個工具,并且它是已知的惡意工具。 狩獵惡意 C2 IP 和 域名Event ID 3: 網絡連接Sysmon 事件 ID 3 事件日志 TCP 和 UDP 連接。每個網絡事件都映射有一個進程 ID 和 ProcessGUID(為了方便關聯)。 這些事件對于檢測命令和控制流量(這可能表明攻擊者正在發送竊取數據、傳播惡意軟件等的命令)以及了解哪些應用程序正在訪問某些互聯網資源非常有用。 可以看到記錄了文件的完整路徑、建立連接的源計算機的 IP 地址、目標 IP 地址和端口信息。 Event ID 22: DNS 查詢事件 ID 22用于與 DNS 相關的事件。當進程執行 DNS 查詢時,無論結果成功還是失敗都會生成此事件。記錄 DNS 流量有很多好處,例如查找惡意遠程訪問工具、安全錯誤配置以及命令和控制流量。 事件22顯示了DNS 查詢的域名以及發起DNS查詢的進程文件完整路徑,對于排查定位非常方便。 真實的惡意軟件經常使用 DNS 與 C2 服務器通信,DNS 也用于 DNS 隧道技術。如果我們看到進程對某個域及其隨機子域的大量異常請求,那么絕對是 DNS 隧道的標志。 追蹤文件系統變更Event ID 11 : 文件創建事件 ID 11 記錄文件創建事件。創建或覆蓋文件時會記錄文件創建操作。此事件對于監視自動啟動位置(例如啟動文件夾)以及臨時目錄和下載目錄非常有用,這些目錄是初始感染期間惡意軟件落地的常見位置。 我們還可以利用此事件 ID 來監視奇怪的命名文件、不常見位置的文件等。例如,如果我們看到由奇怪的命名文件創建的文件,我們還可以使用此事件 ID 來關聯這些文件之間的關系并創建時間線。
Event ID 15 : 文件創建流hash該事件主要記錄使用瀏覽器下載文件的記錄。 此事件記錄創建命名文件流的時間,并生成記錄分配到該流的文件(未命名流)內容的哈希值以及命名流內容的事件。有些惡意軟件變體會通過瀏覽器下載來刪除其可執行文件或配置設置,此事件的目的是根據附加 Zone.Identifier“網絡標記”流的瀏覽器捕獲該變體。 使用Chrome下載文件時,在下載完成之前會先在文件名前加上 Zone.Identifier。ZoneId=3表示從互聯網上下載的文件。 ![]() 文件下載完成后再次看到目標文件名是記錄事件的文件的完整路徑,還看到了哈希值。如果沒有 Zone.Identifier 關鍵字,則正確的哈希值表示這是原始文件,沒有任何其他數據流。 追蹤注冊表變更Event ID 12:注冊表對象創建和刪除注冊表項和值創建和刪除操作映射到此事件 ID,這對于監視注冊表自動啟動位置的更改或特定惡意軟件注冊表修改非常有用。 ![]() 每當在注冊表中的任何位置創建或刪除鍵值對時,都會在此處記錄。因為攻擊者經常篡改和操縱注冊表以實現持久性、防御規避等。 ![]() 使用msf的getsystem提權后,首先看到一個服務被創建,然后被刪除。 Event ID 13:設置注冊表值為了分析為什么這是一個惡意事件,打開之前的事件 id 13 事件。 ![]() 可以看到服務的執行被重定向到命名管道。上面的命令行參數是可疑的,這是 Metasploit 的行為。每當在 Metasploit 中使用 getsystem進行權限升級時,都會創建這類事件。 狩獵惡意命名管道Event ID 17:命名管道創建創建命名管道時會生成此事件。惡意軟件通常使用命名管道進行進程間通信。它類似于網絡套接字,可用于在主機和進程之間發送和接收信息。 例如,如果一個進程想要與另一個進程通信,它可以通過網絡或使用文件發送消息,其中一個進程將消息寫入該文件,另一個進程讀取該消息。這使得它成為被惡意行為者和工具濫用的有價值的目標。 ![]() 上面msf生成的reverse.exe執行過程中創建的管道。 我們可以使用 sysmon 事件 ID 17 來監視任何管道創建。管道創建是 Windows 中的合法用例,因為 Microsoft 和許多其他第三方應用程序經常使用它們。因此,我們需要監視由我們不希望創建管道的程序創建的任何命名管道。 Sysmon事件ID匯總
|
|