Win32_LogonSession 和相应的 StartTime 的奇数条目

Win32_LogonSession 和相应的 StartTime 的奇数条目

很抱歉,这里不是询问这个问题的最佳地点,但如果不是在这里,我不确定还有哪里。

我最近一直在调试我的电脑,试图查看是否有任何隐藏的恶意软件。我主要用我的电脑玩游戏,而 Discord 现在几乎只是一个恶意软件农场,我在各种游戏社区遇到了一些非常可疑的人,我发现他们显然是初出茅庐的黑帽黑客。此外,我还遇到了各种问题,比如 BSOD 和内核故障崩溃,或者在遇到这些问题后出现的其他问题,以及奇怪的事情,比如 regedit 出现在最近的应用程序中,而我甚至还没有听说过注册表,还有各种其他奇怪的事情,比如时区变化、奇怪的鼠标中断(可能?),反恶意软件服务甚至无法正常运行(MalwareBytes Chameleon 一直停止工作)。

在我前两次尝试识别任何东西时,我最终弄坏了整台该死的电脑,不得不重新安装。这很糟糕,但我从中吸取了教训,在弄乱我不理解的东西之前,我会尽量更好地备份我的数据。我想我只丢失了一些有价值的 Python 脚本,其他大部分都在 Google 或 Steam 上。

无论如何,我想有一天我必须彻底更改所有密码,但谁知道什么时候这样做才是安全的。

目前,我对用于查找所有登录会话的 powershell 命令的结果有一些疑问。我过去有一些编码经验,主要是来自 python,但绝不是专家级别,而且我大多过于依赖我在其他地方找到的代码。不确定我是如何找到这个的,但它是:

gwmi -Query 'SELECT * FROM Win32_LogonSession'

典型条目如下:

AuthenticationPackage : <string?
LogonId               : <int>
LogonType             : <int>
Name                  : 
StartTime             : YYYYMMDDHHSS.xxxxxx - xxx
Status                : 

所有条目中的空白列均保持原样。

我的问题涉及两列,AuthenticationPackage(AP)和StartTime。

首先,条目数量远超您的想象,主要是 CloudAP、Negotiate 和一个 NTLM。说实话,我不确定这些是什么。我尝试阅读其中一些内容,但无法完全理解这些类型之间的区别。据我所知,这些 AP 不会告诉我太多信息,但我还是会询问,以防他们可以补充一些说明。

对我来说,主要的问题是许多登录都是在我启动 PC 之前进行的,通过查询交叉引用 LogonIDgwmi -Query 'SELECT * FROM Win32_LoggedOnUser'表明,大多数登录都是使用我的名字登录的。

如果您无论如何都要使用 Windows 10,那么了解它的工作原理是一个重要目标,而“如何发现未被发现的恶意软件?”这个问题对我来说很有意思。老实说,我只是不想在这上面浪费太多时间。对于用户来说,Windows 可能令人沮丧地不透明,也许我很笨,但文档通常要么过时,要么难以理解(通常是文档的常态......)。更不用说,他们在后端的许多数据收集和软件更新/下载方法似乎大胆地假设黑客不可能劫持它们,而实际上,这只会让用户更难控制他们的系统而不是黑客。

不管怎样,回到我的观点:在我启动计算机之前,怎么可能开始登录会话?我认为最简单的答案是 LogonSession 表只包含所有最近的登录,但 LoggedOnUser 向我证实,据我所知情况并非如此。所有这些会话都对应于一个 LoggedOnUser 条目,这些条目都有我的用户名,因此它们中的每一个都具有相同的完整管理员权限,我认为只有一个登录才会拥有。

这是值得担忧的信号吗?

感谢您的所有帮助。

答案1

这不太可能引起担忧,但值得进一步了解 Windows 如何定义会话/登录。首先,我将分享我电脑上的内容以供比较。

Get-CimInstance win32_loggedonuser

Antecedent                                                     Dependent                                  
----------                                                     ---------                                  
Win32_Account (Name = "SYSTEM", Domain = "MyLaptop")          Win32_LogonSession (LogonId = "999")
Win32_Account (Name = "LOCAL SERVICE", Domain = "MyLaptop")   Win32_LogonSession (LogonId = "997")
Win32_Account (Name = "NETWORK SERVICE", Domain = "MyLaptop") Win32_LogonSession (LogonId = "996")
Win32_Account (Name = "NetAdmin", Domain = "MyDomain")        Win32_LogonSession (LogonId = "314462054")
Win32_Account (Name = "MyUser", Domain = "MyDomain")          Win32_LogonSession (LogonId = "2087657")
Win32_Account (Name = "MyAdminUser", Domain = "MyDomain")     Win32_LogonSession (LogonId = "113104563")
Win32_Account (Name = "ANONYMOUS LOGON", Domain = "MyLaptop") Win32_LogonSession (LogonId = "231724")
Win32_Account (Name = "DWM-1", Domain = "MyLaptop")           Win32_LogonSession (LogonId = "108347")
Win32_Account (Name = "DWM-1", Domain = "MyLaptop")           Win32_LogonSession (LogonId = "108305")
Win32_Account (Name = "UMFD-0", Domain = "MyLaptop")          Win32_LogonSession (LogonId = "64622")
Win32_Account (Name = "UMFD-1", Domain = "MyLaptop")          Win32_LogonSession (LogonId = "64621")

因此,通过上述操作,我可以看到以下用户:

  • MyUser:我实际登录的用户
  • MyAdminUser:第二个帐户,用于以管理员身份运行。每个 UAC 提示基本上都会创建另一个会话。(我删掉了其他 15 个)
  • NetAdmin:已远程登录的服务帐户
  • DWM-#:Windows 用于运行资源管理器 UI
  • UMFD-#:Windows 用于加载用户模式字体和驱动程序
  • *SERVICE:Windows 用于运行内核/网络/等的服务主体
  • ANONYMOUS LOGON:一个主要用于模拟(以其他用户身份运行)或更改您自己的密码之类的 Windows 实体。

这些都是正常的在 Windows 域中,以不同的用户/管理员身份运行程序可以很快增加一堆程序。您可能会看到某些软件(如防病毒软件或数据库服务等)也以单独的用户身份设置和运行。

Win32_LogonSessions这些都显示为 NTLM/Negotiate/Kerberos。您提到您看到的一些有AuthenticationPackage : CloudAP。我的电脑上没有任何示例,但那些将是使用微软的加拿大航空安全局. 通常由 MS Office 在线版或其他基于云的应用程序使用。

我没有比上次重启时间更早的会话。我认为 @stackprotector 可能是正确的,您启用了快速启动,这会在您关机时保存您的 Windows 会话。我相信这很简单,只需从开始菜单中选择重新启动,然后再次检查会话即可。(无论如何我建议这样做)。

但是,如果您确实看到了持久会话,则可以检查 Windows 凭据管理器中是否有任何可能已保存登录凭据的内容,其中“持久性”未设置为“登录会话”。同样,我也不会真正担心那里的东西。


最后,我要说的是,检查会话对于查看您是否被“控制”实际上毫无用处。真正的恶意软件可以并且会隐藏其在操作系统中,如果您不具备真正的专业知识,您将无法发现它。如今,如果您对某个设备的安全性没有信心,请备份文件、擦除数据、下载新安装程序并开始使用 - 这比以往任何时候都容易。

相关内容