garvitv14/snowcorp-lab
GitHub: garvitv14/snowcorp-lab
一个通过 Vagrant 与 Ansible 自动化部署的双域 Active Directory 渗透测试靶场,模拟真实企业网络环境供安全人员练习完整的域级别攻击链。
Stars: 0 | Forks: 0
```
_____ _ ______ _ ____________ ____ ____
/ ___// | / / __ \ | / / ____/ __ \/ __ \/ __ \
\__ \/ |/ / / / / | /| / / / / / / / /_/ / /_/ /
___/ / /| / /_/ /| |/ |/ / /___/ /_/ / _, _/ ____/
/____/_/ |_/\____/ |__/|__/\____/\____/_/ |_/_/
L A B
```
**无云服务。无订阅。完全在您自己的机器上运行。**
## 概述
SnowCorp 是一家虚构的公司,拥有两个 Active Directory 域 —— `lab.local` 和 `corp.local` —— 它们通过森林信任连接。该环境跨越两个相互隔离的网络,包含五台机器,其中一台双宿主 Windows 工作站是连接两个网络的唯一桥梁。
该实验室包含一条真实的攻击链:从获取初始网络访问权限开始,直到全面攻陷两个森林的域,并且在 corp 网络侧还有一台 Linux 服务器。
**难度:** 困难
## 网络拓扑
```
┌─────────────────────────────────────────────────────┐
│ VMnet8 192.168.136.0/24 │
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Attacker │ │ DC01 │ │
│ │192.168.136.30│ │192.168.136.10│ │
│ │ (Kali) │ │ lab.local │ │
│ └──────────────┘ └──────┬───────┘ │
│ │ forest trust │
│ ┌────────────────────────┐ │ │
│ │ WS01 │ │ │
│ │ 192.168.136.11 (lab) │◄───┘ │
│ │ 10.10.10.11 (corp) │ │
│ │ ★ Dual-Homed Pivot │ │
└───┴──────────┬─────────────┴───────────────────────┘
│ Ligolo-ng tunnel
┌──────────────▼─────────────────────────────────────┐
│ Corp LAN 10.10.10.0/24 │
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ DC02 │ │ WS02 │ │
│ │ 10.10.10.20 │ │ 10.10.10.21 │ │
│ │ corp.local │ │ corp.local │ │
│ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ │
│ │ UBU01 │ │
│ │ 10.10.10.31 │ │
│ │ Ubuntu │ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────┘
```
## 机器
| 主机 | 操作系统 | 域 | 角色 |
|------|----|--------|------|
| DC01 | Windows Server 2022 | lab.local | 域控制器 |
| WS01 | Windows 11 | lab.local | 双宿主工作站 —— 枢纽节点 |
| DC02 | Windows Server 2022 | corp.local | 域控制器 |
| WS02 | Windows 11 | corp.local | 工作站 |
| UBU01 | Ubuntu 22.04 | — | Linux 服务器 |
## Flag
整个环境中隐藏了三个 flag。每个被攻陷的目标各有一个。
| # | 主机 | 路径 |
|---|------|------|
| 1 | DC01 | `C:\Users\Administrator\Desktop\flag.txt` |
| 2 | DC02 | `C:\Users\Administrator\Desktop\flag.txt` |
| 3 | UBU01 | `/root/flag.txt` |
## 环境要求
| 工具 | 最低版本 | 下载地址 |
|------|-------------|----------|
| VirtualBox | 7.0 | [virtualbox.org](https://www.virtualbox.org/wiki/Downloads) |
| Vagrant | 2.3 | [vagrantup.com](https://developer.hashicorp.com/vagrant/downloads) |
| Ansible | 8.0 | `pip install ansible` |
- **内存 (RAM):** 最低 12 GB(推荐 16 GB)
- **磁盘:** ~60 GB 可用空间
- **操作系统:** 推荐 Linux 或 macOS 宿主机
```
ansible-galaxy collection install ansible.windows microsoft.ad community.windows
make check
```
## 快速开始
```
git clone https://github.com/garvitv14/snowcorp-lab
cd snowcorp-lab
make up
```
首次运行会下载基础 VM 镜像并执行完整的 Ansible 配置 —— 预计需要 **45-60 分钟**。
### Make 命令
| 命令 | 功能说明 |
|---------|--------------|
| `make up` | 启动并配置所有 VM |
| `make down` | 关闭所有 VM(保留状态) |
| `make destroy` | 删除所有 VM |
| `make reset` | 彻底清除并从头重建 |
| `make provision` | 重新运行 Ansible,无需重建 VM |
| `make status` | 显示每台 VM 的当前状态 |
| `make check` | 检查所需工具是否已安装 |
如有需要,可以单独启动特定机器:
```
vagrant up dc01 # lab.local DC first
vagrant up dc02 # corp.local DC second
vagrant up ws01 # pivot host
vagrant up ws02 # corp.local workstation
vagrant up ubu01 # Linux server
```
在 WS01 和 WS02 加入域之前,DC01 和 DC02 必须已完全配置完毕。
## 推荐工具
- [Kali Linux](https://www.kali.org/)
- [BloodHound CE](https://github.com/SpecterOps/BloodHound)
- [Ligolo-ng](https://github.com/nicocha30/ligolo-ng)
- [Certipy](https://github.com/ly4k/Certipy)
- [Impacket](https://github.com/fortra/impacket)
- [NetExec](https://github.com/Pennyw0rth/NetExec)
- [Rubeus](https://github.com/GhostPack/Rubeus)
## 解题指南(Walkthroughs)
成功拿下了所有三个 flag?还是在某一个上卡住了?这两种情况都值得记录下来。
提交一个包含您解题报告的 PR 到 `walkthroughs/your-username.md` —— 无需模板,按照您喜欢的方式编写即可。
## 作者
**Garvit Verma** —— Alvarez & Marsal 助理,位于印度马哈拉施特拉邦的渗透测试员。
CPTS · CRTP · DCAPT · Bug Bounty · CTF 选手
我构建这个实验室是为了端到端地练习 Active Directory 攻击链 —— 这些正是我在实际参与项目时所使用的技术。如果您尝试了这个实验室,我很希望能看到您的解题报告。
[](https://www.linkedin.com/in/garvit-verma-29298225a/)
## 免责声明
仅供教育用途。请勿暴露在公共网络中。
标签:Active Directory, Libemu, OPA, Plaso, XXE攻击, 模拟器, 系统提示词, 网络安全, 虚拟化环境, 隐私保护, 靶场