仿真靶场搭建:个人版PENTESTIT

2019-02-21 119905人围观 ,发现 8 个不明物体 工具

*本文原创作者:wnltc0,本文属 FreeBuf 原创奖励计划,未经许可禁止转载

前言

过年前,发现了一款名为 pentestit 的在线靶场,看着挺有意思,但 vpn 死活连不上,于是萌生出再本地搭建的念头。最初考虑用 eve-ng 搭建,但该环境是跑在我的机械硬盘上,机械盘跑 kali 怪卡的,后来想试试 openstack,但环境死活安不上,后来在网上看到还有用 gns3 和 pfsense 搭建的,gns3 搭建也可以,但启动感觉有点麻烦,最后我用 pfsense 根据自身需求搭建了一个本地版的 pentestit,并写成此文。

前期准备

拓扑图:

计划:

1. 把 1 号靶机发布到公网

2.2 号靶机能跟 1 号和 3 号靶机双向通信,但 1 号和 3 号不能通信

3.1、2 号不能和 LAN 区域通信,3 号靶机能和 LAN 中的 win03 靶机双向通信

4. 网络中心、win08 和 web 不能访问外网和 DMZ

5. 网络中心用域管理账户通过 3389 登入 web

6.Kali 通过 NAT 方式连接外网

7. 外网有台 vps

IP 规划:

WAN:10.20.10.0/24、100-110 为 pfsense 的外网地址

ADMIN:192.168.100.0/24

DMZ:

192.168.23.64/26 (DMZ01)

192.168.23.128/26 (DMZ02)

192.168.23.192/26 (DMZ03)

子网掩码:255.255.255.192

LAN:

172.16.23.0/25 (Server-LAN)

172.16.23.128/25 (Office-LAN)

子网掩码:255.255.255.128

vmware 网卡配置

1. 打开虚拟网络编辑器,添加一块仅主机网卡 (ADMIN),此网卡主要用于通过 web 管理 pfsense

2. 任意打开一台虚拟机的虚拟机设置,点击网络适配器 -> LAN 区段 -> 添加,分别添加 6 个 LAN 区段:DMZ01、DMZ02、DMZ03、Server-LAN、Office-LAN、Clients

安装 pfsense 防火墙

下载pfsense:https://www.pfsense.org/download/

新建虚拟机,配置如下

cpu:1

内存:>=512m

硬盘:20g

网络:nat、自定义 (ADMIN)、LAN 区段 (DMZ01)、LAN 区段 (DMZ02)、LAN 区段 (DMZ03)、LAN 区段 (Server-LAN)、LAN 区段 (Office-LAN)

(ps:注意,网卡顺序不要乱,试过不小心把 admin 跟 lan 掉了下位置,然后配置完管理地址后却无法在物理机的浏览器打开)

启动虚拟机

回车继续

回车继续

回车继续

回车继续

回车继续

回车继续,重启后完成安装

接下来配置 web 端地址

输入 2

继续输入 2,然后输入 ip 地址,网络号与前面自定义网卡 (ADMIN) 的网络号相同

输入地址后回车,输入 24,两次回车之后会提示是否在 lan 启用 dhcp,输入 n

下面输入 y

稍等片刻,管理地址配置完成

然后浏览器访问 web 管理界面

默认账户密码:admin/pfsense

一路 next,后面会提示更改管理员密码,改不改都行,不改的话上面那行红色字会一直存在

Reload

Finish

稍等片刻进入仪表盘

ps:这玩意可设置中文,system->general setup->language    

接下来进入配置阶段

配置接口

添加接口:

网络接口 ->接口管理    

点击添加,把其余 5 个接口添加进来,保存设置

配置 wan 口:

网络接口->wan,配置如下

IPv4 配置类型:静态 ipv4

IPv4 地址:10.20.10.254/24 (就是上面配置的 nat 的网段)

取消勾选阻止专用网络和回环地址和阻止未知网络

其余的默认,保存设置

配置 lan 口:

网络接口->lan,配置如下

描述:ADMIN

IPv4 配置类型:静态 ipv4

其余默认,保存设置

配置 OPT1(DMZ01)

网络接口->OPT1,配置如下

勾选启用接口

描述:DMZ01

IPv4 配置类型:静态 IPv4

IPv4 地址:192.168.23.126 /26

保存设置

配置 OPT2(DMZ02)

网络接口->OPT2,配置如下

勾选启用接口

描述:DMZ02

IPv4 配置类型:静态 IPv4

IPv4 地址:192.168.23.190 /26

保存设置

配置 OPT3(DMZ03)

网络接口->OPT3,配置如下

勾选启用接口

描述:DMZ03

IPv4 配置类型:静态 IPv4

IPv4 地址:192.168.23.254 /26

保存设置

配置 OPT4(Server-LAN)

网络接口->OPT4,配置如下

勾选启用接口

描述:Server_LAN

IPv4 配置类型:静态 IPv4

IPv4 地址:172.16.23.126 /25

保存设置

配置 OPT5(Office-LAN)

网络接口->OPT5,配置如下

勾选启用接口

描述:Office_LAN

IPv4 配置类型:静态 IPv4

IPv4 地址:172.16.23.254 /25

保存设置

配置完后点击应用更改

访问状态->网络接口,可查看接口信息

配置防火墙

允许 ping WAN 的地址,方便测试 (可选)

防火墙->规则策略->WAN,点击左边的添加按钮,将规则添加到列表顶部,配置如下

动作:通过

接口:wan

地址簇:IPv4

协议:icmp

icmp 子网类型:回应请求

源类型:网络

源地址:10.20.10.0/24

目标类型:wan address

禁止 ADMIN 网络访问其他网络 (管理网络不需要跟其他网络通信)

防火墙->规则策略->ADMIN,删除 ipv6 那条规则,点击左边的添加按钮,将规则添加到列表顶部,配置如下

动作:阻止

接口:ADMIN

地址簇:IPv4

协议:any

源地址:ADMIN net

目的地址:any

配置完成后点击应用更改

配置 DMZ 区的 DHCP 服务 (DMZ 区放的是 vulnhub 的靶机,为了方便 ip 配置)

系统服务->DHCP 服务->DMZ01,配置如下

勾选在接口 DMZ01 上启用 DHCP 服务

范围:从 192.168.23.65 到 192.168.23.125

网关:192.168.23.126

保存设置

DMZ02、03 同上,但范围和网关需要改下

DMZ 区配置

需求 1:将 1 号靶机发布到外网添加虚拟 ips

防火墙->虚拟 ips->添加,配置如下

保存设置->应用更改    

打开靶机,把网络适配器设为:lan 区段 (DMZ01),启动;通过状态->DHCP 租约 查看靶机 ip    

配置 nat 1:1,防火墙->地址转换->1:1->添加    

配置防火墙允许访问外网 1 号靶机,防火墙->规则策略->WAN->添加    

保存设置->应用更改    

需求 2:允许 2 号和 1、3 号靶机通信;禁止 1 号和 3 号靶机之间通信;禁止 1 号、2 号靶机与 LAN 通信;允许 3 号靶机与 Office-LAN 中的 win03 通信 DMZ01、02、03 的防火墙规则如下

LAN 区配置

需求 1:win08-dc 和 web 不能访问外网和 DMZ (win08、web、网络中心连 Server-LAN 接口)

Server_LAN 的防火墙配置如下

需求 2:win03 仅允许允许访问外网和 web 的 80 端口 (web 的 ip:172.16.23.12;win03 连 Office-LAN 接口)

Office-LAN 防火墙配置如下

需要访问外网还需配置 nat,防火墙->地址转换->出站;把出站 nat 模式设为手动,并添加一条映射    

攻击者网络配置

安装台新的 pfsense,做攻击者的网关,安装方法同上:

网卡:nat、lan 区段 (Clients),其余不变

把 web 管理地址设为 192.168.1.1/24

把 kali 的网卡设为 lan 区段 (Clients),手动修改 ip192.168.1.2

配置 nat:

(wan 地址可手动配置也可自动获取)

最后再开台 centos,网络设为 nat,模拟公网中的 vps。

踩过的小坑:

如果配置了 nat 却无法上网,检查下 dns 配置是否正确;

防火墙配置无误却无法正常通信,尝试重启客户端网络,还不行重启 pfsense

同一子网间通信,不走 pfsense,这也是我为啥建那么多 lan 区段的原因;通过区段模拟 vlan,对网段做子网划分,分配给不同的区段,实现跨网段通信,这样才能在 pfsense 上去做限制了,此处 pfsense 主要充当路由和防火墙角色

*本文原创作者:wnltc0,本文属 FreeBuf 原创奖励计划,未经许可禁止转载

发表评论

已有 8 条评论

取消
Loading...

特别推荐

推荐关注

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php