kizumi_header_banner_img

这里是幻灬十一的博客,欢迎来到我的世界

加载中

文章导读

Windows 底层认证、权限访问与终端原生防御全解(内网渗透核心基础)


avatar
11 2026年8月12日 20

Windows 底层认证、权限访问与终端原生防御全解(内网渗透核心基础)

前言

在内网渗透、域安全攻防学习中,Windows 身份认证、权限控制、系统内置防御是三大根基。绝大多数内网攻击(哈希传递、NTLM 中继、Kerberoast、土豆提权、UAC 绕过、无文件脚本免杀等),底层原理都依托 Windows 这套原生架构。本文完整拆解NTLM 传统认证Kerberos 域票据认证、SID / 访问令牌 / 高危特权、UAC+Defender+AMSI 三层防御体系,系统化梳理底层原理、版本差异、漏洞攻击面,适合安全从业者、渗透测试学习者作为完整复习与实战参考。

一、Windows 两大认证体系:NTLM + Kerberos

1. NTLM 协议完整详解

1.1 NTLM 协议基础定义与背景

NTLM 全称NT LAN Manager,1993 年微软推出,用于替代脆弱的 LM(LAN Manager)协议,是一套基于挑战 – 响应的无状态认证套件,内置在 SSPI 安全支持接口(msv1_0.dll)中,可嵌入 SMB、HTTP、LDAP、RPC 等上层协议完成身份校验。

  • 使用场景:工作组单机互访、IP 直连访问、老旧系统、Kerberos 解析 / 时钟异常时的自动降级回退方案;本地登录、共享文件、Web NTLM 认证均依赖它。
  • 版本划分:分为 LM、NTLMv1、NTLMv2 三个世代,现代 Windows 默认强制 NTLMv2,LM/NTLMv1 因加密缺陷已被官方不推荐。

1.2 核心底层:挑战 – 响应无状态认证逻辑

NTLM 全程不传输明文密码,依靠随机挑战值规避重放攻击,整套交互为三段报文交换,完全贴合前文密码散列体系:

  1. Type1 协商报文(Client→Server) 客户端发送支持的安全特性标识(是否支持 v2、消息签名、加密密封),发起认证请求。
  2. Type2 质询报文(Server→Client) 服务端生成 8 字节随机Server Challenge挑战值,返回客户端,这是一次性随机因子。
  3. Type3 认证响应报文(Client→Server) 客户端使用本机 NT Hash 结合服务端挑战值计算 NetNTLM 哈希(应答),携带用户名、域信息发送给服务端;
    • 工作组:服务端读取本地 SAM 文件内 NT Hash 复现运算校验;
    • 域环境:服务端通过 Netlogon 协议将凭证转发域控 DC 校验(透传认证)。

1.3 NTLMv1 与 NTLMv2 关键区别(安全分水岭)

表格

维度 NTLMv1 NTLMv2
加密算法 DES 分组加密,密钥拆分缺陷严重 HMAC-MD5,加盐随机 Blob 扩展
计算依赖 仅服务端 8 字节挑战 服务端挑战 + 客户端随机 Blob 双随机因子
抗爆破能力 极弱,彩虹表秒破 大幅提升,离线爆破成本显著增加
防护配置 LMCompatibilityLevel ≤4 LMCompatibilityLevel ≥5(系统默认)
遗留风险 极易嗅探爆破、中继攻击 仍存在中继、哈希传递漏洞,但无 LM 弱哈希

补充:LM Hash 仅兼容老旧 9x 系统,Vista/2008 之后默认关闭,空 LM 值固定为aad3b435b51404eeaad3b435b51404ee,无实战利用价值。

1.4 NTLM 配套两套哈希:NT Hash 与 NetNTLM Hash

(1)NT Hash(静态持久哈希,类比身份证)

计算公式:NT Hash = MD4(UTF-16LE(明文密码)) 生成逻辑:明文密码转为 Unicode 小端编码,再执行 MD4 运算。 关键特点:

  • 无盐,用户不修改密码则哈希永久不变;
  • 持久存储:本地 SAM 文件、域控 NTDS.dit 数据库;
  • 安全风险:等价于明文,窃取后可直接执行Pass-the-Hash 哈希传递攻击,无需破解密码即可登录主机。
(2)NetNTLM Hash(网络一次性应答,类比短信验证码)

计算公式:NetNTLM Hash = HMAC-MD5(NT_Hash, Server_Challenge + 客户端随机Blob) 关键特点:

  1. 服务端每次认证下发随机Server Challenge,搭配客户端随机 Blob,每次生成的 NetNTLM Hash 完全不同;
  2. 仅存在网络流量数据包,不会写入磁盘、持久化保存;
  3. 无法用于哈希传递:绑定单次随机挑战,不能复用至其他主机认证;
  4. 可离线爆破:攻击者抓包获取 NetNTLM Hash,使用 Hashcat 字典爆破还原明文密码。

1.5 NTLM 核心攻击:哈希传递 + NTLM 中继

  1. Pass-the-Hash(哈希传递) NT Hash 无盐、永久不变是核心漏洞;攻击者拿到目标主机 lsass 内存导出的 NT Hash,无需明文密码,直接构造 NTLM 认证应答,横向移动访问内网所有同账号主机。
  2. NTLM 中继攻击(中间人 MITM) 攻击生效两个必要条件: ① 目标服务器未开启强制 SMB 签名,数据包可被中间人篡改; ② NTLM 协议缺少通道绑定校验,凭证不绑定目标主机,支持跨协议中继(HTTP 认证中继至 SMB/LDAP,SMB 中继至 LDAP、ADCS ESC8)。 攻击流程:Responder 进行 LLMNR/NBT-NS 投毒捕获客户端 NTLM 认证,通过 ntlmrelayx 将凭证中继转发域控或业务服务器,获取权限、添加机器账号、导出域凭据。

1.6 NTLM 协议整体安全短板总结

  1. 静态 NT Hash 无盐,直接支持哈希传递,横向移动成本极低;
  2. 协议原生无主机绑定校验,天生存在中继攻击面;
  3. NTLMv1 加密算法老旧脆弱,易离线快速爆破;
  4. 作为 Kerberos 降级兜底,域内无法彻底关闭,长期存在暴露风险;
  5. NetNTLM 应答报文可抓包离线字典爆破,泄露账号明文。

2. 前置基础:挑战 – 响应机制与密码散列通用原理

(1)挑战 – 响应机制

为解决明文密码网络传输泄露风险设计的认证逻辑,NTLM 协议完全基于该机制实现,属于无状态认证。 核心逻辑:通信全程不发送明文密码,客户端使用本地存储的密码哈希参与密码学运算,生成响应报文发送服务端;服务端使用同一份哈希复现运算,匹配成功即确认客户端持有正确密码。

(2)密码单向散列四大核心特性

系统不会存储明文密码,仅保存单向哈希值,哈希具备固定特性:

  1. 单向性:现有算力无法仅通过哈希反向推导出原始明文密码;
  2. 确定性:同一明文、同一哈希算法,计算出的哈希值完全一致;
  3. 雪崩效应:明文仅一个字符改动,最终哈希结果完全无关联;
  4. 盐值:密码拼接随机字符串后再哈希,抵御彩虹表批量爆破。

重点区别:Windows 原生 NT Hash无盐,是其安全短板。

3. Kerberos 域票据认证(域环境首选认证协议)

Kerberos 基于可信第三方、对称加密、票据机制,是现代域环境默认主认证协议,相比 NTLM 安全性更高,但存在大量专属攻击面。

(1)四大核心实体角色

  1. Client 客户端:发起资源访问请求的用户 / 进程;
  2. KDC 密钥分发中心:部署在域控 DC,包含两大服务
    • AS 认证服务:校验用户身份,下发 TGT 票据;
    • TGS 票据授予服务:校验 TGT,下发访问业务服务的 ST 票据;
  3. Target Server 目标服务器:承载 SMB、数据库、Web 等业务资源;
  4. krbtgt 内置账户:域创建时自动生成,仅用于加密 TGT 票据,不可登录任何主机。

(2)两类核心票据

  1. TGT 票据授予票据:由 krbtgt 账户 NT Hash 加密,客户端无法解密,是申请服务票据的通用通行证;
  2. ST 服务票据:由目标服务绑定账号的 NT Hash 加密,仅对应业务服务器可解密校验。

(3)关键标识与会话密钥

  1. SPN 服务主体名称:域内服务唯一标识(例:MSSQLSvc/db01.corp.local:1433),必须绑定域账号,是 Kerberoast 攻击的前置条件;
  2. AS 会话密钥:AS 生成,用于客户端与 TGS 之间加密通信;
  3. Service 会话密钥:TGS 生成,用于客户端与目标业务服务器加密通信。

(4)Kerberos 完整五步认证流程(核心背诵 + 攻击考点)

步骤 1:AS-REQ 预认证请求 Client → AS(KDC)

目的:向 KDC 证明自身身份,申请 TGT 票据 报文内容:明文用户名、客户端时间戳;使用用户 NT Hash 加密的时间戳(防止重放攻击,证明持有正确密码)。

步骤 2:AS-REP 发放 TGT AS → Client

校验逻辑:KDC 查询 NTDS.dit 获取用户 NT Hash,解密客户端时间戳;本地与客户端时间差≤5 分钟则身份验证通过。 返回两段核心数据:

  1. 用户 NT Hash 加密的 AS Session Key;
  2. krbtgt Hash 加密的 TGT 票据(客户端无密钥,无法解密)。 攻击考点:账号关闭预认证时,客户端无需发送加密时间戳,KDC 直接返回 AS-REP 报文,攻击者抓包后可离线爆破用户密码,即AS-REP Roasting
步骤 3:TGS-REQ 请求服务票据 Client → TGS(KDC)

报文内容:明文目标服务 SPN、TGT 票据、AS 会话密钥加密的客户端时间戳与身份信息。

步骤 4:TGS-REP 返回 ST TGS → Client

三层校验逻辑:

  1. KDC 使用 krbtgt Hash 解密 TGT,提取内部 AS 会话密钥;
  2. 使用 AS 会话密钥解密客户端附带的认证信息,完成身份二次校验;
  3. 根据 SPN 匹配绑定的服务 / 计算机账户。 返回内容:目标服务账号 Hash 加密的 ST 票据;AS 会话密钥加密的 Service 会话密钥。 攻击考点:域内任意普通账号均可正常发送 TGS-REQ 获取 ST 票据,ST 由服务账号哈希加密,截获后可离线爆破服务账号明文密码,即Kerberoast
步骤 5:AP-REQ 访问目标业务服务器 Client → Target Server

完整交互流程:

  1. 客户端发送 ST 票据 + Service 会话密钥加密的客户端认证信息;
  2. 目标服务器使用自身 NT Hash 解密 ST,提取 Service 会话密钥与 PAC 权限凭证;
  3. 使用 Service 会话密钥解密客户端身份报文完成核对;
  4. 解析 PAC 中用户 SID、所属组权限,完成访问权限判定,放行资源访问。

二、Windows 访问控制体系:SID、访问令牌、高危系统特权

认证通过后,Windows 依靠一套完整权限体系管控进程、文件、注册表访问权限,大量本地提权漏洞均基于该体系设计。

1. SID 安全标识符

Windows 全局唯一标识用户、组、计算机对象的字符串编码,格式:S-R-X-Y1-Y2-...-RID 字段说明:

  • S:标识该字符串为 SID;
  • R:修订版本,固定为 1;
  • X:颁发机构,5 代表 NT Authority;
  • Y1/Y2:域 / 本机唯一子颁发 ID;
  • RID:末尾编号,区分账户 / 组类型。 高频关键 RID:
  • 500:本地内置超级管理员 Administrator;
  • 501:本地来宾 Guest 账户;
  • 512:域管理员组 Domain Admins;
  • 513:域普通用户组 Domain Users;
  • 515:域计算机组 Domain Computers。

2. Access Token 访问令牌(进程数字身份证)

用户登录系统后,lsass.exe 进程生成专属访问令牌,该用户所有子进程自动继承令牌副本,系统依靠令牌判定进程权限。

(1)令牌四大核心组成

用户 SID、用户所属全部组 SID 列表、账户拥有系统特权集合、进程完整性级别(中 / 高完整性)。

(2)令牌分类

  1. 主令牌 Primary Token:进程原生绑定的身份凭证;
  2. 模拟令牌 Impersonation Token:线程临时借用其他账户身份执行操作。

(3)模拟权限分级(由低到高)

SecurityAnonymous(匿名) < SecurityIdentification(识别) < SecurityImpersonation(模拟) < SecurityDelegation(委派) 安全风险:模拟、委派级别下,线程可窃取其他登录用户身份,本地 / 跨网络以他人权限执行操作。

3. Privileges 系统高危特权(突破 ACL 权限限制)

特权是超越文件、注册表 ACL 访问控制的系统操作权限,持有特定高危特权可直接本地提权、导出凭据。

  1. SeImpersonatePrivilege / SeAssignPrimaryTokenPrivilege 持有主体:LOCAL SERVICE、NETWORK SERVICE 服务账号; 攻击利用:土豆系列提权(Juicy Potato、PrintNotify Potato)核心依赖特权,诱导 SYSTEM 服务向攻击者伪造端口认证,窃取 SYSTEM 高权限令牌完成提权。
  2. SeDebugPrivilege(默认分配给管理员组) 权限作用:无视所有进程 ACL 限制,附加、读写任意进程内存; 实战用途:直接读取 lsass.exe 内存,导出全量账号 NT Hash 凭据。
  3. SeBackupPrivilege / SeRestorePrivilege(Backup Operators 组持有) 权限作用:完全绕过文件读写 ACL 限制; 实战用途:直接读取 SAM、SYSTEM 注册表配置单元、域控 NTDS.dit 数据库,获取全域凭据,或替换系统服务程序实现持久化。

三、Windows 三层原生防御体系:UAC + Windows Defender + AMSI

Windows 内置三层递进防御,从权限隔离、文件查杀、内存脚本检测三层拦截恶意行为,无文件攻击、恶意程序执行均会受其限制,对应的免杀、UAC 绕过也是渗透测试必备技术。

1. UAC 用户账户控制(第一层:权限隔离防御)

核心运行机制

管理员账户登录后,系统分配两张访问令牌:过滤后的中完整性令牌、完整权限高完整性令牌。 系统默认所有程序以中完整性运行;修改系统目录文件、安装驱动、修改注册表等敏感操作,会弹出 UAC 窗口,手动确认后切换至高完整性权限。

UAC Bypass 绕过原理

  1. System32 目录内置白名单程序,配置autoElevate=true,运行时无需弹窗,自动提升至高完整性;
  2. 攻击者劫持程序读取的注册表路径:HKCU\Software\Classes\ms-settings\shell\open\command
  3. 修改键值替换执行命令,白名单程序启动时自动加载恶意载荷,静默完成提权。

2. Windows Defender(第二层:文件与行为查杀)

Windows 自带终端安全引擎,核心进程MsMpEng.exe,内核驱动WdFilter.sys提供底层监控。 三大检测维度:

  1. 静态检测:比对文件哈希、特征字节码、YARA 规则,扫描磁盘静态恶意文件;
  2. 动态行为检测:内核钩子监控进程高危 API 调用、异常行为;
  3. 云端分析:上传可疑文件特征至微软云端深度判定,同步更新本地规则库。

3. AMSI 反恶意软件扫描接口(第三层:内存无文件脚本检测)

传统杀毒仅扫描磁盘文件,无法拦截内存解密、直接运行的 PowerShell/VBS 无文件攻击,AMSI 专门填补该短板。

完整工作流程

  1. PowerShell 等脚本引擎启动,加载amsi.dll动态库;
  2. 混淆加密脚本在内存完成解密,还原明文代码;
  3. 脚本引擎调用 AMSI 接口,将明文代码缓冲区通过 RPC 跨进程传输至 Defender;
  4. Defender 扫描判定恶意后,返回拦截标识AMSI_RESULT_DETECTED,脚本引擎直接终止代码执行并报错。

攻防对应

渗透中常见 AMSI 绕过思路:内存修补 amsi.dll 关键函数、进程隔离规避 amsi.dll 加载、脚本混淆破坏 AMSI 识别特征。

四、整体知识体系与实战攻防对应总结

  1. 认证层 NTLM:协议三段挑战响应、NTLMv1/v2 版本差异,衍生哈希传递、LLMNR 投毒、NTLM 中继;协议底层无盐 NT Hash 是所有攻击根源; Kerberos:五步票据认证,衍生 AS-REP Roasting、Kerberoast、黄金票据等域票据攻击,依托 SPN、krbtgt 账户实现权限劫持。
  2. 权限访问层 SID 用于区分高权限账户 / 组;访问令牌模拟机制衍生土豆系列本地提权;SeDebug/SeBackup 等高风险特权可直接导出全量凭据,是内网横向移动关键入口。
  3. 终端防御层 UAC 限制普通管理员权限,衍生各类无弹窗 UAC 绕过;Defender 拦截落地式恶意 EXE;AMSI 专门对抗内存 PowerShell 无文件载荷,免杀需要同时绕过三层防御链路。

五、NTLM 与 Kerberos 选型加固建议

  1. 域环境优先使用 Kerberos,限制 NTLM 降级,组策略禁用 NTLMv1、LM 协议;
  2. 强制开启 SMB 签名、LDAP 签名,从底层阻断 NTLM 中继攻击;
  3. 严格密码策略,加长密码复杂度,降低 NetNTLM 离线爆破成功率;
  4. 监控网络 NTLM 流量、LLMNR 异常解析行为,及时发现投毒、中继攻击。

结尾

Windows 认证与权限架构是内网安全的底层地基,所有攻击、防御手段都围绕这套原生机制展开。NTLM 作为老旧兼容协议,至今仍是内网渗透突破口,只有吃透三段挑战响应、两套哈希、协议原生缺陷,才能完整理解哈希传递、中继攻击的底层逻辑;结合 Kerberos 票据体系、Windows 权限与终端防御,形成完整攻防知识闭环。理解底层原理,才能不局限于工具一键执行,看懂载荷作用逻辑,同时针对性制定终端、域环境加固方案

#内网渗透 #Windows 安全 #NTLM 协议 #Kerberos #哈希传递 #UAC 绕过 #AMSI #域安全 #渗透测试



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码

站点统计

📄 文章 32
📁 分类 4
🏷️ 标签 0
📝 总字数 337k
⏱️ 运行 483天
头像
关于本站
在代码和动漫的夹缝里收集细碎美好
欢迎同好交流、素材互换
站点持续装修优化中✨