从零构建三层网络攻防实验环境
写在前面
在真实企业环境中,攻击者往往不可能直接进入核心内网,而是需要经过多个网络分层,逐步突破隔离机制,最终实现横向移动与权限提升。
为了更深入理解这一过程,我搭建了一个完整的三层网络攻防实验环境,模拟如下攻击路径:
外网攻击者 → 跳板机突破 → 内网渗透 → 获取Flag
本文将完整记录该实验环境的设计思路、网络隔离实现方式以及漏洞利用过程。
注意
📌 完整项目已整理到 GitHub,包含:
- 虚拟机镜像
- 网络配置文档
- 漏洞源码
- 攻击链流程说明
项目地址: 👉 https://github.com/see286/Three-Tier-Network-Attack-Lab
欢迎大家访问、交流和改进!
一、整体架构设计思路
本实验采用三虚拟机结构:
- 攻击机(Kali)—— 外网模拟攻击者
- 代理机(Kali)—— 跳板机 / NAT网关
- 内网机(Kali)—— 目标靶机
网络结构如下:
Attacker (192.168.36.x)
|
|
Proxy (192.168.2.10)
|
|
Internal (192.168.3.10)
设计目标:
这其实就是一个简化版企业 DMZ + 内网结构。
二、网络隔离与路由设计
本实验的核心难点不在漏洞,而在网络隔离。
(1) 静态 IP 规划
- 代理机:192.168.2.10 + 192.168.3.2
- 内网机:192.168.3.10
- 攻击机:NAT 网络(192.168.36.x)
使用 nmcli 进行静态IP持久化配置。
(2) IP 转发开启
Linux 默认不能转发数据包,因此需要在代理机开启:
sudo sysctl -w net.ipv4.ip_forward=1
并写入 /etc/sysctl.conf 实现持久化。
如果不启用 IP 转发,跨网段通信无法实现。
(3) NAT 设计(SNAT)
为了让内网通过代理访问外网,需要在代理机开启 NAT:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这里使用的是 SNAT。
核心作用:
- 内网源地址替换为代理机外网IP
- 内网可访问互联网
- 外部不能直接访问内网
(4) iptables 防火墙隔离
这是整个实验的关键。
我采用默认拒绝策略:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
然后精细化放行:
- 允许攻击机访问代理机
- 允许代理机访问内网
- 禁止攻击机直接访问内网
关键阻断规则:
sudo iptables -A FORWARD -s 192.168.36.0/24 -d 192.168.3.0/24 -j DROP
只有加入这条规则后,整个三层隔离模型才真正稳定。
三、实验中踩过的坑
最开始我发现攻击机竟然可以 ping 通内网。
排查了很久。
后来发现是 VMware 虚拟网络的优化转发机制导致流量绕过了预期路径。
解决办法是:
在攻击机上强制添加路由,让所有目标流量必须经过代理机:
sudo ip route add 192.168.2.0/24 via 192.168.36.133
sudo ip route add 192.168.3.0/24 via 192.168.36.133
这一点如果忽略,整个隔离模型会失效。
这是本次实验最花时间的地方。
四、漏洞设计
为了模拟真实渗透路径,我在两个节点分别设计漏洞。
(1) 代理机漏洞
弱口令 SSH
用户名:student 密码:students
攻击者可通过暴力破解获取跳板权限。
Redis 未授权访问
Redis 默认监听 0.0.0.0 且未设置密码。
攻击者可直接连接:
redis-cli -h 192.168.2.10
可读取或写入敏感数据。
(2) 内网机漏洞 —— Flask SSTI
这是本实验的核心漏洞。
构造了一个存在模板注入的 Flask 服务:
tmpl = f"<h1>{name} is sb</h1>"
return render_template_string(tmpl)
用户输入直接拼接到模板中,导致 SSTI。
五、攻击链完整复现
完整攻击路径如下:
SSTI payload 示例(URL 编码前):
{{url_for.__globals__.__builtins__['eval']("__import__('os').popen('cat /home/kali/vuln_flask/flag.txt').read()")}}
最终成功获取内网 flag。
六、本实验的技术收获
通过本次实验,我深入理解了:
- Linux 路由机制
- NAT 工作原理
- iptables FORWARD 链逻辑
- 网络分层隔离模型
- Redis 配置风险
- Flask SSTI 利用链
- 从 Web 漏洞到系统级 RCE 的过程
相比单纯做 CTF 题目,这种完整环境搭建更接近真实企业攻防。
结语
这次实验让我意识到:
真正困难的不是漏洞利用,而是环境设计。
网络隔离模型如果设计不好,后续攻击链就失去了现实意义。
希望这篇文章对正在学习内网渗透与网络隔离的同学有所帮助。
网硕互联帮助中心




评论前必须登录!
注册