应急响应——操作系统日志分析

windows日志概述

windows日志记录着Windows系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件,掌握计算机在特定时间的状态,以及了解用户的各种操作行为,为应急响应提供很多关键的信息。

  • 硬件变化(如驱动安装)
  • 网络连接(WIFI接入点访问)
  • USB移动介质插入或拔出
  • 用户登录或注销
  • 用户修改系统事件
  • 远程桌面访问(RDP)

windows日志文件本质上是数据库,其中包含有关系统、安全、应用程序的记录。记录的事件包含九个元素:日期/事件、事件级别、用户、计算机、事件ID、来源、任务类别、描述和数据信息。所有事件属于事件级别中的一类,具体的事件级别如下:

  • 信息事件:指对应用程序、驱动程序或者服务的成功操作事件
  • 警告事件:指不是直接的、主要的,但会导致将来问题发生的事件。例如磁盘空间不足或者未找到打印机
  • 错误事件:指用户应该知道的重要问题,通常是功能或者数据的丢失。例如:某服务不能被系统正常加载
  • 成功审核:表示成功的审核安全访问尝试,主要是指安全性的日志,包括用户的登录/注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件、其中所有成功登录的系统否会被记录为“成功审核”事件。
  • 失败审核:表示失败的审核安全登录尝试,如用户试图访问网络驱动器失败,该尝试就会被作为失败审核事件记录下来。

从Windows NT 3.1 版本起,微软公司就开始使用日志来记录各种事件的信息。在windows
NT/win2000/XP/server 2003中,日志文件扩展名一直是evt,存储位置为%systemroot%\system32\config”。从Vista/server 2008开始,日志文件的格式、结构和存储位置发生了改变,其文件扩展名改为evtx(XML格式),存储位置修改为“%systemroot%\system32\Winevt\logs”。日志通常分为三类,分别是系统日志(SYSEvent)、应用程序日志(AppEvent)、安全日志(Secevent)。

  • 系统日志:记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃及数据。Vista/win7/win8/server 2008/server 2012默认位置为“c:\windows\system32\winevt\logs\system.evtx”。
  • 应用程序日志:包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件。Vista/win7/win8/server 2008/server 2012默认位置为“c:\windows\system32\winevt\logs\Application.evtx”。
  • 安全日志:记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、账号管理、策略变更、系统事件。安全日志是最常用到的日志。Vista/win7/win8/server 2008/server 2012默认位置为“c:\windows\system32\winevt\logs\security.evtx”。

windows 日志事件解析

常见的事件ID对应关系
事件ID说明
4624登录成功
4625登陆失败
4634注销成功
4647用户启动的注销
4672使用超级用户(如管理员)进行登录
4720创建用户
每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式。常见登录类型对应关系
登录类型描述说明
2交互式登录用户在本地进行登录
3网络最常见的情况就是连接到共享文件夹或者共享打印机
4批处理通常表明某个计划任务启动
5服务每种服务都被配置在某个特定的用户账号下运行
7解锁屏保解锁
8网络明文登录的密码在网络上通过明文传输的,如FTP
9新凭证使用带/Netonly参数的RUNAS命令运行一个程序
10远程交互通过终端服务、远程桌面或远程协助访问计算机
11缓存交互以一个域用户登录而又没有与空气可用
在进行日志分析的时候,可使用windows自带的事件查看器对日志进行筛选。
打开事件查看器的方式:1. 计算机-管理-事件查看器 2. win+R输入eventvwr 3. 控制面板-管理工具-事件查看器
通过事件查看器的筛选日志功能可以输入事件ID来查看指定类别的日志

在这里插入图片描述 windows日志分析思路

对windows日志进行排查,首先查看是否创建了用户,然后查看该用户是否成功登陆,再次查看用户什么时间注销,基于这个时间段,排查系统日志,查看安装了哪些应用程序。

  • 查看创建用户的事件(ID为4720)
  • 查看登录成功的事件(ID为4624)
  • 查看注销成功的事件(ID为4634)
  • 查看系统日志,查看在上述时间段内发生的情况

windows日志分析工具

Log Parser Lizard是一款强大的GUI图形界面版的日志分析工具,除了能够分析windows事件日志外,也能分析IIS的W3C日志,同时还支撑TSV/CSV/TEXT文件、Active Directory、注册表、Google BigQuery、MySQL、SQL Server等。
安装该软件同时需要安装Log Parser 2.2,同时该软件运行需要.NET Framework(具体需要哪个版本,在运行Log Parser Lizard时会给出提示)

  • 查询登录成功的所有事件:select * from security where EventID=4624
  • 查询特定时间内登录成功的事件:select * from security where TimeGenerated>‘2020-01-08
    00:00:01’ and TimeGenerated<‘2020-01-08 23:59:59’ and EventID=4624
  • 查看特定时间内登录成功的用户名和IP地址:select EXTRACT_TOKEN(Strings,5,’|’) as
    EXTRACT_TOKEN(Strings,18,’|’) as IP from security where TimeGenerated > ‘2020-01-08 00:00:01’ and TimeGenerated<‘2020-01-08 23:59:59’ and EventID=4624

登录成功的用户名和IP地址在Strings和Messages中都有,在任意一个列中查找都可以,EXTRACT_TOKEN(列数,字段数,分隔符) as 别名。

  • 列名:即Strings或者Messages
  • 字段数:所提取的内容所在的编号,注意是从0开始的,所以用户名是5
  • 分隔符:Strings中的分隔符是管道符63“|”,Messages中的分隔符是空格或者分号
  • 别名:为便于记录和观看而起的名称

Messages中的详细内容记录了已经成功登录账户的信息,其中主要内容包括:

  • 主题:账户名、账户域、登录ID、登录类型
  • 新登录:安全ID、账户名、账户域、登录ID、登录GUID
  • 进程信息:进程ID、进程名称
  • 网络信息:工作站名称、源网络地址、源端口
  • 身份验证信息:登录进程、身份验证数据包、传递的服务、数据报名(仅限NTLM)、密钥长度
  • 采用分号分隔的查询语句:select EXTRACT_TOKEN(Messages,9,’:’) as EXTRACT_TOKEN(Messages,19,’:’) as IP from security where
    TimeGenerated>‘2020-01-08 00:00:01’ and TimeGenerated<‘2020-01-08
    23:59:59’ and EventID=4624
  • 采用空格分隔的查询语句:select EXTRACT_TOKEN(Messages,9,’ ‘) as EXTRACT_TOKEN(Messages,19,’ ') as IP from security where
    TimeGenerated>‘2020-01-08 00:00:01’ and TimeGenerated<‘2020-01-08
    23:59:59’ and EventID=4624

Linux操作系统日志

大部分Linux发行版默认的日志守护进程为syslog,位于“/etc/syslog”或者“/etc/syslogd”,默认配置文件为“/etc/syslog.conf”,任何希望生成日志的程序都可以向syslog发送信息。Fedora、Ubuntu、Rhel6、CentOS 6以上版本默认的日志系统都是rsyslog的,rsyslog是syslog的多线程增强版,配置文件为“/etc/rsyslog.conf”。
Linux系统内核和许多程序都会产生各种错误信息、警告信息和其他提示信息都会被写在日志文件中,完成这个过程的程序就是syslog,syslog可以根据日志的类别和优先级将日志保存到不同的文件中,数字级别越小,其优先级别越高,消息也越重要。

日志优先级

级别英文中文释义说明
0EMERG紧急导致主机系统不可用
1ALERT警告必须马上采取措施解决问题
2CRIT严重比较严重的情况
3ERR错误运行出现错误
4WARNING提醒可能影响系统功能,是需要提醒用户的重要事件
5NOTICE注意不会影响正常功能,但是需要注意的事件
6INFO信息一般信息
7DEBUG调试程序或系统的调试信息

Linux系统中常见的日志文件说明

日志文件说明
/var/log/cron记录系统定时任务的相关日志
/var/log/cups记录打印信息的日志
/var/log/dmesg记录系统在开机时内核自检的信息,也可以使用dmesg命令直接查看
/var/log/mailog记录邮件信息
/var/log/message记录Linux系统中绝大多数的重要信息,在系统出现问题时,首先要检查的就是这个日志文件
/var/log/btmp记录错误登录日志。这个文件是二进制的,不能直接用vi命令查看,而是使用lastb命令
/var/log/lastlog记录系统中所有用户最后一次登录时间的日志,这个文件是二进制的,使用lastb查看
/var/log/wtmp永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。二进制文件,使用lastb查看
/var/run/utmp记录当前已经登录的用户信息,会随着用户的登录和注销不断变化,只记录当前登录用户的信息,这个文件不能直接用vi命令查看,使用w、who、users等命令
/var/log/secure记录验证和授权方面的信息,只要涉及账号和密码的程序都会被记录,如SSH登录、su切换用户、sudo授权,以及添加用户和修改用户密码都会记录在这个日志文件中
软件安装日志例如“/var/log/yum.log”或“/var/log/yum.log-时间”中会显示yum安装的日志;“/root/install.log”中存储了安装在系统中的软件包及其版本信息;“/root/install.log.syslog”中存储了安装流程中留下的事件记录

Linux重要日志文件的解析

在应急响应日志排查中,需要重点分析的日志有“/var/run/utmp”、“/var/log/lastlog”、“/var/log/wtmp”、“/var/log/btmp”和“/var/log/secure”及软件安装日志等
Linux操作系统中需要借助shell命令对安全日志进行分析。

  • 查看有哪些IP在暴力破解
    基于登录失败的日志格式,关键字是“Failed password”,IP地址在第十一个字段,命令为“grep “Failed password for invalid” /var/log/secure | awk ‘{print $13}’ | sort | uniq -c | sort -nr”
  • 查找暴力破解的用户名字典是什么
    命令:grep “Failed password for invalid” /var/log/secure | awk ‘{print $11}’ | sort | uniq -c | sort -nr
    使用以上命令只能查看登陆失败的用户,要查看暴力破解是否成功还需要查看登录成功的用户信息。
  • 查看登录成功的用户及IP
    命令:grep “Accepted” /var/log/secure | awk ‘{print $9,$11}’ | sort | uniq -c | sort -nr
    如果要进一步分析是暴力破解登录还是正常登录,还可写入时间或者显示整条日志。
    命令:grep “Accepted” /var/log/secure | awk ‘{print $0}’ | sort | uniq -c | sort -nr
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值