先知安全沙龙(北京站) - 滥用 ADWS 协议枚举 Active Directory
字数 1626
更新时间 2025-08-23 02:29:34
滥用 ADWS 协议枚举 Active Directory 教学文档
1. ADWS 协议概述
ADWS (Active Directory Web Services) 是微软从 Windows Server 2008 R2 开始引入的一种基于 SOAP 的 Web 服务协议,用于远程管理 Active Directory。它运行在 TCP 9389 端口上,使用 HTTP/HTTPS 传输。
主要特点:
- 基于 SOAP (Simple Object Access Protocol)
- 使用 WSDL (Web Services Description Language) 描述服务接口
- 默认在域控制器上启用
- 提供对 Active Directory 的编程访问接口
2. ADWS 协议的安全问题
ADWS 协议在设计上存在以下安全问题,可被攻击者利用进行信息枚举:
- 无需认证的信息泄露:部分操作可以在未认证状态下执行
- 过度暴露的接口:提供了过多关于 AD 结构的详细信息
- 缺乏足够的访问控制:默认配置下权限控制不足
3. 利用 ADWS 枚举 Active Directory
3.1 信息收集基础
通过 ADWS 可以收集以下关键信息:
- 域名称和功能级别
- 域控制器信息
- 用户账户和组信息
- 计算机对象
- 组策略信息
- 信任关系
3.2 利用工具和技术
3.2.1 使用 PowerShell
# 发现可用的ADWS端点
$adwsEndpoint = Get-ADWebServiceEndpoint -Discover
# 建立连接
$connection = New-ADWSConnection -Endpoint $adwsEndpoint
# 枚举域信息
Get-ADDomain -Connection $connection
# 枚举用户
Get-ADUser -Filter * -Connection $connection
# 枚举计算机
Get-ADComputer -Filter * -Connection $connection
3.2.2 使用 Python 脚本
import requests
from zeep import Client
# 发现ADWS服务
def discover_adws(domain_controller):
url = f"http://{domain_controller}:9389/ActiveDirectoryWebServices/Windows/Discovery?disco"
response = requests.get(url)
return response.text # 包含WSDL信息
# 创建SOAP客户端
def create_adws_client(domain_controller):
wsdl_url = f"http://{domain_controller}:9389/ActiveDirectoryWebServices/Windows/Directory/WSMan?wsdl"
client = Client(wsdl_url)
return client
# 枚举域信息
def enumerate_domain(client):
return client.service.GetDomainInfo()
3.3 具体枚举技术
3.3.1 域信息枚举
- 获取域名称、SID、功能级别
- 获取域控制器列表
- 获取域密码策略
3.3.2 用户账户枚举
- 获取所有用户账户列表
- 获取用户属性(包括敏感属性如lastLogonTimestamp)
- 识别特权账户(Domain Admins, Enterprise Admins等)
3.3.3 计算机对象枚举
- 获取域内所有计算机列表
- 识别域控制器
- 获取操作系统信息
3.3.4 组策略枚举
- 获取GPO列表
- 解析GPO设置
- 识别安全策略配置
4. 防御措施
4.1 检测ADWS滥用
-
监控网络流量:
- 异常数量的ADWS请求(特别是来自非管理员的请求)
- 来自非管理主机的ADWS连接
-
日志分析:
- 检查安全日志中的ADWS访问记录
- 监控失败的认证尝试
4.2 防护措施
-
网络层防护:
- 限制对TCP 9389端口的访问
- 仅允许管理网络访问ADWS
-
服务配置:
- 禁用不必要的ADWS功能
- 配置更严格的访问控制
-
认证强化:
- 强制使用Kerberos认证
- 实施多因素认证
-
替代方案:
- 考虑使用更安全的远程管理协议
- 对敏感操作实施审批流程
5. 高级利用技术
5.1 结合其他协议的攻击链
ADWS可以与其他协议结合形成更复杂的攻击:
- 结合LDAP进行更深入的信息收集
- 结合SMB进行横向移动
- 结合Kerberos进行权限提升
5.2 自动化攻击框架集成
可以将ADWS枚举集成到自动化攻击框架中:
- 作为Cobalt Strike的初始侦察模块
- 作为BloodHound的数据收集源
- 作为Empire/PowerSploit的攻击模块
6. 实际案例分析
案例1:通过ADWS发现特权账户
攻击者通过未认证的ADWS请求获取了所有用户列表,筛选出具有高特权的服务账户,然后针对这些账户进行密码喷洒攻击。
案例2:利用ADWS进行横向移动
攻击者通过已攻陷的工作站,使用ADWS协议枚举域内计算机,识别出未打补丁的系统,然后利用已知漏洞进行横向移动。
7. 总结
ADWS协议作为Active Directory的管理接口,在提供便利的同时也带来了安全风险。安全团队应当:
- 充分了解ADWS协议的工作原理和潜在风险
- 实施适当的监控和防护措施
- 定期审计ADWS的使用情况
- 教育管理员和安全人员关于ADWS滥用的风险
通过合理配置和监控,可以在保持管理功能的同时降低ADWS协议被滥用的风险。
相似文章
相似文章