Windows系统日志分析

一、前言

本文将对常见的日志类型,利用微软日志分析工具(LogParser)结合已经掌握的恶意代码分析Windows系统日志,关联出系统的异常。

数据来源于Windows的事件查看器中的*.evtx文件,eventvwr.msc。

  • System日志
  • Security日志
  • Setup日志

除此之外还要关注木马病毒的信息

  • 注册表日志
  • 文件修改时间

二、Windows登录类型

安全日志登录部分的事件 ID 和登录类型代码都具有一定含义:

事件 ID(Event ID)

Event ID(2000/XP/2003) Event ID(Vista/7/8/2008/2012) 描述
528 4624 成功登录
529 4625 失败登录
680 4776 成功/失败的账户认证
624 4720 创建用户
636 4732 添加用户到启用安全性的本地组中
632 4728 添加用户到启用安全性的全局组中
2934 7030 服务创建错误
2944 7040 IPSEC服务服务的启动类型已从禁用更改为自动启动
2949 7045 服务创建

事件类型(EventType)

登录类型 登录类型 描述
2 Interactive 用户登录到本机
3 Network 用户或计算手机从网络登录到本机,如果网络共享,或使用 net use 访问网络共享,net view 查看网络共享
4 Batch 批处理登录类型,无需用户干预
5 Service 服务控制管理器登录
7 Unlock 用户解锁主机
8 NetworkCleartext 用户从网络登录到此计算机,用户密码用非哈希的形式传递
9 NewCredentials 进程或线程克隆了其当前令牌,但为出站连接指定了新凭据
10 Remotelnteractive 使用终端服务或远程桌面连接登录
11 Cachedlnteractive 用户使用本地存储在计算机上的凭据登录到计算机(域控制器可能无法验证凭据),如主机不能连接域控,以前使用域账户登录过这台主机,再登录就会产生这样日志
12 CachedRemotelnteractive 与 Remotelnteractive 相同,内部用于审计目的
13 CachedUnlock 登录尝试解锁

三、分析思路

关注节点

  • 入侵时间段
  • IP(外网IP选取攻击者IP、监控到有被远控的内网IP)
  • 登录成功类型、尝试登录类型

关联分析

1、得到已经发现WEBSHELL、远控木马的创建时间

2、搜索注册表信息,通过注册表信息获取注册表键值创建时间再找出同一时间创建的文件。

3、整合文件创建的时间、注册表键值创建时间找出的新文件时间整合分析系统日志,把整个行为关联起来。

四、LogParse分析语法

显示方式

-i:EVT是指定分析的日志,也可以分析CSV 、IISW3C 等日志格式。

# 网格显示

Logparser.exe –i:EVT –o:DATAGRID “SELECT * FROM Security.evtx”

# CSV显示

Logparser.exe –i:EVT –o:DATAGRID “SELECT * FROM Security.evtx”

筛选语句

LogParse直接SQL语句,详细SQL语句使用说明在自带的CHM说明里。结合分组、提取语句就可以统计出源IP,时间,用户名。

只需要取出关键列进行判断或者比对,就可以从庞大的windows安全日志中提取出安全事件发生后想要关联的信息。

  • EXTRACT_TOKEN()
EXTRACT_TOKEN(列名,字段数,‘分隔符’)

EXTRACT_TOKEN(Strings, 8, '|')

输出结果:

  • 分组别名显示
字段名 as 别名

LogParser.exe -i:EVT -o:DATAGRID "SELECT TimeGenerated as LoginTime FROM Security.evtx where EventID=4624"

输出结果:

  • 按年月日筛选

使用timestamp('年-月-日', 'yyyy-MM-dd')函数

LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM Security.evtx where TO_DATE(TimeGenerated) between timestamp('2018-10-17', 'yyyy-MM-dd') and timestamp('2018-10-27', 'yyyy-MM-dd')" -rtp:-1
  • 按时间筛选
LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM Security.evtx where to_time(TimeGenerated) between timestamp('13:33:00', 'hh:mm:ss') and timestamp('13:35:00', 'hh:mm:ss')" -rtp:-1
  • 按照事件ID分析

4624是登录成功的ID信息,指定某个关键列中的事件ID显示出结果。

LogParser.exe -i:EVT -o:DATAGRID "SELECT TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as username,EXTRACT_TOKEN(Strings, 8, '|') as LogonType,EXTRACT_TOKEN(Strings, 17, '|') AS ProcessName,EXTRACT_TOKEN(Strings, 18, '|') AS SourceIP FROM Security.evtx where EventID=4624“

五、Windows日志分析

Security日志

筛选出登录成功的事件(4624)中的登录时间、用户名、登录类型、进程名、源IP。

关注点:

1、管理员登录时间段是不是正常时间
2、木马运行的时间和管理员登录时间对不对应

语句:

LogParser.exe -i:EVT -o:DATAGRID "SELECT TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as username,EXTRACT_TOKEN(Strings, 8, '|') as LogonType,EXTRACT_TOKEN(Strings, 17, '|') AS ProcessName,EXTRACT_TOKEN(Strings, 18, '|') AS SourceIP FROM Security.evtx where EventID=4624 AND TO_DATE(TimeGenerated) between timestamp('2018-10-17', 'yyyy-MM-dd') and timestamp('2018-10-27', 'yyyy-MM-dd')" -rtp:-1

System日志

关注点:

1、时间段
2、服务名、服务路径

语句:

LogParser.exe -i:EVT -o:DATAGRID "SELECT TimeWritten,EventID,EventType,EventTypeName,SourceName,EXTRACT_TOKEN(Strings,0,'|') as service_name,EXTRACT_TOKEN(Strings,1,'|') as service_path,Message from system.evtx where TO_DATE(TimeGenerated) between timestamp('2018-10-19', 'yyyy-MM-dd') and timestamp('2018-10-20', 'yyyy-MM-dd')" -rtp:-1"

Application日志

关注点:

1、程序运行时间

语句:

LogParser.exe -i:EVT -o:DATAGRID "SELECT * from Application.evtx where TO_DATE(TimeGenerated) between timestamp('2018-10-17', 'yyyy-MM-dd') and timestamp('2018-10-27', 'yyyy-MM-dd')" -rtp:-1"

参考

用LogParser分析Windows日志

https://yq.aliyun.com/articles/404198

Windows 系统安全事件应急响应

https://xz.aliyun.com/t/2524#toc-5

LogParser: Filter records for specific time frame/date

https://blogs.msdn.microsoft.com/jaskis/2009/08/10/logparser-filter-records-for-specific-time-framedate/

LogParse-Windows系统日志分析的更多相关文章

  1. 如何安全管理windows系统日志,windows系统日志的报表和告警

    如何安全管理windows系统日志,windows系统日志的报表和告警 无论大小,每个拥有IT基础设施的组织都容易发生内部安全攻击.您的损失等同于黑客的收益:访问机密数据.滥用检索到的信息.系统崩溃, ...

  2. windows 无法分析或处理 pass 报错问题汇总

    日光月华 发表于 2015-2-9 22:02:42 https://www.itsk.com/thread-346404-1-1.html 系统封装失败遇到windows 无法分析或处理 pass ...

  3. 【原创】利用Windows系统日志统计员工每天上下班考勤时间

    利用Windows系统日志统计员工每天上下班考勤时间(命令行参数为统计月份): using System; using System.Collections.Generic; using System ...

  4. 使用Windows的分析等待链(analyze wait chain)来诊断没用响应的应用

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用Windows的分析等待链(analyze wait chain)来诊断没用响应的应用.

  5. windows共享文件分析

    ·小结: 1.win+r,\\ip  弹出登录框,输入Guest,密码空登录:前置检查来宾账户状态: 2.net use  查看当前已经连接到的主机 实践: C:\Users\sas>net u ...

  6. 《Windows内核分析》专题-索引目录

    该篇博客整理了<Windows内核分析>专题的各篇博文,方便查找. 一.保护模式 二.进程与线程 [Windows内核分析]KPCR结构体介绍 (CPU控制区 Processor Cont ...

  7. [Windows内核分析]KPCR结构体介绍 (CPU控制区 Processor Control Region)

    Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html 逆向分析操作系统内核代码至少需要具备两项技能: 段页汇编代码非常懂 ...

  8. Service系统服务(三):查看进程信息、进程调度及终止、系统日志分析、使用systemctl工具

    一.查看进程信息 目标: 本例要求掌握查看进程信息的操作,使用必要的命令工具完成下列任务: 找出进程 gdm 的 PID 编号值 列出由进程 gdm 开始的子进程树结构信息 找出进程 sshd 的父进 ...

  9. windows 服务器系统日志分析及安全

    一.利用Windows自带的防火墙日志检测入侵 下面是一条防火墙日志记录 2005-01-1300:35:04OPENTCP61.145.129.13364.233.189.104495980 200 ...

随机推荐

  1. Navicat的使用技巧

    1.快速查找表:选中一个数据库,然后在右侧会弹出如下的搜索框,搜索表名即可 2.快速清空表的内容:在窗口选中一张表,右键,选择“清空表”

  2. Java 的类加载机制

    Java 的类加载机制 来源 https://www.cnblogs.com/xiaoxi/p/6959615.html 一.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内 ...

  3. LOJ #2538. 「PKUWC 2018」Slay the Spire (期望dp)

    Update on 1.5 学了 zhou888 的写法,真是又短又快. 并且空间是 \(O(n)\) 的,速度十分优秀. 题意 LOJ #2538. 「PKUWC 2018」Slay the Spi ...

  4. 使用kubeadm部署kubernetes1.9.1+coredns+kube-router(ipvs)高可用集群

    由于之前已经写了两篇部署kubernetes的文章,整个过程基本一致,所以这篇只着重说一下coredns和kube-router的部署. kube version: 1.9.1 docker vers ...

  5. Web应用:当文件超过100KB,无法上传,有种原因你想象不到

    今天下午2点多,突然发现凡是文件超过100KB的,在上传的时候都会卡住,但低于100KB的文件可以上传成功. 服务器端使用的是asp无组件上传,为什么突然出现这种问题呢? 我们知道,IIS默认上传限制 ...

  6. PHP iconv 解决utf-8和gb2312编码转换问题

    就一个很简单的函数iconv();但是就是这个函数在网上找了很多例子,都无法成功转换,这是为什么呢?     终于皇天不负有心人,答案还是让我找到了. 网上的都是这样用的   <?php $co ...

  7. pymysql 解决 sql 注入问题

    1. SQL 注入 SQL 注入是非常常见的一种网络攻击方式,主要是通过参数来让 mysql 执行 sql 语句时进行预期之外的操作. 即:因为传入的参数改变SQL的语义,变成了其他命令,从而操作了数 ...

  8. mysql 之各种 join 之间的关系

    一.了解一下 mysql 中所拥有的各种 join left join(左联接):返回包括左表中的所有记录和右表中联结字段相等的记录  right join(右联接):返回包括右表中的所有记录和左表中 ...

  9. 【Python】统计个人新浪微博词频并给出相应的柱状图

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  10. 我的 $OI$, 退役前写点东西

    离 \(NOIp2018\) 还有五天, 总想写点什么 马上退役了啊 是什么时候喜欢上信息技术的呢 记不清了, 很小的时候就喜欢捣鼓关于电脑的东西 当时也不知道有算法这种东西 只是知道有黑客 巨 j8 ...