1、Windows事件日志
Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。
Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。
系统日志
Windows系统组件产生的事件,主要包括驱动程序、系统组件、应用程序错误消息等。
日志的默认位置为:C:\Windows\System32\winevt\Logs\System.evtx
应用程序日志
包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有助于你解决问题。
日志的默认位置为:C:\Windows\System32\winevt\Logs\Application.evtx
安全日志
主要记录系统的安全信息,包括成功的登录、退出,不成功的登录,系统文件的创建、删除、更改,需要指明的是安全日志只有系统管理员才可以访问,这也体现了在大型系统中安全的重要性。
日志的默认位置为:C:\Windows\System32\winevt\Logs\Security.evtx
系统和应用程序日志存储着故障排除信息,对于系统管理员更为有用。 安全日志记录着事件审计信息,包括用户验证(登录、远程访问等)和特定用户在认证后对系统做了什么,对于调查人员而言,更有帮助。
2、查看系统日志
1> "开始"菜单上,依次指向“所有程序”、“管理工具”,然后单击“事件查看器”;
2> win+R,输入eventvwr.msc,直接进入事件查看器;
3、审核策略
系统内置的三个核心日志文件(System,Security和Application)默认大小均为20480KB(20MB),记录事件数据超过20MB时,默认系统将优先覆盖过期的日志记录。其它应用程序及服务日志默认最大为1024KB,超过最大限制也优先覆盖过期的日志记录。
1、事件类型
Windows事件日志文件本质上是数据库,其中包括有关系统、安全、应用程序的记录。记录的事件包含9个元素:日期/时间、事件类型、用户、计算机、事件ID、来源、类别、描述、数据等信息。
Windows事件日志共有五种事件类型,所有的事件必须只能拥有其中的一种事件类型。
信息(Information)
信息事件指应用程序、驱动程序或服务的成功操作的事件。
警告(Warning)
警告事件指不是直接的、主要的,但是会导致将来问题发生的问题。例如,当磁盘空间不足或未找到打印机时,都会记录一个“警告”事件。
错误(Error)
错误事件指用户应该知道的重要的问题。错误事件通常指功能和数据的丢失。例如, 如果一个服务不能作为系统引导被加载,那么它会产生一个错误事件。
成功审核(Success audit)
成功的审核安全访问尝试,主要是指安全性日志,这里记录着用户登录/注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件,例如所有的成功登录系统都会被记录为“成功审核”事件
失败审核(Failure audit)
失败的审核安全登录尝试,例如用户试图访问网络驱动器失败,则该尝试会被作为失败审核事件记录下来。
2、登录类型
每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式:
登录类型 | 描述 | 说明 |
---|---|---|
2 | 交互式登录(Interactive) | 用户在本地进行登录。 |
3 | 网络(Network) | 最常见的情况就是连接到共享文件夹或共享打印机时。 |
4 | 批处理(Batch) | 通常表明某计划任务启动。 |
5 | 服务(Service) | 每种服务都被配置在某个特定的用户账号下运行。 |
7 | 解锁(Unlock) | 屏保解锁。 |
8 | 网络明文(NetworkCleartext) | 登录的密码在网络上是通过明文传输的,如FTP。 |
9 | 新凭证(NewCredentials) | 使用带/Netonly参数的RUNAS命令运行一个程序。 |
10 | 远程交互,(RemoteInteractive) | 通过终端服务、远程桌面或远程协助访问计算机。 |
11 | 缓存交互(CachedInteractive) | 以一个域用户登录而又没有域控制器可用 |
登录类型2:交互式登录(Interactive): 就是指用户在计算机的控制台上进行的登录,也就是在本地键盘上进行的登录。
登录类型3:网络(Network): 最常见的是访问网络共享文件夹或打印机。另外大多数情况下通过网络登录IIS时也被记为这种类型,但基本验证方式的IIS登录是个例外,它将被记为类型8。
登录类型4:批处理(Batch) :当Windows运行一个计划任务时,“计划任务服务”将为这个任务首先创建一个新的登录会话以便它能在此计划任务所配置的用户账户下运行,当这种登录出现时,Windows在日志中记为类型4,对于其它类型的工作任务系统,依赖于它的设计,也可以在开始工作时产生类型4的登录事件,类型4登录通常表明某计划任务启动,但也可能是一个恶意用户通过计划任务来猜测用户密码,这种尝试将产生一个类型4的登录失败事件,但是这种失败登录也可能是由于计划任务的用户密码没能同步更改造成的,比如用户密码更改了,而忘记了在计划任务中进行更改。
登录类型5:服务(Service) :与计划任务类似,每种服务都被配置在某个特定的用户账户下运行,当一个服务开始时,Windows首先为这个特定的用户创建一个登录会话,这将被记为类型5,失败的类型5通常表明用户的密码已变而这里没得到更新。
登录类型7:解锁(Unlock) :很多公司都有这样的安全设置:当用户离开屏幕一段时间后,屏保程序会锁定计算机屏幕。解开屏幕锁定需要键入用户名和密码。此时产生的日志类型就是Type 7。
登录类型8:网络明文(NetworkCleartext) :通常发生在IIS 的 ASP登录。不推荐。
登录类型9:新凭证(NewCredentials) :通常发生在RunAS方式运行某程序时的登录验证。
登录类型10:远程交互(RemoteInteractive) :通过终端服务、远程桌面或远程协助访问计算机时,Windows将记为类型10,以便与真正的控制台登录相区别,注意XP之前的版本不支持这种登录类型,比如Windows2000仍然会把终端服务登录记为类型2。
登录类型11:缓存交互(CachedInteractive) :在自己网络之外以域用户登录而无法登录域控制器时使用缓存登录。默认情况下,Windows缓存了最近10次交互式域登录的凭证HASH,如果以后当你以一个域用户登录而又没有域控制器可用时,Windows将使用这些HASH来验证你的身份。
3、常见的日志分析
事件ID | 说明 |
---|---|
4624 | 登录成功 |
4625 | 登录失败 |
4634 | 注销成功 |
4647 | 用户启动的注销 |
4648 | 试图使用显式凭据登录。 |
4672 | 使用超级用户(如管理员)进行登录 |
4720 | 创建用户 |
4774 | 帐户已登录映射。 |
4775 | 无法映射的登录帐户。 |
4776 | 计算机试图验证的帐户凭据。 |
4777 | 域控制器无法验证帐户的凭据 |
4778 | 到窗口站重新连接会话。 |
4779 | 从窗口站,会话已断开连接。 |
6005 | 表示计算机日志服务已启动,如果在事件查看器中发现某日的事件ID号为6005,就说明这天正常启动了windows系统。 |
6006 | 表示事件日志服务已停止,如果没有在事件查看器中发现某日的事件ID为6006的事件,就表示计算机在这天没关机或没有正常关机 |
更多的事件ID描述可参考:https://support.microsoft.com/zh-cn/help/977519/description-of-security-events-in-windows-7-and-in-windows-server-2008
4、事件日志查看器
筛选日志是分析事件日志最常用的功能,我们可以根据事件ID、事件级别、事件来源、用户、计算机等属性进行搜索和过滤。
1、logparser
Log Parser(是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory。它可以像使用 SQL 语句一样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来。
Log Parser 2.2下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=24659
基本查询结构
Logparser.exe –i:EVT –o:DATAGRID “SELECT * FROM E:\logparser\xx.evtx”
这是一则基本的查询,输入格式是EVT(事件),输出格式是DATAGRID(网格),然后是SQL语句,查询E:\logparser\xx.evtx的所有字段,结果呈现为网格的形式;
可以看出,对于windows的安全日志分析,我们只需要取出关键进行判断或者比对,就可以从庞大的windows安全日志中提取出我们想要的信息。
查询登录的事件
登录成功的所有事件
LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM E:\event.evtx where EventID=4624"
登录失败的所有事件
LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM E:\event.evtx where EventID=4625"
指定登录时间范围的事件
LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM e:\event.evtx where TimeGenerated>'2019-06-19 23:32:11' and TimeGenerated<'2019-11-20 23:34:00' and EventID=4624"
我们也可以将日志导出文Excel可以打开的格式,这样就可以使用Excel对导出来的日志进行分析,不用去记许多的命令。
将日志导出为CSV格式并进行分析
LogParser.exe -i:EVT -o:CSV "SELECT * FROM E:\event.evtx where EventID=4624" > E:\event.csv
2、LogParser Lizard
对于GUI环境的Log Parser Lizard,其特点是比较易于使用,甚至不需要记忆繁琐的命令,只需要做好设置,写好基本的SQL语句,就可以直观的得到结果,这里给大家简单展示一下 首先选取查询类型
下载地址:http://www.lizard-labs.com/log_parser_lizard.aspx
依赖包:Microsoft .NET Framework 4 .5,下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=42642
这里我们选择windows event log,然后输入如下的查询语句:select * from Security where EventID=4624
查询结果如下:
参考链接:
https://github.com/Bypass007/Emergency-Response-Notes/blob/master/%E7%AC%AC%E4%BA%8C%E7%AB%A0%EF%BC%9A%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90/%E7%AC%AC1%E7%AF%87%EF%BC%9AWindow%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90.md
https://my.oschina.net/secisland/blog/754854