bdk3000/privileged-logon-anomaly

GitHub: bdk3000/privileged-logon-anomaly

用于检测Windows特权登录异常的日志分析工具。

Stars: 0 | Forks: 0

# 特权登录异常 # 特权账户登录异常检测 **MITRE ATT&CK:** T1078.002 - 有效账户:域账户 **日志来源:** 通过AMA的Windows安全事件 → Sentinel **事件ID:** 4672 - 特殊权限分配 | 4624 - 成功登录 ## 概述 4672事件在Active Directory中无处不在——每个 管理员登录都会生成一个。它本身并不能告诉你什么 有用的信息。但是,当你将它与某人登录的方式以及他们登录的时间相关联时,噪音就变成了信号。 这个检测将权限分配事件与 登录上下文相结合,以捕捉重要信息——在非工作时间通过RDP进行身份验证的管理账户。这就是 凭证被盗后看到的模式。攻击者拥有有效的凭证,他们已经进入系统,如果没有这种关联,他们在日志中就是不可见的。 ## 攻击场景 攻击者通过钓鱼、Kerberoasting或Pass-the-Hash获取域管理员凭证。他们在凌晨2点通过RDP进行身份验证。没有这个检测,这个事件只是数百万行中的一行。有了它——警报会立即触发。 ## 检测逻辑 - 在账户身份上连接4672和4624 - 过滤RDP(登录类型10)和网络(登录类型3) - 从时间戳计算一天中的小时 - 标记07:00-19:00窗口外的身份验证 - 排除计算机账户和内置服务账户 - 通过时间分桶去重——每个账户一行 ## 登录类型 — 参考 | 类型 | 描述 | 风险 | |------|-------------|------| | 2 | 交互式 — 物理上在键盘上 | 低 | | 3 | 网络 — 共享或驱动器映射 | 中等 | | 10 | 远程交互式 — RDP会话 | 高 | | 5 | 服务账户登录 | 预期 | ## KQL检测规则 ``` let BizStart = 7; let BizEnd = 19; SecurityEvent | where EventID == 4672 | join kind=inner ( SecurityEvent | where EventID == 4624 | where LogonType in (10, 3) | project TimeGenerated, Account, LogonType, IpAddress, LogonTypeName = case( LogonType == 10, "RemoteInteractive (RDP)", LogonType == 3, "Network", "Other") ) on Account | extend HourOfDay = hourofday(TimeGenerated) | extend AfterHours = iff( HourOfDay < BizStart or HourOfDay >= BizEnd, true, false) | where AfterHours == true | where Account !endswith "$" | where Account !in ("SYSTEM", "LOCAL SERVICE", "NETWORK SERVICE") | summarize EventCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated), Computers = make_set(Computer) by Account, HourOfDay, AfterHours | order by AfterHours desc, EventCount desc ``` ## 验证结果 规则针对DC01.lab.local的实时Sentinel数据进行执行。 在正常工作时间返回了LAB\Administrator的单个去重行——正确评估AfterHours = false。 调整过程中没有生成误报。规则确认 针对真实生产遥测数据是有效的。 ## 证据 **Sentinel检测输出 — 单个去重行** ![特权登录检测结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3b34e79514042757.png) ## 所以呢 域管理员账户在非工作时间通过RDP进行身份验证是任何环境中凭证泄露的最高置信度指标之一。这个规则 在攻击者达到目标之前就会触发——给SOC一个端点检测完全错过的响应窗口。 ## 身份与信任上下文 这个检测在域身份层捕捉信任边界违规。攻击者使用有效的被盗凭证绕过每个外围控制——这个规则 在身份验证事件本身捕捉到他们,无论他们如何获取凭证。每个特权登录都是一个信任决策——这个规则审计每一个。 ## 误报考虑因素 - 合法的非工作时间管理员工作 — 与账户所有者进行验证 - 以管理员账户运行的自动化脚本 — 转移到具有范围权限的服务账户 - 跨时区的全球团队 — 调整BizStart和BizEnd变量以匹配运营时间 ## 环境 - 日志来源:DC01.lab.local Windows安全事件 - 管道:AMA → Azure Arc → DCR → DetectionLab-LAW → Sentinel - 针对实时生产遥测数据进行验证 - 实验室:隔离的HyperV环境
标签:asyncio, ATT&CK 框架, Cloudflare, Kerberoasting, MITRE ATT&CK, Pass-the-Hash, RDP 会话, RDP 安全, Sentinel, T1078.002, Windows 安全事件, 事件ID 4624, 事件ID 4672, 交互式登录, 域账户, 安全事件响应, 安全事件检测, 安全信息与事件管理, 异常行为分析, 搜索引擎爬取, 数据关联, 日志关联, 时间序列分析, 服务账户登录, 权限管理, 模型越狱, 特权账户, 登录异常检测, 网络登录类型, 远程访问监控, 黄金证书