导语:内网渗透最怕什么?不是工具不够,是没有一套能真实模拟双域场景的练手环境。今天推荐一个完全本地运行的双域AD靶场——snowcorp-lab,五台虚拟机、一条森林信任链、两个隔离网段,涵盖了真实渗透中会遇到的大部分攻击路径。
一、靶场简介
snowcorp-lab 是 GitHub 开源项目,由安全研究员 Garvit Verma 构建,旨在帮助红队选手在本地环境中复刻真实 AD 攻击链路。
核心特点:
- 完全本地运行,无需云服务、无需订阅
- 双 Active Directory 域:lab.local 和 corp.local,通过森林信任连接
- 五台虚拟机,覆盖两种网络隔离环境
- 难度定位:Hard,适合有基础想进阶的红队选手
网络架构:
┌─────────────────────────────────────────┐
│ 192.168.136.0/24(外层网络) │
│ │
│ [Attacker Kali] 192.168.136.30 │
│ ↕ │
│ [DC01] 192.168.136.10 (lab.local) │
│ ↕ 森林信任 │
│ [WS01] 192.168.136.11 (双网卡 pivot) │
└────────────┬──────────────────────────────┘
│ Ligolo-ng 隧道
┌────────────▼──────────────────────────────┐
│ 10.10.10.0/24(内层网络) │
│ │
│ [DC02] 10.10.10.20 (corp.local) │
│ [WS02] 10.10.10.21 │
│ [UBU01] 10.10.10.31 (Linux服务器) │
└─────────────────────────────────────────┘
WS01 是唯一横跨两个网络的 pivot 主机,整个靶场的攻击路径就是:拿下 Kali → 打穿 lab.local → 跨网段打 corp.local。
二、五台机器角色一览
| 主机 | 系统 | IP | 角色 |
|---|---|---|---|
| DC01 | Windows Server 2022 | 192.168.136.10 | lab.local 域控 |
| WS01 | Windows 11 | 192.168.136.11 / 10.10.10.11 | 双网卡 pivot 节点 |
| DC02 | Windows Server 2022 | 10.10.10.20 | corp.local 域控 |
| WS02 | Windows 11 | 10.10.10.21 | corp.local 工作站 |
| UBU01 | Ubuntu 22.04 | 10.10.10.31 | Linux 服务器 |
三个 Flag:
- DC01:
C:UsersAdministratorDesktopflag.txt - DC02:
C:UsersAdministratorDesktopflag.txt - UBU01:
/root/flag.txt
三、硬件要求
| 项目 | 最低配置 | 推荐配置 |
|---|---|---|
| 内存 | 16 GB | 24 GB+ |
| 磁盘 | 60 GB 空闲 | 80 GB 空闲 |
| CPU | 4 核 + VT-x/AMD-V | 6 核+ |
五台 VM 同时运行,Windows 系统本身就要占用 8-12 GB 内存。16 GB 勉强能跑,但基本没有余量——建议 24 GB+。
CPU 虚拟化:BIOS 中必须开启 Intel VT-x / AMD-V / SVM Mode,否则虚拟机无法启动。
四、安装部署(5 步搞定)
第一步:克隆项目
git clone https://github.com/garvitv14/snowcorp-lab
cd snowcorp-lab
第二步:一键安装依赖
make install
这个命令会自动安装 VirtualBox、Vagrant、Ansible 以及所需的 collections。整个过程不需要手动配置。
第三步:检查环境
make check
验证 VirtualBox、Vagrant、Ansible 是否就绪。
第四步:启动所有虚拟机
make up
首次运行会下载基础镜像(约 8 GB),然后启动所有五台机器并应用网络配置。预计耗时 20-40 分钟。
第五步:执行域环境配置
make orchestrate
这一步运行 Ansible 剧本,完成域控制器Promotion、工作站加域、森林信任建立。必须执行,即使 make up 报告成功也要跑一次,因为 WinRM/AD 的首次初始化可能因为临时故障被跳过。
正确跑完的输出长这样:
PLAY RECAP
dc01 : ok=8 changed=6 unreachable=0 failed=0
dc02 : ok=6 changed=5 unreachable=0 failed=0
ws01 : ok=7 changed=5 unreachable=0 failed=0
ws02 : ok=5 changed=4 unreachable=0 failed=0
ubu01 : ok=12 changed=10 unreachable=0 failed=0
failed=0 全部为 0,说明靶场就绪。
五、接入攻击 Kali 网络
靶场 VM 运行在隔离的内部网络,你的 Kali 需要手动加入 192.168.136.0/24,并配置 IP 为 192.168.136.30。
VirtualBox 中配置 Kali:
- 打开 Kali VM → 设置 → 网络 → 适配器 2
- 启用 → 连接到:内部网络 → 名称:
snowcorp_lab(区分大小写) - 保留适配器 1(NAT)用于上外网
Kali 内配置 IP:
# 查看新网卡(通常无 IP,一般是 eth1 或 ens4)
ip a
# 临时设置 IP
sudo ip addr add 192.168.136.30/24 dev eth1
sudo ip link set eth1 up
# 永久生效
sudo nmcli connection add type ethernet ifname eth1 con-name lab
ipv4.method manual ipv4.addresses 192.168.136.30/24
connection.autoconnect yes
sudo nmcli connection up lab
# 测试连通性
ping 192.168.136.10 # DC01
ping 192.168.136.11 # WS01
六、常用运维命令
| 命令 | 作用 |
|---|---|
make up | 启动并配置所有 VM |
make orchestrate | 运行 AD 域配置剧本(安全,可重复执行) |
make down | 关机,保留状态 |
make destroy | 删除所有 VM |
make reset | 完全重建 |
make status | 查看各 VM 状态 |
单独启动某台机器(必须按 DC → WS 顺序):
vagrant up dc01 # 先 DC01
vagrant up dc02 # 再 DC02
vagrant up ws01 # DC01 就绪后才能加入域
vagrant up ws02 # DC02 就绪后才能加入域
vagrant up ubu01
七、推荐工具清单
在 Kali 上提前安装好这些(标准 Kali 镜像已自带大部分):
- Responder — LLMNR/NBT-NS 投毒,拦截 Net-NTLMv2 哈希
- BloodHound CE — AD 攻击路径图谱,梳理域内关系
- Certipy — ADCS 枚举与利用,拿下证书权限
- Ligolo-ng — 建立隧道打进内层 corp 网络
- Impacket — Kerberos、SMB、DCSync 瑞士军刀
- NetExec — 横向移动与密码喷洒
- Rubeus — Kerberos 票据操纵
八、适用人群与学习路径建议
适合你吗?
- 有 CTF/Web 基础,想入门内网渗透 ✓
- 准备考 CRTP、CPTS 等认证,需要实战环境练手 ✓
- 想练习跨域横移、ACL 滥用、域信任攻击 ✓
不适合纯新手——你需要知道什么是域控、工作站、Kerberos 认证流程,否则直接上会懵。
学习路径建议:
- 先用 BloodHound CE 把两个域的关系图画出来,理解 forest trust 怎么连
- 从 Responder 投毒入手,拿到第一组哈希
- 用 Impacket / NetExec 做横向,先拿 WS01
- 通过 WS01 的双网卡,用 Ligolo-ng 搭隧道进 corp 网络
- 在 corp.local 继续收集票据,最终拿下 DC02
出处:Twitter @7h3h4ckv157,https://x.com/7h3h4ckv157/status/2081592872772731298 项目地址:https://github.com/garvitv14/snowcorp-lab














暂无评论内容