应急响应-Windows 日志分析和Web日志分析

Oyst3r 于 2023-04-25 发布

Windows 日志分析

Windows 系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件,用户可以通过它来检查错误发生的原因,或者去寻找受到攻击时攻击者留下的痕迹

Windows 主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志

应用程序日志

包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件,如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有助于问题的解决

默认位置: %SystemRoot%\System32\Winevt\Logs\Application.evtx

系统日志

记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等,系统日志中记录的时间类型由 Windows NT/2000 操作系统预先定义

默认位置: %SystemRoot%\System32\Winevt\Logs\System.evtx

安全日志

主要记录系统的安全信息,包括成功的登录、退出,不成功的登录,系统文件的创建、删除、更改,需要指明的是安全日志只有系统管理员才可以访问,这也体现了在大型系统中安全的重要性。

默认位置: %SystemRoot%\System32\winevt\Logs\Security.evtx

系统和应用程序日志存储着故障排除信息,对于系统管理员更为有用,而安全日志记录着事件审计信息,包括用户验证(登录、远程访问等)和特定用户在认证后对系统做了什么,对于调查人员而言,更有帮助,然后就是注意一个审核策略,如果这个没有配的话,日志就不会去记录一些本该记录的日志

审核策略

打开这里

然后点击如下部分

一般的话就设置成下图这样

事件 ID 对应的具体事件

Windows 的日志以事件 id 来标识具体发生的动作行为,可通过这个网站查询具体 id 对应的操作

Windows Security Log Encyclopedia (ultimatewindowssecurity.com)

1102   清理审计日志

4624   账号成功登录

4625   账号登录失败

4720   创建用户

4726   删除用户

4732   将成员添加到启用安全的本地组中

4733   将成员从启用安全的本地组中移除

事件日志中的事件级别

登录类型

这个来分析一下是不是有人 3389 等机器了还是就是本地键盘登的这种……

关于日志覆盖的问题

Windows 系统内置三个核心日志文件:System、Security、Application,默认大小均为 20480kB 也就是 20MB,记录数据超过 20MB 时会覆盖过期的日志文件,其他的应用程序以及服务日志默认大小均为 1MB,超过这个大小一样的处理方法

而这个也不是绝对的,是可以去更改的,给公司的话就尽量的选择第二种,然后应用

日志分析工具—logparser

到这个网站去下载就好—Download Log Parser 2.2 from Official Microsoft Download Center,我把这个无污染的安装包放到工具箱里面了,客户现场需要的话,现场给他拷贝一下,不过一般都是把人家事件拷出来一份然后放到本地去分析

然后添加一个环境变量,正常安装好就是这个样子,它是个图形化界面,下面给几个在真实情况中很必须用到的几条命令

使用方法:一般都是分析这个安全日志,所以我们这里用安全日志来演示,首先就是先在事件查看器中把这个安全日志导到任意一个目录,这里就导到 C 盘的根目录了,并把它命名为 Security.evtx

然后使用语法就行了,实质上还是用了数据库的查询语法

LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM c:\Security.evtx"

LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM c:\Security.evtx where EventID=4624"

我上面策略配置那块就没有配,所以没有也很正常

LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM c:\Security.evtx where TimeGenerated>'2024-06-01 23:32:23' and TimeGenerated<'2024-06-09 23:34:00' and EventID=4624"

LogParser.exe -i:EVT -o:DATAGRID "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as Username,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM c:\Security.evtx where EventID=4624"

这个的话就是可以用来查横向移动的,得到电脑主机名后,就可以 ping 这个主机名,看看这个 IP 是哪里的

LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM c:\Security.evtx where EventID=4625"
LogParser.exe -i:EVT "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,EXTRACT_TOKEN(Message,19,' ') as user,count(EXTRACT_TOKEN(Message,19,' ')) as Times,EXTRACT_TOKEN(Message,39,' ') as Loginip FROM c:\Security.evtx where EventID=4625 GROUP BY Message"
LogParser.exe -i:EVT -o:DATAGRID "SELECT TimeGenerated,EventID,Message FROM c:\System.evtx where EventID=6005 or EventID=6006"

日志被删除办法&怎么隐藏日志

[【Windows】日志删除恢复 CN-SEC 中文网](https://cn-sec.com/archives/296575.html)

Web 日志分析

从 web 应用日志中,可以分析出攻击者在什么时间,使用哪个 IP,访问了哪个网站,IIS 日志通常存放在%SyatemDrive%\inetpub\logs\LogFiles 目录,日志文件由时间命名,下面这个不是我的服务器,不太方便给看

工具

这是一种,或者去 github 上去找这种专门去可以分析日志的工具,到了客户现场把它所有的日志先导出来,然后放本地工具上做个可视化,而且还有搜索什么的功能还是蛮方便的