2022年8月10日星期三

sysmon规则编写简介

sysmon规则编写简介


  • 安装

     下载地址 :  https://download.sysinternals.com/files/Sysmon.zip
    
    • 1
     Install:    Sysmon.exe -i <configfile> # 指定配置文件安装
                 sysmon -accepteula  –i -n # 一键安装(使用sha1进行散列的过程映像,无网络监控)
                 sysmon -accepteula -i -h md5,sha256 -n # 使用md5和sha256进行安装创建进程并监视网络连接
                 sysmon -accepteula -i c\windows\config.xml # 使用配置文件安装Sysmon
    
                 
    
    [-h <[sha1|md5|sha256|imphash|*],...>] [-n [<process,...>]]
    [-l (<process,...>)]
    
    Configure:  Sysmon.exe -c <configfile> # 从文件读取修改配置信息 
                sysmon –c -- # 修改配置信息为默认配置
                sysmon -c # 转储配置文件
                  [--|[-h <[sha1|md5|sha256|imphash|*],...>] [-n [<process,...>]]
                   [-l [<process,...>]]]
    
    Uninstall:  Sysmon.exe -u # 卸载 
     # 注 : 安装需要管理员权限 操作系统 windows 7+ 上日志会写入到  Logs/Microsoft/Windows/Sysmon/Operational 低版本windows 会写入到 system日志 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

  • 参数说明
         -d # 指定已安装设备驱动程序映像的名称。
    
         -c  # 更新或显示配置 如果没有提供其他参数,则为当前配置。可选获取配置文件。
    
         -h  # 指定hash记录的算法
    
         -i  # 安装,可用xml文件来更新配置文件
    
         -l  # 记录加载模块,可指定进程
    
         -m  # 安装事件清单
    
         -n  # 记录网络链接
    
         -r  # 检测证书是否撤销
    
         -u  # 卸载服务和驱动
         
         -s  # 打印配置架构 
    
         -? config # 查看配置文件写法 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

  • 配置文件说明

    • 官方给出的配置文件例子:
      <Sysmon schemaversion="4.21">
      <!-- Capture all hashes -->
      <HashAlgorithms>*</HashAlgorithms> <!--哈希配置(默认使用sha1) -->
      <EventFiltering> <!--事件筛选-->
      <!-- Log all drivers except if the signature -->
      <!-- contains Microsoft or Windows -->
      <DriverLoad onmatch="exclude"> <!--默认记录所有日志 除非标记 ? -->
           <Signature condition="contains">microsoft</Signature>
           <Signature condition="contains">windows</Signature>
      </DriverLoad>
      <!-- Do not log process termination -->
      <!--不记录进程终止-->
      <ProcessTerminate onmatch="include" />
      <!-- Log network connection if the destination port equal 443 -->
      <!-- or 80, and process isn't InternetExplorer -->
      <NetworkConnect onmatch="include">
           <DestinationPort>443</DestinationPort> <!-- 记录443 端口连接记录-->
           <DestinationPort>80</DestinationPort>
      </NetworkConnect>
      <NetworkConnect onmatch="exclude">
           <Image condition="end with">iexplore.exe</Image>
      </NetworkConnect>
      </EventFiltering>
      </Sysmon>
       -- 配置条目直接位于Sysmon 标签下, 过滤器位于 EventFiltering 标签下 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
    • 过滤器标签
       ProcessCreate            进程创建
       FileCreateTime           文件创建时间更改
       NetworkConnect           检测到网络连接
       ProcessTerminate         进程终止
       DriverLoad               驱动程序已加载
       ImageLoad                镜像加载
       CreateRemoteThread       已检测到创建远程线程
       RawAccessRead            检测到原始访问读取
       ProcessAccess            已访问的进程
       FileCreate               文件创建
       RegistryEvent            添加或删除注册表对象
       RegistryEvent            注册表值设置
       RegistryEvent            注册表对象已重命名
       FileCreateStreamHash     已创建文件流
       PipeEvent                管道创建
       PipeEvent                管道已连接
       WmiEvent                 检测到WmiEventFilter活动 -- WmiEventFilter activity detected
       WmiEvent                 检测到WmiEventConsumer活动 -- WmiEventConsumer activity detected
       WmiEvent                 检测到WmiEventConsumerToFilter活动 -- WmiEventConsumerToFilter activity 
       DnsQuery                 DNS查询
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
    • 标签使用说明:
      使用onmacth标记配置文件中 过滤器规则 include exclude
      include:
           仅包含include的规则配置 
      exclude: 
           除去该规则配置, 其他全包含 
      PS: 
           例如,此规则将丢弃进程创建中 IntegrityLevel 为中等的任何流程事件
            <ProcessCreate onmatch="exclude">
                <IntegrityLevel>Medium</IntegrityLevel>
           </ProcessCreate>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10

    • 过滤器标签的字段可以使用其他条件匹配该值
    --------------------------------------
    注: 不区分大小写
    --------------------------------------
    字段如下:
         is             默认值, 等于
         is not         不等于 
         contains       包含
         excludes       不包含
         begin with     以此字段开始
         end with       以此字段结束
         less than      小于
         more than      大于 
         image          匹配镜像路径(完整路径或仅镜像名称) 
         例如:lsass.exe将匹配c:\windows\system32\lsass.exe
         
    -----------------------------------------
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    • 规则组:
      <EventFiltering>
           <RuleGroup name="group 1" groupRelation="and"> <!--规则组1 组关系and -->
                <ProcessCreate onmatch="include"> <!--进程创建-->
                <Image condition="contains">timeout.exe</Image> <!--进程名为 timeout.exe 且 命令行参数为100 才会生成日志文件-->
                <CommandLine condition="contains">100</CommandLine>
                </ProcessCreate>
           </RuleGroup>
           <RuleGroup groupRelation="or"><!-- 组关系or -->
                <ProcessTerminate onmatch="include"><!--进程退出-->
                <Image condition="contains">timeout.exe</Image> <!--进程为timeout.exe 或者 进程为ping.exe 结束时产生事件-->
                <Image condition="contains">ping.exe</Image>
                </ProcessTerminate>
           </RuleGroup>
           <ImageLoad onmatch="include"/>
      </EventFiltering>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      要让sysmon报告哪个规则匹配导致记录事件,请向规则添加名称:
      <NetworkConnect onmatch="exclude">
           <!---->
           <Image name="network iexplore" condition="contains">iexplore.exe</Image>
      </NetworkConnect>
      
      • 1
      • 2
      • 3
      • 4
      • 5
    全部事件收集
    <Sysmon schemaversion="4.21">
    <!-- Capture all hashes -->
    <HashAlgorithms>*</HashAlgorithms>
    <CheckRevocation/>
    <EventFiltering >
    <RuleGroup name="" groupRelation="or"> 
        <ProcessCreate onmatch="exclude"></ProcessCreate>
        <FileCreateTime onmatch="exclude"></FileCreateTime>
        <NetworkConnect onmatch="exclude"></NetworkConnect>
        <ProcessTerminate onmatch="exclude"></ProcessTerminate>
        <DriverLoad onmatch="exclude"></DriverLoad>
        <ImageLoad onmatch="exclude"></ImageLoad>
        <CreateRemoteThread onmatch="exclude"></CreateRemoteThread>
        <RawAccessRead onmatch="exclude"></RawAccessRead>
        <ProcessAccess onmatch="exclude"></ProcessAccess>
        <FileCreate onmatch="exclude"></FileCreate>
        <RegistryEvent onmatch="exclude"></RegistryEvent>
        <FileCreateStreamHash onmatch="exclude"></FileCreateStreamHash>
        <PipeEvent onmatch="exclude"></PipeEvent>
        <DnsQuery onmatch="exclude"></DnsQuery>
    </RuleGroup>
    </EventFiltering>

    没有评论:

    发表评论