当前位置: 首页 > news >正文

PsLoggedOn(7.17):谁在登录?多会话取证与审计

PsLoggedOn(7.17):谁在登录?多会话取证与审计

  • PsLoggedOn(7.17):谁在登录?多会话取证与审计
    • 你将收获
    • 1)PsLoggedOn 是什么?
    • 2)典型使用场景
    • 3)快速开始(命令最小集)
    • 4)示例输出与解读
    • 5)与其他命令/工具交叉验证
    • 6)事件日志取证(时间维度还原)
    • 7)常见报错与速修
    • 8)批量审计脚本(PowerShell,CSV 落盘)
    • 9)最佳实践清单
    • 10)小结

PsLoggedOn(7.17):谁在登录?多会话取证与审计

目标:一眼看清 某台 Windows 上当前有哪些账号处于“登录状态”(含本地交互、RDP 会话、网络共享连接),并把这一结论用于安全审计、取证与运维排障。


你将收获

  • 搞清 PsLoggedOn 能“看见”的三类登录:本地交互 / 远程交互(RDP)/ 网络会话(共享)
  • 正确解读输出,区分 当前会话历史足迹
  • 典型排障与取证流程(含事件日志编码:4624/4634/4778/4779)
  • 可直接落地的 批量审计脚本常见报错速修

1)PsLoggedOn 是什么?

PsLoggedOn(Sysinternals) 用来显示:

  • 本地交互式登录(键鼠在主机前/控制台)
  • 远程交互式登录(RDP/终端服务会话)
  • 网络登录(访问共享、打开文件导致的会话)

query user / qwinsta 只看交互会话不同,PsLoggedOn 还能列出仅通过网络访问该主机资源的用户,这在审计“谁在占用共享”“是谁从文件服务器上打开了这个文件”时非常关键。


2)典型使用场景

  • 安全审计:发现异常的域账号正登录/连到关键服务器
  • 应急取证:某时间段“谁连过这台机/打开过共享”
  • 文件被占用:定位是哪个用户在远程占用文件/目录
  • RDP 多会话治理:清点同一台机器上的多名/多会话登录

3)快速开始(命令最小集)

:: 查看本机上谁在登录
psloggedon:: 查看远程主机
psloggedon \\HOSTNAME:: 仅看“交互式登录”(常见开关,具体以 psloggedon -? 为准)
psloggedon -l \\HOSTNAME

解读要点

  • 交互式:本地/远程桌面会话(对应 4624 LogonType=2/10)
  • 网络:通过 SMB 打开的会话(对应 4624 LogonType=3)
  • 已断开但未注销 的 RDP 会话通常仍会显示(会话驻留)

4)示例输出与解读

Users logged on locally:CORP\alice            (console)CORP\bob              (rdp-tcp#15)Users logged on via resource shares:CORP\buildsvcGUEST
  • console → 物理交互
  • rdp-tcp#15 → 远程桌面会话 ID
  • “via resource shares” → 该账号正在通过 网络共享 访问本机资源(即使没有打开桌面会话)

5)与其他命令/工具交叉验证

目的命令说明
交互式会话列表query user / qwinsta看谁在 RDP/控制台
网络会话net session / psfile谁通过 SMB 连接、打开了哪些文件
安全日志wevtutil / PsLogList4624/4634/4778/4779 取证(见下)
WMI 快照wmic /node:HOST COMPUTERSYSTEM GET USERNAME当前控制台用户(单点)

推荐:PsLoggedOn + query user + net session 三件套,交叉印证“交互 + 网络”。


6)事件日志取证(时间维度还原)

关键事件(安全日志 / Security):

  • 4624:成功登录(看 Logon Type

    • 2 = 交互式(本地)
    • 3 = 网络(共享/映射盘)
    • 10 = 远程交互式(RDP)
  • 4634:注销

  • 4778/4779:RDP 会话重新连接/断开

  • 4647:用户主动注销

快速导出(PsLogList 示例):

:: 抓取过去 1 天 RDP/网络相关登录事件
psloglist \\HOSTNAME -s -i 4624,4634,4647,4778,4779 -d 1 -o csv > HOSTNAME_logons.csv

7)常见报错与速修

报错常见原因快速修复
Access is denied.远程非管理员/UAC 限制/ADMIN$ 关闭使用管理员凭据;必要时放宽工作组 UAC 限制;开启管理共享
The RPC server is unavailable.135/动态 RPC 被拦、防火墙/设备离线放行端口;检查在线性;Test-NetConnection HOST -Port 135
The network path was not found.DNS/NetBIOS 不通、未入网校验解析、连通性与路由
输出缺少网络会话服务/共享关闭,无人通过 SMBnet session/psfile 交叉确认;有人可能只 RDP 未开文件

工作组 UAC 限制(可选,慎用)

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System ^/v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

8)批量审计脚本(PowerShell,CSV 落盘)

# 批量清点一组主机的交互/网络登录用户(调用 PsLoggedOn)
param([Parameter(Mandatory=$true)][string[]]$Hosts)$results = @()
foreach($h in $Hosts){Write-Host ">>> $h" -ForegroundColor Cyan$txt = cmd /c "psloggedon \\$h" 2>&1if($LASTEXITCODE -ne 0){ $results += [pscustomobject]@{Host=$h; Type='Error'; Account=$txt.Trim(); Session=''; When=Get-Date}continue}$block=''; $type=''foreach($line in $txt){if($line -match '^Users logged on locally') { $type='Local';  continue }if($line -match '^Users logged on via resource shares') { $type='Network'; continue }if($line -match '^\s*$') { continue }if($line -match '^\s+(.+?)(\s+\((.+)\))?$'){$acc=$matches[1].Trim()$sess= if($matches[3]){$matches[3]} else {''}$results += [pscustomobject]@{Host=$h; Type=$type; Account=$acc; Session=$sess; When=Get-Date}}}
}
$path = ".\psloggedon_audit_{0:yyyyMMdd_HHmmss}.csv" -f (Get-Date)
$results | Export-Csv -NoTypeInformation -Encoding UTF8 -Path $path
Write-Host "Saved to $path" -ForegroundColor Green

用法示例:
.\audit.ps1 -Hosts @('FS01','APP02','DB03')


9)最佳实践清单

  • 最小权限:尽量用只读权限审计,写操作另走审批
  • 合规保密:登录审计涉及个人信息,按制度取用,最少化留存
  • 交叉印证:PsLoggedOn + query user + net session + 安全日志
  • 会话治理:RDP 会话长期断开未注销(Disc)要设 Idle/Disconnect Policy
  • 纳管脚本:批量审计脚本纳入运维平台/堡垒机,留痕可追溯

10)小结

  • PsLoggedOn 解决的是“现在谁在这台机上”的问题,既看得到 交互会话,也看得到 网络会话
  • 与会话命令、共享会话、安全日志 结合,就能从 “瞬时态 + 时间轴” 两个维度完成完整审计。
  • 建议把本文脚本与流程固化到你的 日常巡检 / 应急取证 SOP 中,提升排障与审计效率。

下一篇:PsLogList(7.18):远程读取事件日志的筛选与导出 —— 带你把 4624/4634/4778/4779 拉齐做时间轴分析。

http://www.dtcms.com/a/569001.html

相关文章:

  • 深圳网站美化美容培训东莞网站建设
  • 网站开发流程主要分成什么wordpress 文艺小清新
  • 【Java8新特性】Stream 流深度实战:创建 /filter/map/collect 常用操作 + 惰性求值原理解析 + 并行安全避坑
  • 【STM32】智能排队控制系统
  • AISaaS出海工具整理
  • 电商网站如何做精细化运营dw软件下载官方免费下载
  • 在线教程丨端侧TTS新SOTA!NeuTTS-Air基于0.5B模型实现3秒音频克隆
  • 测试开发话题10---自动化测试常用函数(2)
  • Auto CAD二次开发——镜像图形对象
  • 软考 关于23种设计模式
  • golang 网站开发 教程网站建设公司如何规避风险
  • 建设电子商务网站论文网站开发核心技术
  • nestjs集成grpc服务
  • Milvus:标量索引详解(十三)
  • 【仓颉纪元】仓颉学习深度实践:30 天从零基础到独立开发
  • RocketMQ【入门实践】
  • Harmony鸿蒙开发0基础入门到精通Day11--TypeScript篇
  • 网站做广告的好处软件定制开发平台
  • 从智能手表拆解看硬件与软件的魔法融合 -嵌入式开发
  • 【java基础语法】---- 综合训练
  • BKA-Transformer-LSTM多变量时间序列预测Matlab实现
  • 如何自己创造一个网站平台搬瓦工装WordPress
  • 数式Oinone亮相GOTC 2025开源集市,企业级产品化引擎冲击Gitee当日热门项目
  • 【产品研究】生物力学软件 SIMM 4.0 for Windows 用户手册总结
  • 更新公司网站内容需要山东住房和城乡建设局网站首页
  • Unity与Android原生交互开发入门篇 - 打开Android的设置
  • 如何查看Linux系统版本?
  • Python类和对象--生命周期方法(对象生命周期,内存管理机制-存储,垃圾回收)
  • PAIMON+STARROCKS 学习
  • *曲速引擎的核心思想