Windows日志浅析
总体来看,登录/登出事件对可以很好地追踪用户在一台主机上完整活动过程的起至点,和登录方式无关。此外可以提供一些“帐户登录”没有的信息,例如登录的类型。此外对终端服务的活动专门用两个事件ID来标识。ok,我们开始分析,同样从5种类型分别进行分析。
1、本地方式的登录和登出
Randy大神在书中只提到了Windows使用两个事件ID528和540记录用户成功的登录(后者对应网络类型的登录),登出使用ID530。然而事实上同时发生的事件不只限于这些,那么让我们来看看用户简单的登录和登出活动至少会触发那些事件。
首先是成功的登录,从日志分析来看至少会有2个事件发生,分别为ID552和528,以下从左到右分别是各自的截图。
现在来各种进行详细分析,首先是ID552事件,该事件说明有人使用身份凭据在尝试登录,并且头字段中的用户名为SYSTEM。看看描述信息中有什么好东西:
使用明确凭据的登录尝试: (说明有人在尝试登录)
登录的用户:
用户名: WIN2003$ (主机名加了$后缀)
域: WORKGROUP (主机的域名,此例中主机在名称为“WORKGROUP”的工作组中)
登录 ID: (0x0,0x3E7)
登录 GUID: -
凭据被使用的用户:
目标用户名: Administrator (登录使用的用户名)
目标域: WIN2003 (要登录的主机名)
目标登录 GUID: -
目标服务器名称: localhost
目标服务器信息: localhost
调用方进程 ID: 1612
源网络地址: 127.0.0.1 (从IP地址很容易判断是本地登录)
源端口: 0
这里有一点要说明一下,Windows对这条日志的解释是“一个已登录的用户尝试使用另外一个用户凭证创建登录会话,例如使用“RUNAS”命令来运行某个可执行文件”。但事实上第1次用户成功登录后也会产生这个事件。
接着是ID528事件,此时头字段中的用户名也变成真实的用户名,看看描述信息中有什么东西:
登录成功: (说明用户已成功登录)
用户名: Administrator (登录使用的用户名)
域: WIN2003 (被登录主机所属的域的域名,如果不在域中为主机名)
登录 ID: (0x0,0x37BF9) (此登录ID在计算机重启前会保持其唯一性,重启后可能会被再次使用。该ID很重要,因为可以关联用户随后的很多活动如对象访问!)
登录类型: 2 (各种类型含义及数字见后面的表格)
登录进程: Ur32
身份验证数据包: Negotiate
工作站名: WIN2003 (记录发起登录请求的计算机的Netbios名)
登录 GUID: -
调用方用户名: WIN2003$
调用方域: WORKGROUP
调用方登录 ID: (0x0,0x3E7) (注意,此ID和ID552事件描述信息的登录ID是一样的)
调用方进程 ID: 1612
传递服务: -
源网络地址: 127.0.0.1 (同样从IP地址很容易判断是本地登录)
源端口: 0
有意思的事情发生了,ID528事件的调用方登录ID和和ID552的登录ID是一样,那么我们能不能做个大胆的猜想呢?在本地登录成功前,系统本身先已创建了登录会话,然后此会
话再创建真实的用户会话。呵呵,只是随便猜猜而已。
登录类型对应含义如下表,上篇文章中常见5种登录方式对应数字分别为2、3、4、5、10。
登录类型ID | 登录方式 | 描述信息 |
2 | Interactive | A ur logged on to this computer at the console |
3 | Network | A ur or computer logged on to this computer from the network |
4 | Batch | Batch logon type is ud by batch rvers, where process might run on behalf of a ur without the ur's direct intervention 教育书籍推荐 |
5 | Service | A rvice was started by the Service Control Manager |
7 | Unlock | This workstation was unlocked |
8 | enviedNetworkCleartext | A ur logged on to a network and the ur password was pasd to the authentication package in its unhashed (plain text) form. It is possible that the unhashed password was pasd across the network, for example, when IIS performed basic authentication 介意的近义词 |
9 | NewCredentials | A caller (process, thread, or program) cloned its current token and specified new credentials for outbound connections. The new logon ssion has the same local identity, but it us different credentials for other network connections. |
10 | RemoteInteractive | A ur logged on to this computer remotely using Terminal Services or a Remote Desktop connection. |
11 | CachedInteractive | A ur logged on to this computer with network credentials that were stored locally on the computer. The domain controller was not contacted to verify the credentials |
| | |
此外,如果登录的用户名有某些权限(通过”本地安全策略“分配给该用户),在用户成功登录时还会有ID576事件发生,如下图所示:
描述信息如下:
指派给新登录的特殊权限:
用户名: Administrator
域: WIN2003
登录 ID: (0x0,0x37BF9)
特权: SeSecurityPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeTakeOwnershipPrivilege
SeDebugPrivilege
SeSystemEnvironmentPrivilege
SeLoadDriverPrivilege
SeImpersonatePrivilege
重阳节的英语作文从描述信息中我们可以看到名称为“Administrator”的用户所拥有的权限列表。
接下来看看失败的本地登录,首先是无效用户名、其次是有效用户名但是错误密码。
从图中可以看到,登录失败后会有ID529的事件产生。并且两者头字段的信息没有什么区别,用户名都是“SYSTEM”。那么看看描述信息中有什么信息和区别。
登录失败:
原因: 用户名未知或密码错误
用户名: test1
域: WIN2003
登录类型: 2
登录进程: Ur32
身份验证数据包: Negotiate
工作站名称: WIN2003
调用方用户名: WIN2003$
调用方域: WORKGROUP
调用方登录 ID: (0x0,0x3E7)
调用方进程 ID: 1100
传递服务: -
源网络地址: 127.0.0.1
源端口: 0
登录失败:
原因: 用户名未知或密码错误
用户名: administrator
域: WIN2003
登录类型: 2
登录进程: Ur32
身份验证数据包: Negotiate
工作站名称: WIN2003
调用方用户名: WIN2003$
调用方域: WORKGROUP
调用方登录 ID: (0x0,0x3E7)
调用方进程 ID: 1100
传递服务: -
源网络地址: 127.0.0.1
源端口: 0
从描述信息可以看到两者没有什么区别,唯一不同的是用户名,并且登录失败原因都一样。登录类型同样给出了用户登录的方式,为本地登录(数字为2)。有意思的是调用方用户名也是“主机名+$”的形式。
用户正常注销登出的话,也不是简单的一个事件。事实上会有2个事件产生,ID分别为551和538。截图如下:
看来微软在这点做得够细致了,先会有ID551事件说明有用户要求注销,接着ID538事件说刘德华几个孩子
明用户已成功注销。从头字段和描述信息中都可以看到真实的用户名,登录ID,并且ID538事件还包括用户的登录方式。微软的官方解释中有这样的说明:“ID551事件说明用户发起注销请求,因此包含用户的安全信息和允许用户访问对象的主要访问令牌会从内存中擦除。因此在令牌擦除后用户无法访问资源如文件、注册表。当注销过程完成后ID538事件产生。如果ID538事件没有在551事件后出现,一个程序或服务可能没有正确地管理访问令牌。尽管用户无法访问对象,这个程序或服务可能有缓存的访问令牌并保留访问对象的能力”。
2、远程方式的登录和登出
使用mstsc远程登录某个主机时,使用的帐户是普通用户的话(没有分配该用户任何权限)成功的情况下会有ID为552、528的事件产生,没有ID576事件。
这2个事件的头字段和本地方式基本没有什么区别,看看描述信息有什么不一样的地方:
使用明确凭据的登录尝试:
登录的用户:
用户名: WIN2003$
域: WORKGROUP
登录 ID: (0x0,0x3E7)
登录 GUID: -
凭据被使用的用户:
目标用户名: rdp
目标域: WIN2003
目标登录 GUID: -
目标服务器名称: localhost
目标服务器信息: localhost
调用方进程 ID: 1984
源网络地址: 192.168.10.2
源端口: 1035
登录成功:
用户名: rdp
域: WIN2003
登录 ID: (0x0,0x4C715)
登录类型: 10
登录进程: Ur32
身份验证数据包: Negotiate
工作站名: WIN2003
登录 GUID: -
调用方用户名: WIN2003$
调用方域: WORKGROUP
梦见给别人剪头发是什么意思 调用方登录 ID: (0x0,0x3E7)
调用方进程 ID: 1984
传递服务: -
源网络地址: 192.168.10.2
源端口: 1035
从这里可以看出至少有3个地方不一样,首先登录类型的ID为10,说明是远程交互式登录,其次是源网络地址和源端口。如果有防火墙的日志的话,可以进行关联分析。
登录失败同样分别使用无效用户名和有效用户名、无效密码2种方式,结果都是产生ID529事件,与之前也没有什么区别。描述信息如下:
登录失败:
四尺宣纸 原因: 用户名未知或密码错误
用户名: rdp
域: WIN2003
登录类型: 10
登录进程: Ur32
身份验证数据包: Negotiate
工作站名称: WIN2003
调用方用户名: WIN2003$
调用方域: WORKGROUP
调用方登录 ID: (0x0,0x3E7)
调用方进程 ID: 2640
传递服务: -
源网络地址: 192.168.10.2
源端口: 1040