Categories
程式開發

Windows Sysinternal 實用內部監控工具:sysmon


Sysmon是Windows Sysinternals系列中的一款工具。如果你想實時監控Windows系統又對其他第三方軟件有顧慮,使用Sysmon這款輕量級Microsoft自帶內部軟件是最好的選擇。

Sysmon有啥用?

在打開應用或者任何進程創建的行為發生時,Sysmon會使用sha1(默認),MD5,SHA256或IMPHASH記錄進程鏡像文件的hash值,包含進程創建過程中的進程GUID,每個事件中包含session的GUID 。除此之外記錄磁盤和卷的讀取請求/網絡連接(包括每個連接的源進程,IP地址,端口號,主機名和端口名),重要的是還可在生成初期進程事件能記錄在復雜的內核模式運行的惡意軟件。

安裝步驟

在https://download.sysinternals.com/files/Sysmon.zip 下載Sysmon,打開CMD(Admin權限)到放置路徑下運行

Windows Sysinternal 實用內部監控工具:sysmon 1

Sysmon啟動

在實際生產環境應用時,根據不同的配置,這時候自定義監控規則顯得尤為重要,又由於避免產生龐大的數據記錄,需要通過精簡配置來達到高效率日誌生成。

Sysmon提供了xml格式的配置文件來讓用戶自定義過濾規則,配置文件的東西比較多,以下提供一個測試用例。 (xml大小寫敏感)

      
      
*      
        
       
        
           
microsoft         
 windows        
       
         
       
         
        
          
443          
80        
        
          
iexplore.exe       
      
     

完成了XML的編寫,即可上傳到Sysmon

默認配置

Windows Sysinternal 實用內部監控工具:sysmon 2

上傳配置

Windows Sysinternal 實用內部監控工具:sysmon 3

配置檢查

Windows Sysinternal 實用內部監控工具:sysmon 4

在上面我們看到了不同標識的tag用來定義xml配置文件,下面列出可選擇的事件過濾器(tag)

ProcessCreate 進程創建 ProcessAccess 進程訪問
FileCreateTime 進程創建時間 FileCreate 文件創建
NetworkConnect 網絡鏈接 RegistryEvent 註冊表事件
ProcessTermina 進程結束 FileCreateStreamHash 文件流創建
DriverLoad 驅動加載 PipeEvent 管道事件
ImageLoad 鏡像加載 WmiEvent WMI事件
CreateRemoteThread 遠程線程創建 DNSEvnet DNS事件
RawAccessRead 驅動器讀取 Error 報錯

具體詳細內容可參考 https://technet.microsoft.com/en-us/sysinternals/sysmon。

onmatch選項只能設置為include或exclude。

condition根據不同的需求可設置為如下值:

Condition Description
Is Default, values are equals
is not Values are different
Contains The field contains this value
Excludes The field does not contain this value
begin with The field begins with this value
end with The field ends with this value
less than Lexicographical comparison is less than zero
more than Lexicographical comparison is more than zero
Image Match an image path (full path or only image name). For example: lsass.exe will match c:windowssystem32lsass.exe

在實際生產中請根據實際情況調整,以下為個人用例


  
  *
  
    
    
    
      Microsoft
      Windows
    
    
      MsMpEng.exe
    
    
    
    
      443
      80
    
    
      chrome.exe
    
    
      false
    
    
    
      0x1400
    
    

      lsass.exe
      winlogon.exe
    
    
      explorer.exe
      svchost.exe
      winlogon.exe
      powershell.exe
    
  

Sysmon日誌

Process Event

在EventViewer->Applications and Services ->Microsoft->Windows->Sysmon即可找到Sysmon監控得到的日誌,如下圖以QQ瀏覽器為例(非Microsoft三方軟件,因為Microsoft軟件已被列入白名單):

Windows Sysinternal 實用內部監控工具:sysmon 5

記錄下來QQ瀏覽器訪問了進程,屬於進程訪問事件。

Windows Sysinternal 實用內部監控工具:sysmon 6

關鍵的一點就是 GrantedAccess的值為0x1410,這個值表示QQ瀏覽器對lsass擁有上述受限制的訪問權限,包括寫進程內存和讀進程內存,這樣就能獲取到用戶口令。

Network Event

訪問網站,可以看到連接的詳細信息,包括ip,端口,pid等,如圖通過Sysmon監控到Outlook對網絡的訪問

Windows Sysinternal 實用內部監控工具:sysmon 7

通過CMD對自己進行ping操作

Windows Sysinternal 實用內部監控工具:sysmon 8

日誌記錄

目前的惡意軟件為了對抗檢測很多都有日誌刪除功能,Sysmon跟EventView的配合可以更好的將日誌定制保存位置。

Windows Sysinternal 實用內部監控工具:sysmon 9

總結

Sysmon作為Microsoft自創配合Windows的監控軟件,結合其他Windows工具能讓監控系統變得更容易和更效率,相對於其他第三方的監控軟件提供了更安全高效和最輕量級的服務。