0


从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

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)

sudocp /usr/lib/systemd/system/[email protected]   /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 %i
ExecStop=/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配置

首先在远程客户端安装TightVNC, 然后打开TightVNC Viewer:
image-20221020165216394
输入之前设置的VNC密码
image-20221020165234051
就可以远程操控服务器了
image-20221020165300920

1.2.a 服务器防火墙配置

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

基本操作

查看防火墙状态

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

如果想获得为

public zone

定义的rule-set,执行下面的命令:

sudo firewall-cmd --list-all

可以看到

[yangyz@localhost ~]$ sudo firewall-cmd --list-all
public (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-client

ssh 

是可以通过防火墙的

添加服务到特定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-services
dhcpv6-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 update
sudo yum install –y patch gcc kernel-headers kernel-devel make perl wget

结束后需要重启服务器,要不后续执行

sudo /sbin/vboxconfig

时可能会报错。

sudo yum install dnf
sudo 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作为路由和防火墙
  • 通过不同的路由实现多个子网划分 - 不同于使用VitualBox做虚拟网络管理的靶场
  • 不同子网间的Firewall Rules由pfSense控制

2.1 虚拟靶场网络架构

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

  • WAN
  • LAN - 这里我们只放置了KALI主机用于攻击和防火墙管理
  • Isolated Network(ISOLATED)
  • Active Domain Network (AD LAB)CyberRange.drawio

2.2 pfSense

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

2.2.1 pfSense虚拟机配置

首先在pfSense官网下载ISO文件:
image-20221021095605569
接下来在VirtualBox中配置一个虚拟机,设为FreeBSD系统
image-20221021100303921
设定2G左右的RAM
image-20221021100504620
选定如下配置,并分配大概16G的磁盘空间

  • 现在创建虚拟磁盘(C)
  • VDI(VirtualBox)磁盘映像
  • 动态分配(D)image-20221021100639175

同时在设置中将调整启动顺序,将硬盘提到光驱前面
image-20221021100929942

同时配置存储,如下图所示:
image-20221021101136851
选择之前下载的

pfSense-CE-2.6.0-RELEASE-amd64.iso

。注意:需要先解压。

同时这里可以禁掉声音和USB端口。

2.2.2 VirtualBox路由网口配置

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

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

网卡一(WAN)配置如下:
image-20221021143130032

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

后续我们继续选择模式二

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

网卡三(ISOLATED)配置如下:
image-20221021104346090

网卡四(AD LAB)配置如下:
image-20221021104412483

配置完成点击绿色箭头Start运行

2.2.3 pfSense安装

启动后进入安装配置界面:
image-20221021104655608

安装pfSense:
image-20221021104706453

选择键盘配置:
image-20221021104718673

这里选择Auto(UFS)BIOS
image-20221021104740258

等安装完成后,选择no然后重新启动
image-20221021104942802

先不配置VLAN
image-20221021105410293

让后配置Interface:
image-20221021105508385
依次设置,最后得到
image-20221021105545300

随着系统自动配置后,整个路由的Interface如下图所示
image-20221021105719406

2.2.4 pfSense端口配置

对于LAN进行配置
img
选择2 对应LAN
img

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

  • 模式一:192.168.58.100/24
  • 模式二:10.0.0.1/24img

直接敲回车
img

直接敲回车. 我们不会用到IPv6.
img

输入

y

开启DHCP
img
设置起始结束位置
img
输入

n

使用https
img

后面设置好后可以用LAN网络中的虚拟机VM(比如Kali)中的浏览器登入10.0.0.1使用web配置pfSense:
image-20221021151124922
对其他端口配置

仿照上面的步骤配置其他的Interfaces,最终得到:
image-20221021150949690

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

  • 用户名: admin
  • 密码:pfsense

后面进入设置wizard:

首先取消勾选

Override DNS

选择地区和时区设置后,由于我们的靶场是在内网搭建的,所以最好uncheck这个选项
image-20221021151639309

优化DNS服务

从菜单栏Services > DNS Resolver中,勾选下面的选项
img
然后找到 Advanced Settings,勾选这两个选项
img

2.2.5 防火墙配置

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

LAN
image-20221021151404439

ISOLATED
image-20221021151425613

AD LAB
img

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软件库:

sudorpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudorpm -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
sudovim /etc/ssh/sshd_config

并做出如下更改

X11Forwarding yes
X11DisplayOffset 10

同时保证服务器端安装有

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

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

sudo dnf install xorg-x11-xauth

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

sudoservice sshd restart

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

参考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/


本文转载自: https://blog.csdn.net/weixin_42443332/article/details/127450248
版权归原作者 粥一羊 所有, 如有侵权,请联系我们删除。

“从0开始利用VirtualBox搭建虚拟机靶场”的评论:

还没有评论