LDAP Reconnaissance
侦察(reconnaissance)是任何成功攻击的重要组成部分。主要有两种形式:对手渗入组织之前进行的初始或外部侦察,以及在内部进行的侦察,在其中他们会发现有关组织环境的更多信息与上下文。
LDAP 侦察(reconnaissance)是一种内部侦察技术,攻击者会使用它来发现 Active Directory 中的用户、组和计算机。他们会使用 LDAP 查询来加深对环境的了解,这有助于他们找到目标并规划攻击的下一阶段。由于该技术由已经渗入组织的对手使用,因此它属于内部侦察(而非外部侦察)技术。
威胁摘要
目标:Active Directory
工具:BloodHound、PowerSploit、SharpHound、Spray
ATT&CK® 战术:Discovery
ATT&CK 技术:T1087.002
难度
检测:困难
缓解:困难
响应:中等
使用 LDAP 进行侦察
步骤 1:获取立足点
攻击者会使用多种技术在组织的 IT 环境中获取立足点,包括钓鱼、watering hole(受害者访问的良性网站被入侵)以及密码喷洒(password spraying)攻击。下面说明:攻击者获取到一份可能的用户名列表后,如何使用 Spray 来对组织的虚拟专用网络(VPN)服务器执行密码喷洒攻击。Spray 是一个用于在多个平台上执行密码喷洒攻击的 bash 脚本:
[attacker@machine ~]$ spray.sh -cisco vpn.org.com usernames.txt passwords.txt 1 35
Valid Credentials joed Summer2020
步骤 2:使用 LDAP 执行侦察
攻击者使用被泄露的凭据对 VPN 进行身份验证并获得网络访问权限,然后使用相同的凭据查询 Active Directory。 他们可以使用 ActiveDirectory PowerShell 模块枚举 Active Directory,或使用诸如 BloodHound 和 PowerSploit 之类的工具自动化发现过程。在此示例中,攻击者使用 PowerShell 在用户的说明(description)属性中查找可能的密码:
PS> Import-Module ActiveDirectory
PS> Get-ADObject -LDAPFilter "(&(objectClass=user)(description=*pass*))" -property * | Select-Object SAMAccountName, Description, DistinguishedName
SAMAccountName DescriptionDistinguishedName
-------------- ----------------------------
AlicePassword: P@ssw0rd123!CN=Alice,OU=Users,DC=domain,DC=com
PS>
步骤 3:使用信息进一步实现目标
攻击者使用其找到的凭据,借助诸如 BloodHound 和 SharpHound 之类的工具进行进一步的内部侦察,这些工具有助于理清复杂的权限关系网。利用这些信息,攻击者可以绘制通往目标的路径,例如域支配(domain dominance)。
下图展示了一个示例。假设攻击者获得了用户账号 Alice 的凭据。该账号对用户 Eve 具有 WriteDACL 和 WriteOwner 权限,这意味着 Alice 可以为自己授予对 Eve 账号的访问权限。Eve 有权重置账号 Bob 的密码,而 Bob 拥有权限(通过 AdminSDHolder 传播获得)来修改 Domain Admins 组。因此,找到 Alice 的密码对攻击者来说非常有价值!
结果
在使用 SharpHound.exe -C All 收集数据后,攻击者可以将数据集加载到 BloodHound 中,以探索通往域支配(domain dominance)的路径。
检测、缓解和响应
检测
难度:困难
LDAP 协议在 Active Directory 中被频繁使用,因此很难将恶意查询与合法查询区分开来。此外,Active Directory 不提供记录所接收到的精确查询的机制;但是,可以通过事件 4662 (位于子类别 Audit Directory Service Access)来实现对访问特定属性的某种程度的分析和监控。
对域控制器针对特定 LDAP 查询所接收的网络流量进行监控,有助于发现对手活动。下表展示了少量可能在正常运作中应较少出现的查询类型示例,但这些查询能够为对手活动提供强有力的信号:
Query | Information Collected |
|---|---|
|
(&(ObjectClass=user)(servicePrincipalName=*)) |
All user objects that have a ServicePrincipalName configured |
|
(userAccountControl:1.2.840.113556.1.4.803:=65536) |
Objects that have Password Never Expires set |
|
(userAccountControl:1.2.840.113556.1.4.803:=4194304) |
Objects that do not require Kerberos pre-authentication |
|
(sAMAccountType=805306369) |
All computer objects |
|
(sAMAccountType=805306368) |
All user objects |
|
(userAccountControl:1.2.840.113556.1.4.803:=8192) |
All domain controller objects |
|
(primaryGroupID=512) |
All Domain Admins using PrimaryGroupID |
缓解
难度:困难
由于 LDAP 在正常的 Active Directory 运作中扮演着至关重要的角色,组织无法简单地阻止其使用。相反,应重点关注从一开始就阻止渗透的缓解措施:用户意识与培训、终端被入侵检测与响应、钓鱼检测与防护、邮件安全、多因素认证(MFA)等。
响应
难度:中等
如果在环境中检测到 LDAP 勘察,请启动事件响应流程并通知事件响应团队。
如果确认存在对手:
- 重置执行侦察(reconnaissance)的用户账户的密码,并禁用该用户账户。
- 将源计算机隔离,以开展数字取证调查(forensic investigation)以及清除(eradication)和恢复(recovery)活动。
分享到
滥用 Entra ID 应用权限——工作原理与防御策略
AdminSDHolder 修改——工作原理与防御策略
AS-REP Roasting 攻击:工作原理与防御策略
Hafnium 攻击——工作原理与防御策略
DCSync 攻击解析:对 Active Directory 安全的威胁
理解 Pass-the-Hash(PtH)攻击
什么是 Golden Ticket 攻击?工作原理、检测与防护
gMSA 利用攻击与 Golden gMSA 攻击详解
DCShadow 攻击——工作原理、真实案例与防御策略
ChatGPT 提示注入(prompt injection):了解风险、示例与防范
NTDS.dit 提取攻击详解
Kerberoasting 攻击——工作原理与防御策略
Pass-the-Ticket(传票)攻击解析:风险、示例与防御策略
理解密码喷洒(password spraying)攻击
明文密码提取(Plaintext Password Extraction)解析:风险、示例与防范
Zerologon 漏洞详解:风险、利用方式与缓解措施
勒索软件攻击完整指南
Skeleton Key 攻击:工作原理与检测方法
横向移动(Lateral Movement):它是什么、如何运作及防护措施
中间人(MITM)攻击:它们是什么,以及如何防范
为什么 PowerShell 对攻击者来说如此受欢迎?
什么是凭证填充(Credential Stuffing)?
使用 PowerUpSQL 破坏 SQL Server
什么是 Mousejacking(鼠标劫持)攻击,以及如何防御
使用 Security Support Provider(SSP)窃取凭据
彩虹表攻击:工作原理与防御方法
深入了解密码攻击及其防止方法
Silver Ticket 攻击
通过 Pass-the-Cookie 攻击绕过 MFA
Golden SAML 攻击终极指南