从0开始利用VirtualBox搭建虚拟机靶场

从0开始利用VirtualBox搭建虚拟机靶场

写在前面:

由于目前我需要在一台Linux服务器上搭建一个可以用来做渗透测试的虚拟机仿真网络靶场,由于前期基本没有这方面的经验,就把整个过程写记录下来,方便后面的工作。整体上,需要先配置远程可视化的环境,安装VirtulBox,然后配置路由吗,配置Windows Sever Active Directory,最后利用进行安装多个虚拟机。


如果已经安装配置好VirtualBox可以从第二部分-靶场搭建开始看


系统环境:

OS: CentOS Linux release 7.9.2009 (Core)
Processor: Intel® Xeon® Gold 5118 CPU @ 2.30GHz
Architecture: x86_64
CPU(s): 48
Kernel: 3.10.0-1160.45.1.el7.x86_64
Memory: 125G

TODOs: 软件环境

1. 前期准备配置

1.1 Gnome Desktop 安装

首先安装图形界面

yum groupinstall "Gnome Desktop"ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

1.2 VNC配置

由于大部分时候需要远程连接服务器,同时SSH配置VirtualBox虚拟机不是很直观,而且Windows VM的安装以及PfSense的配置也需要可视化操作。因此需要我们给服务器配置VNC(Virtual Network Computing)服务进行远程操控,首先通过下面的命令安装TigerVNC server.

1.2.1 VNC Sever配置

sudo yum install tigervnc-server -y

安装完程序后,切换到运行VNC程序的用户登录。并执行vncpasswd,为VNC server配置密码[^密码至少有六个字符]。

$ su - your_user $ vncpasswd

接下来,通过复制放置在systemd目录下的配置文件,为用户添加一个VNC服务配置文件。(@后的数值1代表显示端口号码(端口5900+1);每启动一个VNC Server端口5900将递增1)

sudo cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

接下来我们需要更改/etc/systemd/system中的配置文件

vim /etc/systemd/system/vncserver@:1.service

如下图所示,这里ExecStart=/usr/bin/vncserver_wrapper your_user %i中的your_user需要被替换成所需用户名

[Unit]Description=Remote desktop service (VNC)After=syslog.target network.target[Service]Type=simple# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/usr/bin/vncserver_wrapper your_user %iExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'[Install]WantedBy=multi-user.target

开启VNC Server

sudo systemctl daemon-reload && sudo systemctl start vncserver@:1.service

并通过以下命令将vncserver配置为开机启动

sudo systemctl enable vncserver@:1.service

1.2.2 VNC Client配置

1.2.a 服务器防火墙配置

一般来说,CentOS 服务会自带防火墙,而VNC服务的端口(5901+)会被防火墙屏蔽,导致远程无法连接

基本操作

查看防火墙状态

sudo firewall-cmd --state
sudo systemctl enable firewalldsudo systemctl stop firewalldsudo systemctl start firewalld

如果想获得为public zone定义的rule-set,执行下面的命令:

sudo firewall-cmd --list-all

可以看到

[yangyz@localhost ~]$ sudo firewall-cmd --list-allpublic (active) target: default icmp-block-inversion: no interfaces: eno1 sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

这里只有 dhcpv6-clientssh 是可以通过防火墙的

添加服务到特定Zone (以public为例)

我们经常需要在当前工作的zone中添加一些服务。可以执行下面的命令查看所有 pre-defined 的services :

sudo firewall-cmd --get-services

对于VNC来说,最直接的方法是执行下面的命令,添加vnc-server服务。

sudo firewall-cmd --zone=public --add-service=vnc-server --permanent

然后我们使用下面命令查看目前添加到zone中的服务

sudo firewall-cmd --zone=public --list-services

得到:

[yangyz@localhost ~]$ sudo firewall-cmd --zone=public --list-servicesdhcpv6-client ssh vnc-server

可以看到vnc-server以及被添加到目前zone中。

1.3 VirtualBox 安装

VirtualBox uses the vboxdrv kernel module to control and allocate physical memory for the guest operating systems.
首先下载编译vboxdrv内核模块所需的构建工具(kernel-devel, dkms, kernel-headers, wget)

sudo yum updatesudo yum install –y patch gcc kernel-headers kernel-devel make perl wget

结束后需要重启服务器,要不后续执行sudo /sbin/vboxconfig时可能会报错。

sudo yum install dnfsudo dnf install 'dnf-command(config-manager)'sudo dnf config-manager --add-repo=https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo

后面,输入下面的命令来安装最新版本的VirtualBox。

sudo dnf install VirtualBox-6.1 -y

安装完成后,检查VirtualBox Linux内核模块服务的状态

sudo systemctl status vboxdrv

同时需要执行一些vbox的配置

sudo /sbin/vboxconfig

成功执行之后就可通过命令行中输入virtualbox启动virtualbox了


2 靶场设置

整体的靶场搭建主要参考0xBEN教程, 并略有更改。

主要的Features

  • 使用pfSense作为路由和防火墙
  • 通过不同的路由实现多个子网划分
  • 不同子网间的Firewall Rules由pfSense控制
  • 2.1 虚拟靶场网络架构

    靶场的结构如图所示,主要分为四个不同子网:

  • WAN
  • LAN
    • 这里我们只放置了KALI主机用于攻击和防火墙管理
  • Isolated Network(ISOLATED)
  • 2.2 pfSense

    pfSense是基于FreeBSD的开源的操作系统形式的防火墙,可以作为路由器和防火墙软件,提供商业级别的防火墙特性。并可以通过WEB页面进行配置。

    2.2.1 pfSense虚拟机配置

  • 现在创建虚拟磁盘(C)
  • VDI(VirtualBox)磁盘映像
  • 同时这里可以禁掉声音和USB端口。

    2.2.2 VirtualBox路由网口配置

    VirtualBox中的VM网络配置模式可以参考https://www.nakivo.com/blog/virtualbox-network-setting-guide/

    这里每一个网卡对应pfSense路由器上的一个Interface,首先我们设置WAN也就是相当于和互联网Internet连接的端口。由于物理服务器上只有一个静态配置的互联网端口,所以桥接网络的话虚拟机VM将无法连接网络,所以WAN一般选择NAT模式。

    网卡二(LAN)配置如下:这里LAN的配置可以有两种:1)通过物理服务器的浏览器通过WEB管理pfSense的配置。 2)搭建一个虚拟机VM构成的LAN网络,利用虚拟机(比如KALI)通过WEB管理pfSense的配置 。

    后续我们继续选择模式二

  • 模式一:通过物理服务器搭建LAN网络,管理pfSense
    • 首先设置一个主机Host-Only的网络,Gateway地址为 e.g. 192.168.58.1
    • 在VirtualBox中设置LAN对应网卡配置为:
    • 在pfSense中设置一下LAN的端口为Host-Only网络对应的IP-e.g. 192.168.58.100. 具体设置方法见下一节
    • 在服务器端打开浏览器输入 ,可以进入管理界面:
  • 模式二:通过虚拟机VM内网搭建LAN网络,管理pfSense
  • 配置完成点击绿色箭头Start运行

    2.2.3 pfSense安装

    2.2.4 pfSense端口配置

    对于不同的LAN模式选择不同的IPv4配置

  • 模式一:192.168.58.100/24
  • 后面设置好后可以用LAN网络中的虚拟机VM(比如Kali)中的浏览器登入10.0.0.1使用web配置pfSense:

    对其他端口配置

    随后通过WEB进入管理界面,默认的用户名密码是:

  • 用户名: admin
  • 密码:pfsense
  • 后面进入设置wizard:

    首先取消勾选 Override DNS

    优化DNS服务

    从菜单栏Services > DNS Resolver中,勾选下面的选项


    然后找到 Advanced Settings,勾选这两个选项


    2.2.5 防火墙配置

    菜单栏中找到Firewall然后添加下列规则

    2.3 kali 虚拟机VM安装

    TODOs

    2.4 其它靶机VM安装

    2.5 Windows Active Domain配置

    附录

    配置服务器加载U盘

    由于整体靶场镜像大概会有60G左右,通过scp进行拷贝往往速度很慢同时不是特别稳定。由于现在几台服务器相对比较近,所以用U盘拷贝文件比较方便。但是由于FAT32的格式不支持大文件在U盘上的读写,所以U盘需要被格式化成exFAT格式。最新版本的Windows和macOS操作系统都支持exFAT文件系统。但是CentOS和其他大多数主要的Linux系统一样,默认不提供对专有exFAT格式文件系统支持。

    为了能够在CentOS上挂载exFAT格式文件系统,需要使用yum从Nux Dextop软件库中安装FUSE exFAT模块。Nux Dextop软件库依赖于EPEL软件库。如果系统没有启用EPEL软件库,可以通过执行下面的命令来启用:

    sudo yum install epel-release

    接下来,导入软件库的GPG key,通过安装rpm包启用Nux软件库:

    sudo rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.rosudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

    最后使用以下命令安装exFAT-fuse和exFAT-utils软件包。

    sudo yum install exfat-utils fuse-exfat

    现在服务器就可以挂载exFAT格式的U盘了。

    X11 Forwarding

    除了VNC之外,X11 Forwarding结合SSH客户端软件(如MobaXterm)也可以远程使用linux主机图形化界面的VirtualBox。

    首先需要更改/etc/ssh中的SSH的配置文件sshd_config

    sudo vim /etc/ssh/sshd_config

    并做出如下更改

    X11Forwarding yesX11DisplayOffset 10

    同时保证服务器端安装有xauth

    [yangyz@localhost ~]$ which xauth/usr/bin/xauth

    如果没有安装的话,执行如下命令安装

    sudo dnf install xorg-x11-xauth

    这时再重新启动一下SSH Sever:

    sudo service sshd restart

    在远程SSH客户端就可以打开VirtualBox的可视化界面了

    参考Reference:

    IP路由 http://t.zoukankan.com/dengbingbing-p-10390391.html

    VNC https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/

    X11 https://www.businessnewsdaily.com/11035-how-to-use-x11-forwarding.html

    靶场配置(无路由子网) https://blog.csdn.net/lemonalla/article/details/105592150

    靶场配置 https://benheater.com/building-a-security-lab-in-virtualbox/

    防火墙 https://linuxhint.com/do-firewall-configuration-in-centos-8/

    https://www.nakivo.com/blog/virtualbox-network-setting-guide/

    本文使用 文章同步助手 同步

    ©著作权归作者所有,转载或内容合作请联系作者
    • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
      沈念sama阅读 220,458评论 6 513
    • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
      沈念sama阅读 94,030评论 3 396
    • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
      开封第一讲书人阅读 166,879评论 0 358
    • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
      开封第一讲书人阅读 59,278评论 1 295
    • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
      茶点故事阅读 68,296评论 6 397
    • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
      开封第一讲书人阅读 52,019评论 1 308
    • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
      沈念sama阅读 40,633评论 3 420
    • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
      开封第一讲书人阅读 39,541评论 0 276
    • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
      沈念sama阅读 46,068评论 1 319
    • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
      茶点故事阅读 38,181评论 3 340
    • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
      茶点故事阅读 40,318评论 1 352
    • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
      沈念sama阅读 35,991评论 5 347
    • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
      茶点故事阅读 41,670评论 3 331
    • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
      开封第一讲书人阅读 32,183评论 0 23
    • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
      开封第一讲书人阅读 33,302评论 1 272
    • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
      沈念sama阅读 48,655评论 3 375
    • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
      茶点故事阅读 45,327评论 2 358

    推荐阅读更多精彩内容