日志分析
1、前言
Windows 日志本质上是一个数据库,其中包括应用程序、安全、系统的操作记录。记录的事件包含9个字段:日期/时间、事件类型、用户、计算机、事件ID、来源、类别、描述、数据等。
系统信息提取脚本:https://yunpan.360.cn/surl_yrad892HMjZ (提取码:d1b6)
Windows 日志共有五种类型,所有的记录只能属于其中的一种事件类型:
选项 | 说明 |
信息(Information) | 信息事件指应用程序、驱动程序或服务的成功操作的事件 |
警告(Warning) | 警告事件指不是直接的、主要的,但是会导致将来问题发生的问题。例如,当磁盘空间不足或未找到打印机时,都会记录一个“警告”事件 |
错误(Error) | 错误事件指用户应该知道的重要的问题。错误事件通常指功能和数据的丢失。例如, 如果一个服务不能作为系统引导被加载,那么它会产生一个错误事件 |
成功审核(Success audit) | 成功的审核安全访问尝试,主要是指安全性日志,这里记录着用户登录/注销、对象访问、特权使用、账户管理、策略更改、详细跟踪、目录服务访问、账户登录等事件,例如所有的成功登录系统都会被记录为“成功审核”事件 |
失败审核(Failure audit) | 失败的审核安全登录尝试,例如用户试图访问网络驱动器失败,则该尝试会被作为失败审核事件记录下来 |
2、Windows日志位置
1、系统日志
记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据
默认位置:
2、应用程序日志
包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件
默认位置:
3、安全日志
记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事件。安全日志也是调查取证中最常用到的日志
默认位置:
4、powershell日志
事件查看器 -> 应用程序和服务日志 -> Microsoft -> Windows -> PowerShell -> Operationnal
系统和应用程序日志存储着故障排除信息,对于系统管理员更为有用。 安全日志记录着审计信息,包括用户验证(登录、远程访问等)和特定用户在认证后对系统做了什么,对于寻找攻击链更有帮助
3、EventID
对于 Windows 日志分析,我们可以根据自己的需要,根据事件ID迅速找出我们关心的信息。不同的事件ID代表不同的意义,具体信息可以参考微软官方文档
EVENT ID (2000/XP/2003) | EVENT ID ( Vista/7/8/2008/2012) | 描述 | 日志名称 |
528 | 4624 | 成功登录 | Security |
529 | 4625 | 失败登录 | Security |
680 | 4776 | 成功/失败的账户认证 | Security |
624 | 4720 | 创建用户 | Security |
636 | 4732 | 添加用户到启用安全性的本地组中 | Security |
632 | 4728 | 添加用户到启用安全性的全局组中 | Security |
2934 | 7030 | 服务创建错误 | System |
2944 | 7040 | IPSEC服务服务的启动类型已从禁用更改为自动启动 | System |
2949 | 7045 | 服务创建 | System |
登录类型事件
成功/失败登录事件提供的有用信息之一是用户/进程尝试登录(登录类型),但 Windows 将此信息显示为数字,下面是数字和对应的说明
登录ID | 登录类型 | 描述 |
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 | 登录尝试解锁 |
123
4、远程登录事件
1、RDP
攻击者使用 RDP 远程登录受害者计算机,源主机和目的主机都会生成相应事件。
重要的事件 ID(Windows日志 → 安全日志),必须要检查。
远程连接日志(应用程序和服务日志 → Microsoft → Windows → TerminalServices → RemoteConnectionManager → Operational)的 ID :
远程连接日志关注 RemoteInteractive(10) 和CachedRemoteInteractive(12)表明使用了 RDP ,因为这些登录类型专用于RDP使用。
2、计划任务和AT
计划任务事件(应用程序和服务日志 → Microsoft → Windows → TaskScheduler → Operational),该日志默认是禁用的。
3、案例
PSExec是系统管理员的远程命令执行工具,包含在“Sysinternals Suite”工具中,但它通常也用于内网渗透中的横向移动。
PsExec的典型行为
在具有网络登录(类型3)的远程计算机上将 PsExec 服务执行文件(默认值:PSEXESVC.exe)复制到%SystemRoot%。
如果使用-c选项,则通过 $Admin 共享将文件复制到 %SystemRoot% 执行命令。
注册服务(默认值:PSEXESVC),并启动服务以在远程计算机上执行该命令。
停止服务(默认值:PSEXESVC),并在执行后删除远程计算机上的服务。
PSExec选项的重要选项:
5、小知识点
1、账户类型
用户账户
计算机账户:此帐户类型表示每个主机。 此帐户类型的名称以字符“$”结尾。 例如,“DESKTOP-SHCTJ7L $”是计算机帐户的名称。
服务账户:每个服务帐户都创建为特定服务的所有者。 例如,IUSR是IIS的所有者,而krbtgt是作为密钥分发中心一部分的服务的所有者
2、日志被删除或日志服务被关闭
攻击者入侵系统后,很可能会删除日志,比较粗暴的手法是直接删除所有日志和停止日志服务。如果只是删除某一段时间内的日志,说明攻击者在这个时间段内进行了恶意行为,应该重点排查这段时间内的其他日志以及创建、修改过的文件
3、系统存在大量日志
搜索关键事件的ID,先找出危险动作,再排查危险动作的上下文日志
最后更新于