作为渗透测试人员,建议建立自己的验证实验室来测试任何类型的漏洞,并在实时环境中模拟之前相同的条件进行正确的概念验证。
为了更好地练习漏洞利用的技巧,建议使用众所周知的易受攻击的软件。在本小节中,我们将安装以下软件:Metasploitable3,它同时具有Windows和Linux版本;Mutillidae,它是一个PHP框架的Web应用程序;CloudGoat,这是一种旨在部署易受攻击的AWS实例的AWS部署工具。
1.实验室网络
我们需要确保创建一个只能由测试人员访问的专用网络。因此,通过在命令提示符或终端运行以下命令,在VirtualBox的目录下创建一个NAT网络,对于Windows系统来说,参考路径是C:\Program Files\Oracle\VirtualBox\。
请注意,以上是单行指令。
2.活动目录和域控制器
在上一版中,我们讨论了如何在Windows 2008 R2上设置活动目录。这里我们将升级测试实验室,并在Windows Server 2016 Datacenter版本上安装活动目录。从Microsoft官网下载ISO(https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016-essentials),并安装VMware Workstation Player或VirtualBox,然后按照以下步骤执行:
1)确保网络适配器已连接到正确的网络。选中虚拟机,然后单击Settings。从菜单中选择Network,确认勾选了Enable network adapter,并选择Attached to中的NAT network,指定名称为InsideNetwork(或其他用于创建实验室网络的名称)。接着,单击Advanced,在Promiscuous mode下选择Allow All(此模式将允许VM之间的所有流量)。
2)成功登录Windows服务器后,运行命令行中的以下内容:
3)找到Server Manager,单击Add roles and features。
4)从Installation Type界面中选择Role-based or Features-based installation,然后单击Next。
5)默认情况下,从Select a server from the server pool中选择相同的服务器,单击Next。
6)在Server Roles页面中,选中Active Directory Domain Services旁边的复选框。安装域服务还需要其他角色、服务或功能,单击Add Features,然后单击Next。
7)选择要在AD DS安装期间安装的其他可选功能,选中旁边的复选框,然后单击Next。
8)在显示的包含所有选定功能和服务的确认界面中单击Install,安装完成后,单击Close。
9)选择AD DS,会出现一个警告“Configuration required for active directory domain service”,然后单击More进行进一步配置,如图1.31所示。
图1.31 将服务器提升为域控制器
10)单击Promote this server to a domain controller(将此服务器提升为域控制器)。
11)选择Add a new Forest,输入一个FQDN(Fully Qualified Domain Name)。在此示例中,我们将创建一个名为mastering.kali.fourthedition的新FQDN,然后单击Next。
12)在下一个界面中,基于Forest functional level以及Domain functional level,选择Windows Server 2016,为Directory Services Restore Mode(DSRM)(目录服务还原模式)输入密码,接着单击Next。
13)不要选择DNS delegation,直接单击Next,它应默认选取MASTERING作为NetBIOS域名,接着单击Next。
14)选择数据库、日志文件和SYSVOL for Active Directory的位置,最后你应该会看到一个查看界面,如图1.32所示,单击Next。
15)必须满足所有先决条件,忽略警告之后,单击Install。
16)在Confirm installation selections界面上,查看安装细节是否正确,然后单击Install。接着系统会重新启动,并且部署了带有域控制器的活动目录服务器。
图1.32 在Windows Server 2016上安装Active Directory服务器的最后阶段
若要在域上创建普通用户,请在域控制器上的命令行中运行以下命令:
若要创建域管理员账户,使用以下命令将创建此类用户并将其添加到域管理员组:
若要验证是否已创建这些用户,只需从命令行运行net user即可使用域控制器。你应该能够看到服务器上的所有本地用户。
我们在域控制器上通过运行以下命令,为新的exchange服务器创建一个额外用户:
3.安装Microsoft Exchange Server 2016
在本小节中,我们将部署一个全新的Windows Server 2016,并在其上安装Microsoft Exchange服务,以便于在后面的章节中探讨Exchange Server 2021的一些漏洞。
我们使用上一节中安装Active Directory时所下载的同一个Windows 2016 ISO镜像文件,并创建一个全新的服务器。安装并启动Windows服务器后,第一步是确保此服务器现在可以与域控制器的DNS服务通信,因此通过手动运行以下命令编辑以太网适配器设置来配置静态IP和DNS(参考链接https://www.server-world.info/en/note?os=Windows_Server_2016&p=initial_conf&f=4):
下一步是将Exchange Server加入域,需要执行以下几个操作:
1)转到System Properties。按Windows+R键并输入sysdm.cpl。单击Change,显示Computer Name/Domain Changes界面。
2)将计算机名称从默认值更改为ExchangeServer,然后单击Domain,输入Mastering.kali.fourthedition,如果网络没有问题,会收到一个提示,要求你输入用户名和密码。
3)输入之前创建的用户名,这里为exchangeadmin,然后输入密码。现在应该看到如图1.33所示的界面,显示已成功添加到域。
4)最后一步是重新启动计算机,以便域能更新计算机名。
图1.33 成功地将Exchange服务器添加到Active Directory域
以下步骤将把Windows Server 2016提升到Exchange服务器:
1)下载Microsoft Exchange Server 2016镜像,地址如下:https://www.microsoft.com/en-us/download/details.aspx?id=57827。
2)将ISO文件作为驱动器挂载到VirtualBox,依次单击Settings、Storage、Select the Optical Drive,然后添加已下载的Exchange ISO镜像文件。
3)在开始安装之前,我们要安装一些依赖包,这里可以直接从PowerShell(以管理员身份运行)安装,如下所示:
4)除了这些软件包之外,还需要下载并安装Unified Communications Managed API 4.0,地址为http://www.microsoft.com/en-us/download/details.aspx?id=34992。
5)所有先决条件完成后,通过在命令行中输入d:找到驱动器,然后输入setup /PrepareSchema /IAcceptExchangeServerLicenseTerms。如果没有错误发生,则应该看到如图1.34所示界面。
图1.34 安装Exchange Server的先决条件检查
6)完成所有先决条件分析后,现在可以继续下一步,通过运行以下命令准备Active Directory。
7)运行以下命令在Exchange服务器上安装Mailbox角色。
8)命令执行完成后,所需的Exchange Server组件和软件包已成功安装,如图1.35所示。
图1.35 Exchange Server工具的安装及其配置
9)步骤8的过程可能需要一些时间,具体取决于系统性能。完成所有操作后,需要在Exchange Server端口443上启用Outlook Web访问,如图1.36所示。
图1.36 成功安装Exchange Server,可访问https://localhost/owa/
4.Metasploitable3
Metasploitable3是一个易受攻击的虚拟机(VM),常用于通过Metasploit测试多个漏洞。它以BSD风格的许可授权发布。我们将在实验室网络中进行练习,使用两个虚拟机,一个运行过时的Windows 2008服务器,另一个运行Linux服务器Ubuntu 14.04。你可以通过先安装Vagrant应用程序来实现此设置。
Vagrant是一个开源工具,主要用于构建和管理虚拟机环境。你可以从虚拟操作系统中直接下载此工具:https://www.vagrantup.com/downloads。成功安装应用程序后,通过在终端或命令提示符下运行以下命令来安装所需的插件vagrant-reload和vagrant-vbguest。
现在,我们已准备好将Metasploitable3虚拟机下载到本地系统。使用vagrant box add命令指定存储库位置来下载虚拟机,这些虚拟机托管在vagrantcloud.com中:
运行上述命令后,需要选择不同的程序下载选项,如图1.37所示。
图1.37 下载Metasploitable3 via vagrant
这些虚拟机将被下载到/home/username/.vagrant.d/boxes/或c:\users\ username\.vagrant.d\boxes\的文件夹中。检查这些文件夹以验证下载完成:
1)运行以下命令将文件夹更改为相应的位置:cd C:\Users\user\.vagrant.d\boxes或cd/home/username/.vagrant.d/boxes/。
2)可以通过运行vagrant box list来列出设备上已安装的虚拟机。
3)要启动这些虚拟机,需要执行vagrant init metasploitable3-win2k8来初始化它们。此命令创建了名为Vagrantfile的Vagrant配置文件,其中包括了所有虚拟机的设置。从其他文件夹路径执行vagrant init metasploitable3-ub1404,以避免出现Vagrantfile already exists错误消息。
4)执行vagrant up来启动虚拟机,这时可以看到虚拟机已启动。渗透测试人员将收到一个默认警告:Authentication failure.Retrying。这是因为VM和Vagrant之间SSH的访问使用了不安全的私钥。成功启动Metasploitable3 Windows服务器后,你会看到如图1.38所示的界面。
图1.38 在VirtualBox上运行Metasploitable3
5)执行vagrant global-status验证当前初始化的系统。
6)接下来的重要步骤是更改这些VM的网络设置,将它们连接到实验室网络。选择虚拟机,然后单击Settings。在General选项卡中,将VM的名称更改为你定义的名称,然后从菜单中单击Network,确保勾选了Enable network adapter,并依次选择Attached to、NAT network,名称为InsideNetwork。
我们在VirtualBox环境中成功部署了易受攻击的Metasploitable3虚拟机,可以在接下来的章节中使用它练习更高级的漏洞利用了。
5.Mutillidae
Mutillidae是一个开源的不安全Web应用程序,专为渗透测试人员设计,以练习所有特定Web应用程序的漏洞利用。XAMPP是另一个免费开源的跨平台Web服务器解决方案堆栈包,由Apache Friends开发。
我们现在将在新安装的Microsoft Windows Server 2016(域控制器)上部署Mutillidae服务器:
1)你可以直接从https://www.apachefriends.org/ download.html下载XAMPP,也可以在PowerShell中运行以下命令获取XAMPP:
为防止在PowerShell中运行wget时出现SSL/TLS错误,请务必确认在PowerShell中运行命令[Net.ServicePointMan ager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12,从而确保Windows服务器支持TLS1.2。
2)使用XAMPP的Windows版本7.1.30,应用程序安装完成后,请通过勾选XAMPP控制面板中Service下的复选框来启用Apache和MySQLas服务,如图1.39所示。
3)你可以直接从https://github.com/ webpwnized/mutillidae下载软件的最新版本或通过PowerShell运行以下命令获取Mutillidae:
图1.39 XAMPP控制面板显示Apache和MySQL正在运行
4)解压缩文件并将文件夹复制到C:\yourxampplocation\htdocs\<mutillidae>。
5)打开Mutillidae文件夹中的.htacess文件,然后在文件下方添加一行Allow from 10.10.10.0/24,允许此IP地址范围的访问。
6)依次单击XAMPP控制面板里的Actions、Start按钮,启动Apache和MySQL服务。你会看到Web应用程序已成功部署在Windows服务器上,并且可以通过访问http://10.10.10.100/mutillidae/来访问它。
7)你会收到相关MySQL root访问拒绝的数据库错误消息。打开XAMPP控制面板,确保MySQL服务已启动并运行,然后单击Shell,并运行以下步骤重置root密码,如图1.40所示。
8)我们成功部署了易受攻击的Web应用程序,如图1.41所示。
如果出现数据库处于脱机状态或类似内容的错误消息,尝试选择Try to setup/reset the DB。如果遇到其他任何丢失文件的错误消息,请以管理员身份运行PowerShell禁用Defender:Set-MpPreference-DisableRealtimeMonitoring$true。
图1.40 从XAMPP运行命令行管理程序并为根用户设置MySQL密码
图1.41 在同一实验室网络中成功访问Kali Linux上的Mutillidae