文章来源:安恒信息应急响应
在应急响应初步阶段,我们会对系统日志、中间件安全日志、恶意文件等进行收集。接下来便是要进一步对这些文件进行分析:对恶意文件逆向、日志文件分析、梳理入侵时间线和入侵路径等。本文主要对Windows安全日志进行举例分析。
环境信息:
系统版本:Windows Server 2008 R2
IP地址:192.168.64.140
用户名:win-92uodoq3eg2\administrator
Windows的日志文件主要有系统日志、应用程序日志、安全日志这三类,另外,根据不同的系统服务配置可能还会产生其他的日志文件,如Powershell日志、WWW日志、FTP日志、DNS服务器日志等。这些日志文件由Windows的EventLog服务生成并记录,EventLog服务由Windows服务管理器(%SystemRoot%\system32\services.exe)启动并管理。
在默认情况下, Windows日志仅仅记录一些特定日志,因为Windows日志中每种日志的大小默认为20M,超过大小之后会覆盖最早的日志记录。如果我们需要记录详细的安全日志,则需要通过修改本地策略或者在高级审核策略配置(gpedit.msc)中来启用其他项的日志记录功能。
Windows安全日志存储在C:\Windows\System32\winevt\Logs
,该目录下存在许多evtx日志文件,windows安全日志文件主要记录在Security.etvx中,双击即可打开该文件查看windows安全日志。(Windows 2000 / Server2003 / Windows XP 安全日志默认位置在C:\WINDOWS\System32\config\SecEvent.Evt
)
通过WIN+R键调出运行界面后,在界面中执行eventvwr
,可打开windows日志管理器,选择安全项即可查看windows系统安全日志。
右键单击计算机,点击管理打开服务器管理器,诊断-事件查看器-Windows日志-安全
Windows 2000 / Server2003 / Windows XP :%SystemRoot%\System32\Winevt\Logs\*.evtx
Windows Vista / 7 / 10 / Server2008 及以上版本:%SystemRoot%\System32\Config\*.evtx
Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。每种日志默认大小20M,超过大小后会覆盖最早的日志记录
应用程序日志、系统日志,存储着故障排除信息,对于系统管理员更为有用;安全日志,记录着事件审计信息,包括用户验证(登录、远程访问等)和特定用户在认证后对系统做了什么,对于应急响应来说,更有帮助,本文主要对安全日志进行分析研究。
系统日志:系统日志包含由Windows系统组件记录的事件,记录系统进程和设备驱动程序的活动。由它审核的系统事件包括启动失败的设备驱动程序、硬件错误、重复的IP地址以及服务启动、暂停和停止。系统日志也记录启动期间要加载的驱动程序或其他系统组件的故障,记录的事件类型也是预先确定的。
默认位置:
%SystemRoot%\System32\Winevt\Logs\System.evtx
安全日志:安全日志记录各种系统审核和安全处理,包括用户权限的变化、文件和目录的访问、打印以及用户系统登陆和注销,如有效或无效的登陆尝试、与资源使用有关的事件。管理员有按需要指定安全日志中要记录的事件类型,安全日志只有系统管理员可以访问。
默认位置:
%SystemRoot%\System32\Winevt\Logs\Security.evtx
应用程序日志:应用程序日志包含计算机系统中的用户程序和商业程序在运行时出现的错误活动,它审核的事件包括所有应用程序产生的错误以及其他报告的信息,如性能监视审核的事件或一般程序事件。记录事件的种类大致有:硬盘使用情况、数据库文件的文件错误、设备驱动程序加载失败、用户登录系统失败计数等。
默认位置:
%SystemRoot%\System32\Winevt\Logs\Application.evtx
其他日志
Windows远程管理日志:Windows远程管理(WinRM)日志记录了Windows远程管理服务的所有操作
Microsoft-Windows-WinRM/Operational.evtx
Microsoft-Windows-WinRM/Analytic.etl
Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/perational.evtx
Microsoft-Windows-TerminalServices-RemoteConnectionManager/perational.evtx
Microsoft-Windows-TerminalServices-LocalSessio
PowerShell日志:在执行任何PowerShell命令或脚本时,无论是本地还是通过远程处理,Windows都会将事件写入以下三个日志文件:
Windows PowerShell.evtx
Microsoft-Windows-PowerShell/Operational.evtx
Microsoft-Windows-PowerShell/Analytic.etl
每条安全日志由以下结构组成:
在事件管理器 “查看”菜单上,单击“添加/删除列”。可显示或隐藏事件属性。
下表列出常见的事件属性。
当我们分析用户登录记录的时候就会发现,在Windows系统的安全日志中,有一个“登录类型”的说明。其实这个登陆类型就是记录了用户登录到Windows系统的方式,以下简单介绍几种常见的:
如下图 为Administrator用户 通过键盘输入密码正常登录到windows的日志,登录类型为 2
一般登录的进程名为
C:\Windows\System32\winlogon.exe
这里使用IPC连接方式
使用192.168.64.1 IPC连接 192.168.64.140
net use \\192.168.64.140\ipc$ "1" /user:"administrator"
从安全日志可看到源IP,登录用户等信息
以下是一个服务启动后的日志,登录类型为 5
服务启动进程名为
C:\Windows\System32\services.exe
锁屏后尝试解锁
通过Win 10(192.168.64.1)使用safefox账户对Win 2008进行远程桌面连接(192.168.64.140)
4625登录失败日志会存在子状态码的属性,通过改属性,我们可以对登录失败原因进行分析
例如下图中,通过子状态码 0xc000006a 可以得知,登录失败的具体原因是用户名是正确的,但密码是错误的。
事件ID是Windows日志的基本属性之一,通过事件ID可以分析事件类型,以下是常见的几种事件ID
其中需要重点关注的有4624,4625,4720,4726,4700,1102等。
开机时,常常会产生大量的安全日志:
其中,【事件ID 4608】表示Windows正在启动。之后伴随着一条特殊的登陆成功记录,为什么说特殊呢?因为这一条【事件ID 4624】登陆成功记录中的登陆类型为:0
之后便是许多登陆类型为5的登陆成功记录。
这个很好理解,上面说到登陆类型5,代表是服务账户登陆,而我们的Winows系统启动时,就会有许多服务启动,因此会有许多服务账户登陆记录。然后是启动防火墙驱动、启动防火墙等其他系统事件。
当Windows系统初始化完成后,就到我们的登陆界面了。当我们通过登陆界面登陆时,会产生4条记录如下:
【事件ID 4776】计算机试图验证帐户的凭据。记录了登陆用户名、来源机器名。
【事件ID 4648】试图使用显式凭据登录。同样记录了登陆用户名、来源机器名、来源地址。进程名为:C:\Windows\System32\winlogon.exe
【事件ID 4624】登陆成功。登陆类型2,也就是在本地键盘上进行的登录。
【事件ID 4672】为新登录分配了特殊权限。记录了登陆用户名、登陆用户权限。
其中,4684表示我们是通过登陆界面登陆的。而其他三条,是正常使用账号密码进行登陆都会产生的。也就是说,登录一次产生3条日志:验证凭据、登陆成功、分配权限。
总结:4608启动-4624(0)首次-4624(5)服务启动-4624(5)-4624(5)-4776登录-4648-4624-4672
在安全日志4720中可以查看攻击者创建的用户,即使是隐藏用户都可以查看到。4726则是可以查看到被删除的用户。该事件日志中还可以查看该任务的发起者。
创建普通账户xiansec
创建新账户会有以下日志生成,其中4720创建用户帐户是创建新账户产生的日志
4728 已向启用了安全性的全局组中添加某个成员。
4720 已创建用户帐户。
4722 已启用用户帐户。
4738 已更改用户帐户。
4732 已向启用了安全性的本地组中添加某个成员。
通过4720日志可以查看创建新账户的发起人信息
删除普通账户xiansec
删除账户会有以下日志生成,其中4726日志是删除账户产生的日志
4733 已从启用了安全性的本地组中删除某个成员。
4729 已从启用了安全性的全局组中删除某个成员。
4726 已删除用户帐户。
通过4726日志可以查看删除账户的发起人信息
连接成功
查看安全日志:
和4.1 系统正常启动一样有4条日志信息,只有登陆类型不一样,为10
【事件ID 4776】计算机试图验证帐户的凭据。记录了登陆用户名、来源机器名。
【事件ID 4648】试图使用显式凭据登录。同样记录了登陆用户名、来源机器名、来源地址。
【事件ID 4624】登陆成功。登陆类型10,远程桌面登录。
【事件ID 4672】为新登录分配了特殊权限。记录了登陆用户名、登陆用户权限。
故意输错密码
查看日志
只有一条审核失败日志4625
使用超级弱口令检查工具V1.0 Beta28进行爆破 这里故意将线程调低 方便日志分析
爆破成功
使用字典共15条密码,正确密码在最后一条,爆破15次,最后一次成功,完成4个日志动作 4624登录-4672-4776-4648
执行命令如下:
net use \\192.168.64.140 /u:admin 123 #密码错误
net use \\192.168.64.140 /u:admin 12 #密码错误
net use \\192.168.64.140 /u:admin 1 #密码正确
分析日志
两次4625 审核失败日志 4624(3)登录成功 记录了来源IP,来源主机名,登陆的用户名等信息。
使用超级弱口令检查工具V1.0 Beta28模拟进行爆破
分析日志
存在大量4625的登录失败日志 且登录类型为3,登录进程:为NtLmSsp
登录成功会产生一条登录类型为3的4624登录成功日志,同时会有4672,4676事件ID日志生成
在windows中,若运维人员开启了记录所有安全日志项,那么攻击者在拿到该服务器权限后 的所有操作都可以在该安全日志中被记录到。所以清空该Security日志肯定是一个善后的必然选择。
打开windows日志 清除日志
清除日志会生成一条事件ID为1102 日志清除的日志
日志详情
此条日志会记录清除日志操作的账户名
本文主要对Windows安全日志进行了分析与研究,从日志的分类、登录事件分析以及场景日志分析等方面进行了研究。总的来说,windows安全日志对于应急人员是重要且基础的分析项,对其进行深入学习研究有助于应急排查工作。