标记红色的部分为今日更新内容。
一.配置KALI Linux和渗透测试环境
在这一章,我们将覆盖以下内容:
在Windows和Linux上安装VirtualBox
创建一个Kali Linux虚拟机
更新和升级Kali Linux
为渗透测试配置web浏览器(即在Firefox浏览器下安装一些常用的插件)
创建一个属于自己的靶机
配置网络使虚拟机正常通信
了解靶机上易受攻击的web应用程序
1.3.1 创建客户端虚拟机
现在,我们准备创建下一个虚拟机,它将是靶机服务器,我们将使用它来实践,并提高我们的渗透测试技能。我们将使用一个名为OWASP Broken Web Apps(BWA)的虚拟机,它是一个易受攻击的Web应用程序,专门用来执行安全测试的。
怎么做……
OWASP BWA托管在SourceForge,一个流行的开源项目存储库中。以下步骤将帮助我们创建一个脆弱的虚拟机:
1.访问http://sourceforge.net/projects/owaspbwa/files/并下载最新版本的.ova文件。在撰写本文时,它是OWASP_Broken_Web_Apps_VM_1.2.ova:
2.等待下载完成,然后打开文件。
3.将启动VirtualBox的对话框进行导入。如果要更改机器的名称或描述,可以双击这些值。在这里,你可以更改虚拟机的名称和选项,我们一般会让他们保持原样。点击导入:
4.导入约需要一分钟,之后,我们将看到虚拟机显示在VirtualBox的列表中。让我们选择它并单击Start。
5.机器启动后,我们将被要求登录和密码;输入root作为登录名,owaspbwa作为密码,然后设置。
它是如何工作的…
OWASP BWA是一个旨在为安全专业人员和爱好者提供一个安全的环境来开发攻击技能,识别和利用网络漏洞的项目应用程序,以便能够帮助开发人员和管理员修复和预防他们。
这个虚拟机包括不同类型的web应用程序;其中一些是基于在PHP上,有些用Java。我们甚至有一些基于.net的易受攻击的应用程序。
还有一些已知应用程序的脆弱版本,如WordPress或Joomla。
另请参考
当我们讨论脆弱的应用程序和虚拟机时,同样有很多选项。一个拥有大量此类应用程序的出色网站是VulnHub (https://www.vulnhub.com/)。它还可以帮助你解决一些挑战并提高你的技能
在本书中,我们将使用另一个虚拟机来制作靶机,bWapp-box,可以从项目网站下载:
https://sourceforge.net/projects/bwapp/files/bee-box/
还有一些虚拟机,它们被认为是自包含的web渗透测试环境,换句话说,它们包含易受攻击的web应用程序,以及用于测试和利用漏洞的工具。其他几个相关的例子是:
Samurai webtesting framework:
https://sourceforge.net/projects/samurai
Web SecurityDojo:
https://www.mavensecurity.com/resources/web-security-dojo
1.3.2 正确配置虚拟机通信
为了能够与我们的虚拟服务器和客户端通信,我们需要处于同一网络段;然而,在我们的本地网络中拥有已知漏洞的虚拟机可能会带来重要的安全风险。为了避免这种风险,我们将在VirtualBox中执行一个特殊的配置,以允许我们与来自Kali Linux主机的服务器和客户机虚拟机通信,而不将它们暴露在公网上。
准备
在继续之前,打开VirtualBox并确保靶机服务器和客户机虚拟机被关闭。
怎么做……
VirtualBox在基本系统中创建了虚拟网络适配器,以管理DHCP和虚拟网络。这些适配器独立于分配给虚拟机的适配器;我们将创建一个虚拟网络,并通过以下步骤添加Kali和易受攻击的虚拟机:
在VirtualBox中,导航到 File | Preferences... | Network.
1. 选择“仅主机”网络选项卡。
2. 单击“plus(+)”按钮以添加新网络。
3. 将创建新的网络(vboxnet0),并弹出详细信息窗口。
4. 在此对话框中,可以指定网络配置;如果它不干扰您的本地网络配置,就保持原样。您可以更改它,并在预留给本地网络的段中使用其他地址(10.0.0.0/8,172.16.0 /12,192.168.0.0/16)。
5. 现在,转到DHCP Server选项卡;在这里,我们可以在仅主机的网络中配置动态IP地址分配。我们将从192.168.56.10开始动态寻址:
6. 正确配置完成后,单击OK。
7. 下一步是配置易受攻击的虚拟机(vm_1)。选择它并进入它的设置。
8. 单击Network,在附加中:下拉菜单,选择仅主机适配器。
9. 在名字那,选择vboxnet0。
10.点击OK。
11.对于Kali虚拟机(Kali Linux 2018.1)和您想要包含在您的实验室中的所有测试机器,请遵循步骤8到11。
12.在配置了所有虚拟机之后,让我们测试它们是否能够真正通信。让我们看看我们的Kali机器的网络配置;打开终端,输入: ifconfig
13.我们可以看到,我们有一个名为eth0的网络适配器,它的IP地址是192.168.56.10。这取决于您使用的配置,可能会有所不同。
14.对于vm_1,网络地址显示在开始屏幕上,不过您也可以通过登录和使用ifconfig检查信息:
15.现在,我们有了三台机器的IP地址:用于Kali Linux的192.168.56.10,用于脆弱的vm_1的192.168.56.11。让我们测试一下沟通;我们将从Kali Linux中ping vm_1: ping192.168.56.11
Ping向目的地发送ICMP请求并等待回复;这有助于测试网络中两个节点之间是否可能进行通信。
16.我们对实验室里的所有虚拟机进行同样的操作,以检查它们是否能够相互通信。
17.Windows桌面系统,如Windows7和Windows 10,可能不会响应ping;这很正常,因为Windows 7默认配置为不响应ping请求。在这种情况下,为了检查连接性,如果您的实验室中有Windows机器,您可以使用来自Kali机器的arping:
arping -c 4 192.168.56.103
它是如何工作的…
只有主机的网络是充当LAN的虚拟网络,但是它的范围仅限于运行虚拟机而不将其暴露给外部系统的主机。这种网络还提供了一个虚拟适配器,供主机与虚拟机进行通信,就好像它们在同一网络段中一样。
通过我们刚刚完成的配置,我们将能够在测试中扮演客户端和攻击机器角色的机器与承载目标应用程序的web服务器之间进行通信。
1.3.3 了解易受攻击的虚拟机上的web应用程序
OWASP BWA包含许多web应用程序,故意使其容易受到最常见的攻击。他们中的一些人专注于某些特定技术的实践,而其他人则试图复制现实世界中碰巧存在漏洞的应用程序。
在这个“秘籍”中,我们将介绍vulnerable_vm并了解它包含的一些应用程序。
准备
我们需要运行vulnerable_vm并正确配置它的网络。对于本书,我们将使用192.168.56.10作为它的IP地址。
怎么做……
你需要执行的步骤如下:
1. 运行vm_1后,打开Kali Linux主机的web浏览器,进入http://192.168.56.10。您将看到服务器包含的所有应用程序的列表:
2. 让我们去看看脆弱的Web应用程序。
3. 以admin作为用户名,以admin作为密码。我们可以看到菜单在左边;这个菜单包含了我们可以在这个应用程序中使用的所有漏洞的链接:暴力破解、命令执行、SQL注入等等。另外,在DVWA安全部分,我们可以配置易受攻击输入的安全(或复杂性)级别:
4. 退出并返回服务器的主页。
5. 现在,我们点击OWASPWebGoat.NET。这是一个 .net应用程序,我们将能够在其中实践文件和代码注入攻击、跨站点脚本编写和加密漏洞。它还有一个WebGoat Coins客户门户,该门户模拟购物应用程序,不仅可以用来实践漏洞的利用,还可以用来识别漏洞:
6. 现在返回到服务器的主页
7. 这个虚拟机中包含的另一个有趣的应用程序是BodgeIt,它是一个基于JSP的极简版本的在线商店。它有一个产品列表,我们可以添加到一个购物篮,一个带有高级选项的搜索页面,一个新用户的注册表单和一个登录表单。没有直接提到漏洞;相反,我们需要寻找它们:
8. 我们不能在一个“秘籍”中看到所有的应用程序,但我们将在本书中使用其中的一些来练习。
它是如何工作的…
网页内的申请分为以下六组:
Trainingapplications: 这些应用程序有专门针对特定实践的漏洞或攻击技术的部分;其中一些包括教程、解释或其他类型的指导。
Realistic,intentionally vulnerable applications:作为真实世界应用程序(商店、博客和社交网络)的应用程序,为了培训的目的,它们被开发人员故意置于脆弱的境地。
Old(vulnerable) versions of real applications: 像WordPress和Joomla这样的旧版本的真实应用程序都有可利用的漏洞;这些都有助于测试我们的漏洞识别技能。
Applicationsfor testing tools: 这个组中的应用程序可以作为自动漏洞扫描器的基准。
Demonstrationpages/small applications: 这些小应用程序只有一个或几个漏洞,仅用于演示目的。
OWASPdemonstration application: OWASPAppSensor是一个有趣的应用;它模拟了一个社交网络,可能存在一些漏洞。但它会记录任何攻击尝试,这在学习如何绕过某些安全设备(如web应用程序防火墙)时非常有用。
另请参考
尽管OWASP BWA是用于测试目的的最完整的易受攻击的web应用程序集合之一,但是还有其他虚拟机和web应用程序可以作为它的补充,因为它们包含不同的应用程序、框架或配置。以下是值得一试的:
OWASP Bricks,包括在BWA,也有一个在线版本:
http://sechow.com/bricks/index.html
Hackazon(http://hackazon.webscantest.com/)是用于模拟现代web应用程序的在线测试范围。根据它的Wiki (https://github.com/rapid7/hackazon/wiki),它也可以作为虚拟机OVA文件找到。
Acunetix’s Vulnweb(http://www.vulnweb.com/)是一组易受攻击的web应用程序,每个应用程序都使用不同的技术(PHP、ASP、JSP、HTML5)来测试Acunetix web漏洞扫描器的有效性。
Testfire (http://testfire.net/)由Watchfire发布,并模拟一个在线银行应用程序。它使用 .net框架
惠普还创建了一个公共测试站点,以演示其强化WebInspect产品的有效性;它被称为ZeroBank(http://zero.webappsecurity.com/)。