行业新闻

“百香果”内网安全沙盘2.0bate版使用指南-基础篇

“百香果”内网安全沙盘2.0bate版使用指南-基础篇

0x01 背景介绍

在学习网络安全技术尤其是内网安全的过程中,我们往往需要一个相对复杂的网络环境来进行实验才能够贴近实战场景,使用物理设备模拟的方式成本高、局限性大且使用十分不便。

如果能在本地电脑模拟出复杂的网络环境则可以大大提升学习的效率,为此斗哥基于VMware自带的网络虚拟化功能和ikuai软路由定制了”百香果“内网安全沙盘平台。
image

然而,由于包含虚拟机数量较多,许多使用沙盘的小伙伴们反馈了占用资源过多和稳定性不佳的问题,因此斗哥决定对沙盘进行全面升级,采用docker技术进行重构,极大的减少了资源占用并提高稳定性,经过长期的艰(ji)苦(xian)卓(tou)绝(fa)的研究,“百香果”内网安全沙盘2.0bate版终于成功上线。

image

我们将分基础篇、进阶篇和高级篇三篇文章介绍“百香果”内网安全沙盘的使用本篇为基础篇,主要介绍平台的基本使用。

0x02 功能概述

百香果2.0实际上是一台虚拟机,核心功能和1.0版本平台一样都是为了实现在本地模拟下图所示的网络环境,使用者可以在此基础上设计各类网络安全攻击场景来学习验证各类网络安全技术,尤其是内网安全相关的技术。

image
上图中一共有9台网络设备,包括三台路由器和六台防火墙,百香果2.0虚拟机使用docker技术模拟了这9台设备并按照图示拓扑完成了网络配置和访问控制规则设置。

图中共有8个区域可以接入,包括内网攻击区、互联网攻击区、总部DMZ区、总部运维管理区、总部办公区、总部服务器区、分支服务器区、分支办公区,开启平台后我们只要把VMware虚拟机接入相应区域对应的VMnet就相当于接入了拓扑的对应区域。

区域介绍:(这部分与百香果1.0版本一致,熟悉的小伙伴可略过)

  • 攻击源(模拟攻击者的网络接入环境)

  • 攻击区:这里模拟的是攻击者常见的网络接入方式,通过路由器NAT上网

  • 互联网攻击区:攻击者通常会购买具有固定公网IP的云主机作为C2服务器或执行其他攻击,本区域模拟云主机的接入方式(直接拥有公网IP)

  • 攻击目标(模拟一个企业内网,分为总部和分支机构两部分,两者各自有网络出口连接互联网,通过专线互联)

    • DMZ区:经典的DMZ区域,可以用于部署各类供外网访问的服务,如各类WEB应用,通常是风险较高的区域

    • 运维管理区:可用于部署企业内部各类管理服务器,如DNS、域控等,具有较高的权限

    • 总部服务器区:用于部署仅供企业内部访问的服务器,是重要性最高的区域

    • 总部办公区:接入日常办公的PC和智能终端等

    • 分支服务器区:分支机构的服务器区,防护措施较弱,包含供外网访问和仅供内网访问的服务器。

    • 分支办公区:接入日常办公的PC和智能终端等

区域间的访问控制规则

  • 攻击源:攻击区可以访问互联网攻击区和互联网区,互联网攻击区均只能访问互联网区

  • 攻击目标
    攻击目标六个区域之间配置了默认的访问控制规则如下:
    image
    上述默认访问控制规则已经可以满足多种攻击场景的需要,默认的访问控制规则可以通过配置防火墙设备自行修改,我们将在百香果2.0进阶篇中介绍

默认的端口映射

  • 总部DMZ区默认映射了10.10.13.100 的80端口和10.10.13.200的8000-9000端口到外网IP(66.28.5.2)上。

  • 分支服务器区默认映射了10.10.19.100的80端口和10.10.19.200的8000-9000端口到外网IP(66.28.7.2)上。

0x03 基本使用

3.1 启动与管理沙盘平台

接下来斗哥教大家如何使用本平台,首先大家需要安装VMware Workstation软件(相信搞安全的小伙伴们都有),本平台基于VMware14.0的版本制作,如果大家的版本低于14.0则需要进行升级

VMware安装完成后可以通过文末的链接下载本平台的虚拟机压缩包,解压后到任意文件夹后双击百香果沙盘(Docker版).vmx打开虚拟机文件,可以确认一下配置是否如下:

image

如果配置与上述不符可能是下载的文件有误(主要是网络适配器部分),建议重新下载。确认配置无误后即可点击开启此虚拟机,但是强烈建议大家在第一次开机之前先还原一下快照,可以避免很多奇怪的问题。

image
开机后如果弹出提示问是复制虚拟机还是移动虚拟机,务必选择我已移动该虚拟机,否则可能会出现问题。

image

开机成功后输入账号密码即可登录,用户名:root密码:goktech

image

**默认情况下只要平台虚拟机启动完成沙盘平台就会自动完成配置,无需其他操作即可使用。**由于平台虚拟机默认加载了很多配置,VMware的控制台在开机一小段时间后很容易卡死,比如卡在类似下图这样界面上且控制台无法输入命令,这种情况不会影响平台使用,不用理会

image

image

此时如果需要对平台虚拟机进行管理,可以采用通过远程SSH访问的方式:
首先在找到VMnet1对应的网络适配器,将地址配置为1.1.1.1, 掩码255.255.255.0, 网关留空(1.1.1.0/24的地址即可,但不可与拓扑上的管理地址冲突)。

image

之后就可以使用SSH连接平台虚拟机的地址1.1.1.100进行远程管理。

image

3.2 连接虚拟机

沙盘启动完成后,提供了8个可接入的区域,只需要把想要接入网络环境的虚拟机网卡桥接至相应的虚拟网络并配置对应网段的地址(也可使用DHCP自动获取地址),即可接入沙盘中。
各区域信息如下:

区域虚拟网络网络地址网关地址
攻击区VMnet2192.168.2.0/24192.168.2.1
互联网攻击区VMnet666.28.6.0/2466.28.6.1
DMZ区VMnet1310.10.13.0/2410.10.13.1
运维管理区VMnet1410.10.14.0/2410.10.14.1
总部办公区VMnet1510.10.15.0/2410.10.15.1
总部服务器区VMnet1610.10.16.0/2410.10.16.1
分支办公区VMnet1810.10.18.0/2410.10.18.1
分支服务器区VMnet1910.10.19.0/2410.10.19.1

举个栗子:
假设我们要将下面这台虚拟机接入攻击区,点击虚拟机设置,选择网络适配器,选择自定义:特定虚拟网络,然后选择VMnet2并确定即可。虚拟机启动后将网卡配置为192.168.2.0/24的地址或者通过DHCP获取地址,就可以访问沙盘的网络环境了。

image

特别说明:

  1. 百香果平台只提供了默认的网络环境,所有的攻击机和靶机需要用户自己准备虚拟机并将网卡桥接到对应的VMnet中。

  2. 由于VMware一台虚拟机只能创建10张网卡的限制,因此百香果2.0沙盘只有上述8个网络可以接入本地虚拟机(这一点与百香果1.0不同),其他网络暂时不能接入虚拟机。

  3. 除了每个网段的第一个地址(x.x.x.1)是网关以外,每个网段的最后一个地址(x.x.x.254)也是保留地址,不可用分配给接入的虚拟机,否则会导致平台异常。

  4. 在高级篇中我们会教大家如何使用沙盘自带的容器管理平台创建docker容器作为靶机或攻击机使用,可以有效节约资源,而且可以接入图中任意网络位置。

0x04 使用案例

了解了基本的使用方式之后我们可以尝试构建一个如下图所示的简单的攻防场景:

image
本场景是一个经典的攻防场景,攻击者自身使用的攻击电脑(WIN7)于攻击区的内网中,通过NAT访问互联网,在互联网攻击区部署了一台拥有互联网地址的云主机(kali linux),攻击目标是位于分支服务器区(内网)的一台WEB服务器,该WEB服务器映射了80端口开放在互联网上。
使用百香果2.0沙盘平台构建上述场景只需要准备好三台虚拟机,依次接入对应区域的虚拟网络并配置好网络地址即可完成。

特别说明:
以下三台虚拟机需要自行准备,能满足所描述的场景即可,并非必须是这三个系统。

网络与地址规划:

  • 攻击电脑(win7):接入VMnet2,网卡配置DHCP获取地址

  • 云主机(kali):接入VMnet6,网卡66.28.6.10/24 网关66.28.6.1

  • 靶机(win2003 部署了WEB服务,80端口):接入VMnet19,网卡配置10.10.19.100/24 网关10.10.19.1(因为靶场默认配置了端口映射规则,将10.10.19.100 的80端口映射到互联网出口地址66.28.5.2的80端口上

配置步骤:

  • 攻击电脑
    配置虚拟机网卡桥接至VMnet2

image
开启虚拟机后设置网卡自动获取IP

image

  • 云主机
    配置虚拟机网卡桥接至VMnet6

image
配置IP地址66.28.6.10/24

image
配置网关66.28.6.1

image

特别说明:
不同版本的kali配置静态IP和网关的方法不同,请自行调整,新版本的kali可能需要加sudo su获取最高权限。

  • 靶机
    配置虚拟机网卡桥接至VMnet19

image
配置网卡地址10.10.19.100/24 网关10.10.19.1

image

效果测试:

  • 攻击电脑
    地址获取情况:

image
访问云主机:

image
访问靶机WEB服务:

image

  • 云主机
    访问靶机WEB服务:

image

  • 靶机
    自身WEB服务:

image
访问云主机:

image
经过测试可以发现可以满足攻击场景要求,如果要构建更加复杂的攻击场景只要参考上述思路将虚拟机加入对应虚拟网络并配置地址即可,是不是非常方便呢。

0x05 常见问题

  • Q:如何确定平台是否正常启动?
    A:
    1、使用SSH链接1.1.1.100 查看虚拟机是否正常启动
    2、使用浏览器访问1.1.1.100:9000 查看是否能访问容器管理平台**(不兼容IE,使用谷歌浏览器或360浏览器极速模式等)**,用户名:admin密码:admin@admin

image

image
查看docker容器是否都处于运行状态(running状态),如果有处于stop状态的容器,勾选该容器并点击开始看能否启动容器。

image
还可以尝试使用浏览器访问拓扑中九台设备对应的管理地址的80端口**(不兼容IE,使用谷歌浏览器或360浏览器极速模式等)**,查看防火墙设备的状态,用户名:admin密码:goktech

image

image
防火墙的具体使用我们将在下一篇中进行详细说明。

  • Q:启动时出现了“此虚拟机的处理器所支持的功能不同于保持虚拟机状态的虚拟机的处理器所支持的功能”如何处理?
    A:平台内置了原始快照,进行快照还原后即可正常启动,如果把平台玩崩了也可照此。
    错误提示:

image

  • Q:虚拟机选择桥接的时候选不到某些网络怎么办?
    A: 默认情况VMnet1-VMnet19都是可以选的,不需要做任何配置,如果发现某些网络选不了一般都是因为是被删除了,此时可以点击编辑->虚拟网络编辑器进行网络配置,并点击添加网络。

image

image
选择对应的网络点击确定。

image
生成网络后将VMnet信息设置为仅主机模式,并将框出的两个复选框的勾去掉,点击确定即可。

image

特别说明:默认情况下打开VMware虚拟网络编辑器只会看到VMnet0、VMnet1、VMnet8三个网络,如果有使用百香果1.0版本或其他场景下开启了其他网络,建议将这些多余的网络配置中的“将主机虚拟适配器链接到此网络”和使用“本地DHCP服务将IP地址分配给虚拟机”两个勾去掉(如上图所示),否则容易产生地址冲突或DHCP冲突。如果一定要用请将子网地址设置与百香果平台的规划一致,且配置本机网卡地址不能与平台内的地址冲突。

0x06 下期预告

本期只是介绍了百香果2.0最基础的用法,即使用默认的沙盘规则构建攻击场景,在下一期的进阶篇中我们将介绍如何通过修改防火墙配置自定义规则实现更加复杂的攻击场景,而最后的高级篇中我们还将进一步介绍如何使用平台内置的docker管理平台拉取docker镜像建立容器并接入沙盘环境,更加方便的构建攻击场景并最大化解决资源,敬请期待。

关闭