LogonSessions 学习笔记(9.17):会话枚举与凭据审计

LogonSessions 学习笔记(9.17):会话枚举与凭据审计

LogonSessions 学习笔记(9.17):会话枚举与凭据审计

适用读者:Windows 运维/安全/取证工程师,需回答"谁在登录""从哪来""什么时候走"的所有细节问题。

你将收获

  • 弄清 LogonSessions 的原理(基于 LSA 的会话枚举、LUID/LogonId 概念)
  • 会读输出里的 Logon Type、User、SID、Auth Package、Logon Time、Session 等关键字段
  • 5 个高频取证/审计剧本(本机取证、RDP 溯源、共享滥用、服务账号滥用、横向移动排查)
  • PsLoggedOn 的差异与互补、与 4624/4634 事件的交叉验证方法
  • 常见坑与最小干扰实践(权限、远程调用姿势、时间线对齐)

一、LogonSessions 是什么?

LogonSessions.exe 是 Sysinternals 提供的轻量工具,用于从 LSA(本地安全机构) 直接枚举系统当前存在的登录会话 ,展示每个会话的用户、域、SID、登录类型、认证包、登录时间、会话 ID 等关键信息。它专注"以何种方式何时 "登入了本机(含交互/网络/服务等多类型),是本机活体 会话视角的权威清单。(Microsoft Learn)

核心差异:LogonSessions 直接面向 LSA 会话表 ;事件日志的 4624/4634 是历史记录;PsLoggedOn 更偏"谁在交互/共享使用"。三者交叉,能把"点 → 线 → 面"的证据链补齐。


二、工作原理(速写)

  • LSA 为每次成功登录建立一条Logon Session ,分配唯一 LUID/LogonId,并维护其安全上下文(用户、SID、认证包、Logon Type、时间戳、Session 等)。
  • LogonSessions 调用本地 LSA 接口枚举当前有效会话,按会话维度输出字段。会话结束(注销/超时)后对应项从 LSA 视图中消失。(Microsoft Learn)

三、输出字段速读

常见字段与判断要点(不同版本输出略有差异):

  • Logon Type :登录方式。典型值:
    • 2=Interactive(本机)
    • 3=Network(访问共享/网络资源)
    • 4=Batch(计划任务早期类型)
    • 5=Service(服务账户)
    • 7=Unlock(解锁)
    • 10=RemoteInteractive(RDP)
    • 11=CachedInteractive(缓存凭据本地登录)
      值的定义与语义可结合 4624 文档/知识库交叉参照。(manageengine.com)
  • User / Domain / SID :身份与安全标识。服务型会话常见 NT AUTHORITY\SYSTEMLOCAL SERVICE 等。
  • Auth Package :如 Negotiate/NTLM/Kerberos。横向移动或不合规环境中 NTLM 偏多。
  • Logon Time:LSA 记录的建立时间(活体视角)。
  • Session:交互会话 ID(与 RDP/控制台会话关联)。

四、典型用途与场景剧本

剧本 1:本机"谁在登录",一眼看全

cmd 复制代码
logonsessions -p
  • -p:显示进程与会话的相关映射(版本略异)。结合 Console/RemoteInteractive 能快速区分控制台 vs. 远程。(Microsoft Learn)

剧本 2:RDP 溯源与并发会话核查

  • 关注 Logon Type=10(RemoteInteractive) ,对照 Session 与时间戳,识别是否存在多并发 管理会话;与安全日志 4624 (成功登录)/ 4634 (注销)校验时间线与来源。(Microsoft Learn)

剧本 3:共享滥用/网内横移排查

  • Logon Type=3(Network) 通常出现在共享访问/SMB 横向移动路径;若同一账号在多台主机上出现大量 Type 3,结合 DC 上 4624/4768/4769(Kerberos)可定位来源主机与跳板链。

剧本 4:服务账号与计划任务清点

  • Logon Type=5(Service)/4(Batch) 可快速枚举"长期持有权限"的技术账号是否超范围在线;对比实际服务配置与期望清单,发现越权与遗留。

剧本 5:锁屏解锁审计

  • Logon Type=7(Unlock) 结合 Logon Time 与交互会话,辅助核对"在岗/离岗"时间线(合规场景下)。

五、与 PsLoggedOn/事件日志 的配套用法

  • LogonSessions:活体会话"此刻还在不在"。
  • PsLoggedOn:偏交互/共享使用者(本机+远程资源),对审计"谁占用共享"非常直观。
  • 事件 4624/4634 :历史流入/流出记录(域控/本机 Security 日志),包含 Logon Type 、来源主机/IP 等。三者交叉,能排除时序错觉孤证 。(Microsoft Learn)

六、最小干扰与远程姿势

  • 权限:本机管理员上下文最佳(访问 LSA 数据结构)。
  • 远程 :LogonSessions 不直接列远程主机,推荐 PsExec \\host logonsessions 在目标机本地执行并回传控制台输出(留痕可控)。(Microsoft Learn)
  • 时间同步:对齐 NTP,避免跨主机时间线偏差导致误判(尤其与 4624 校验时)。

七、常见问题速查

  • 看不到期望会话?
    • 账户权限不足 / EDR 拦截 LSA 查询 / 会话已结束(从 LSA 消失,仅可在 4624/4634 找历史)。
  • RDP 来源怎么看不到 IP?
    • 结合本机或 DC 的 4624 记录取 Source Network Address ;某些 RDP 版本/设置会出现字段异常,见微软相关说明。(Microsoft Learn)
  • 服务账号很多、难分真假?
    • 结合 PsService 导出服务配置 + LogonSessions 的 Service 会话,做"应有 vs. 实有"差异清单。

八、实用命令清单(可直接带走)

cmd 复制代码
:: 1) 基础清单(当前所有会话)
logonsessions

:: 2) 带进程/会话映射(版本支持时)
logonsessions -p

:: 3) 远程取目标机会话(通过 PsExec)
psexec \\srv-01 -s logonsessions

:: 4) 结合事件日志校验(域控/本机)
wevtutil qe Security "/q:*[System[(EventID=4624)]]" /c:5 /rd:true /f:text

(说明:wevtutil 示例仅作快速抽样,实际建议按用户/时间/LogonType 精确筛选。)


九、审计要点与最佳实践

  • 最小权限强认证优先:读取类操作原则上低风险,但建议固定跳板/审计机执行。
  • 留痕:把 LogonSessions 输出归档,与 4624/4634 定期对账,建立"峰值/异常"基线。
  • 自动化:结合 PsExec/PowerShell 定时采样关键服务器(AD、文件服务器、跳板机)。

十、小结

当你需要"当下"的登录真相时,LogonSessions 是最干净的入口;当你需要"历史的轨迹",就找 4624/4634 ;当你要知道"谁在占用共享或交互登录",再加上 PsLoggedOn 。把这三者捆起来用,你的登录取证与横向移动溯源 就有了稳定的三角支点。(Microsoft Learn)

------ 下一篇:SDelete(9.18):安全删除与介质回收的边界与实战。

相关推荐
chenzhou__1 小时前
LinuxC语言并发程序笔记补充
linux·c语言·数据库·笔记·学习·进程
明月醉窗台1 小时前
多相机同步技术详解
人工智能·数码相机·三维重建·双目·多目
通义灵码1 小时前
Qoder 官方答疑时间 | Qoder CLI 专场
人工智能·cli·qoder·答疑活动
被遗忘的旋律.1 小时前
Linux驱动开发笔记(二十二)——多点电容触摸屏
linux·驱动开发·笔记
TL滕1 小时前
从0开始学算法——第七天(快速排序算法练习)
笔记·学习·算法·排序算法
摇滚侠1 小时前
2025最新 SpringCloud 教程,Gateway 路由-规则配置,笔记53
笔记·spring cloud·gateway
姚家湾1 小时前
物模型与大语言模型
人工智能
老王熬夜敲代码1 小时前
万能引用、完美转发
c++·笔记