Kali+Linux--------环境搭建
“这个世上只有两种人,*和被****的人。”
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站设计、外贸营销网站建设、平谷网络推广、小程序制作、平谷网络营销、平谷企业策划、平谷品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供平谷建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
所有事情都是围绕一个目标来实现的。因此,在本章中,我们将讨论基于目标的测试的重要性;并且描述一些在没有目标的情况下,漏洞扫描、测试和红队练习的经典失败案例。本章还对安全测试做了一个总结,介绍了如何搭建实验室环境,重点讨论了如何自定义Kali以支持测试的一些高级内容。阅读完本章,你将了解到以下内容:
1.安全测试的概述
2.漏洞扫描、测试和红队练习的经典失败案例
3.更新和组织Kali
4.使用BASH脚本自定义Kali
5.设置定义的目标
6.构建运行环境
1.1 安全测试的概念
世界各地的每个家庭,每个个体、公共企业或私人企业在网络空间中都存在各种顾虑,例如数据丢失、恶意软件和网络恐怖主义等。这些都围绕一个概念——保护。如果你问100位不同的安全顾问:“什么是安全测试?”可能会听到不同的回答。其中最简单的解释为:安全测试是一个过程,用于验证信息资产或系统是否受到保护,并且验证保护功能是否按照预期效果执行。
1.2 经典漏洞扫描、***测试和红队练习的失败
在本节中,我们将重点介绍传统/经典的漏洞扫描、***测试和红队练习,并说明它们的局限性。现在让我们开始简单阐述这三种方法的实际意义,并讨论它们的局限性:
·漏洞扫描(Vulnerability scanning,Vscan):这是一个识别系统或者网络的安全漏洞的过程。漏洞扫描的局限性是:只识别潜在的漏洞。其中可能包括大量的误报,对用户而言,这些漏洞的存在与风险评估并没有太大关系。
·测试(Penetration testing,Pentest):这是一个安全地利用漏洞而不影响现有网络或业务的过程。测试人员尝试并模拟漏洞利用后,误报的次数就会减少。测试的不足是只能利用目前已知的公开漏洞,并且大部分都是以项目为重点的测试。在***测试中,我们经常听到“耶!得到权限”,但我们从来不问“下一步是什么”。这可能有各种原因,如项目限制你立即向客户报告高风险问题,或者客户只关心网络的一部分,并希望你妥协。
·红队训练(Red Team Exercises,RTE):这是一种评价组织的有效防御网络威胁并且提高其安全性的过程。在RTE期间,我们注意到实现项目目标有多种方式,例如针对项目目标活动进行的完整覆盖,包括网络钓鱼、无线、丢弃盒和物理***测试等。使用RTE的不足是它们具有时间限制,具有预定义的方案,并且它们假设虚拟的真实环境。
通常,三种不同的测试方法都指向术语:**或破解。我们将你的网络,并暴露网络的弱点,但是,客户或企业主是否知晓这些网络被侵入或破解?我们如何衡量或破解?有什么标准?我们什么时候才能知道网络被***或完全破解?所有这些问题都指向一件事——什么是主要目标?
测试/RTE的主要目标是确定风险,评估组织的每项资产、业务、品牌形象等的风险等级。这不是评估他们有多少,而是评估他们暴露多少。如果发现的威胁并不构成风险,则无须进行证明。例如,对宣传册网站进行跨站脚本(Cross-Site Scripting,XSS)可能不会对业务产生重大影响;然而,客户端可能会接受使用Web应用程序防火墙(Web Application Firewall,WAF)防止XSS***。
1.3 测试方法
模型中很少考虑为什么要进行测试,或哪些数据是需要保护的业务关键数据。缺少这至关重要的一步,测试无法抓住重点。
很多测试人员不愿遵循现成的模型方法,他们担心模型会阻碍他们进行网络的创造力。测试不能反映恶意者的实际活动。通常,客户希望看到你能不能在一个特定的系统中获得管理上的访问权(“你可以打开这个盒子吗?”)。然而,***者可能会重点关注复制关键数据的方式——不需要底层接入,或引起拒绝服务。
为了解决测试方法中固有的局限性,必须从***者的角度集成一个框架——杀链(Rill chain)。
在2009年,Lockheed Martin CERT的Mike Cloppert介绍了这个概念,现在被称为“者杀链(attacker kill chain)”。当者访问网络时,“杀链”包含者采取的步骤。“杀链”不总是以一个线性流呈现,因为一些步骤可能会并行出现。多发可以对同一个目标瞬时进行多种,并且在同一时间***步骤可能发生重叠。
在本书中,我们已经修改了Cloppert的杀链,使之能更准确地反映***者如何在利用网络、应用和数据服务时应用这些步骤。
图1.1显示了一个***者的典型杀链。
一个***者的典型杀链可以描述为:
·侦察阶段。有一句格言:“侦察永远不浪费时间”。大多数军事组织承认,在进攻敌人之前,最好尽可能地去了解敌人的一切信息。同样,者在之前也会对目标展开广泛的侦察。事实上,据估计,针对测试或,至少有70%的“工作量”是进行侦察!一般来说,可采用两种类型的侦察:
·被动侦察。这种方式并不直接与目标以敌对方式进行交互。例如,者将会审查公共的可用网站,评估在线媒体(尤其是社交媒体网站),并试图确定目标的“表面”。
一个详细的任务将会产生一份过去和现在的雇员名称的列表。这些名称将成为尝试蛮力或密码猜测的基础。同样它们也被用到社会工程的中。
这种类型的侦察很难从普通用户的行为中区分出来。
·主动侦察。这种方式可以被目标检测到,但是很难从常规的背景中区分出大多数在线组织的表现。
主动侦察期间的活动包括物理访问目标前端、端口扫描和远程漏洞扫描。
·交付阶段。交付是选择和开发武器,武器用于完成中的任务。精确的武器选择取决于者的意图以及实施路线(例如,借助网络、通过无线,或通过基于Web的服务)。交付阶段的影响将在本书第二部分进行研究。
·利用或阶段。一个特定的漏洞被成功利用的时刻,此时者实现他们的目标。可能已经在一个特定的情景下发生(例如:通过缓冲区溢出利用一个已知操作系统的安全隐患),或者可能在多个情景下发生(例如:一个者物理访问公司住所,偷取他们的电话簿,用公司员工的名字来创建门户登录蛮力列表。此外,电子邮件被发送到所有员工以引诱他们单击一个嵌入式链接,下载制作的PDF文件,这些文件会危及员工的计算机)。当恶意者针对特定的企业时,多情景是常态。
·后期利用阶段:对目标的行动。这经常被称为“渗漏阶段”(exfiltration phase),这是错误的,因为通常理解的,仅仅以窃取敏感信息作为唯一的目的(如登录信息、个人信息和财务信息);但是,通常情况下,者有不同的目标。例如,这一阶段必须专注于者的许多可能的行动。
最常见的利用活动是***者试图提升他们的访问权限到最高级(纵向升级),并且破解尽可能多的账号(横向升级)。
·后期利用:持久性。如果一个网络或者系统是有价值的,那么这个价值很可能在持续下增长。这就需要者持续与被攻破的系统之间保持通信。从防护者的角度来看,这是杀链中最容易检测到的一部分。
当者试图网络或特定的数据系统时,杀链是者行为的一种基本模型。作为一种元模型,它可以吸收任何私人的或商业的测试方法。但是,也不同于这些方法,它使者在一个战略高度上关注如何接近网络。这种专注于***者的活动将引导本书的布局和内容。
1.4 Kali Linux介绍——历史和目的
Kali Linux(Kali)继承于BackTrack测试平台,通常认为BackTrack是测试安全数据和语音网络的实际标准工具包。它是由Mati Aharoni和Devon Kearns联合开发的性安全防护工具。Kali的发展历程如下:
·2013年3月,基于Debian GNU/Linux开源系统的***测试新工具Kali Linux取代了BackTrack。
·Kali 1.1.0(2015年2月9日):这是kali两年来的第一次升级,其内核补丁改至3.18,有无线注入***的补丁,支持无线驱动——大约有58个固定bug。其他版本如Kali 1.1.0a可以选择性地安装某些程序。
·Kali 2.0(2015年8月11日):这是一个主要版本,现在是滚动分布,主要更改了UI。可以从旧版本更新到新版本Kali 2.0。
·Kali 2016.1(2016年1月21日):推出了第一个Kali。内核4.3和最新的Gnome 3.18的发行版本。
·Kali 2016.2(2016年8月31日):第二个Kali滚动版本。内核4.6和Gnome 3.20.2更新修复了一些错误。
Kali 2.0的其他功能包括:
·包含超过300个测试、数据取证和防御工具。它们由硬件和内核补丁程序提供无线支持,允许一些数据包注入无线。
·支持多种桌面环境,例如Gnome、KDE、LXDE以及XFCE,也支持多种语言。
·兼容Debian的工具每天至少和Debian资源库同步四次,使更新封装包和支持安全修复更容易。
·有安全的发展环境和GPG签名的包和回购协议。
·支持ISO自定义,也就是允许用户建立他们自己的Kali版本。引导程序功能也执行企业级网络的安装,可以用先前的种子文件进行自动化安装。
·随着基于ARM的系统变得越来越普遍,成本越来越低,所以支持ARMEL和ARMHF的Kali可安装在如下设备上,例如rk3306mk/ss808、Raspberry Pi、ODROID U2/X2、Samsung Chromebook、EfikaMX、Beaglebone Black、CuBox和Galaxy Note 10.1。
·Kali保留了一个免费的开源项目。最重要的是,它得到了活跃的在线用户群的支持。
Kali Linux的目的是保护并集成所有的工具,为***测试人员提供一个统一的平台。
1.5 安装和更新Kali Linux
我们主要介绍了有关于kali***相关的知识。现在将更全面地介绍Kali Linux的不同安装方法与更新技术。
1.6 在便携式设备中使用Kali Linux
将Kali Linux安装到便携式设备中相当简单。在某些情况下,客户不允许在安全设施内部使用外部笔记本电脑。这种情况下,通常客户端向漏洞测试者提供测试计算机以进行扫描。在漏洞测试和RTE时,在一个便携式设备上运行Kali Linux有更多的好处:
·使用USB或者移动设备时,Kali在你的口袋中。
·无需对主机操作系统进行任何更改,Kali可以直接运行。
·可以自定义构建Kali Linux,甚至使用固化存储器。
从Windows PC将USB转换为便携式Kali是一个简单的过程,包含三个步骤:
1)Kali Linux映像的官方下载URL为:http://docs.kali.org/introduction/download-official-kali-linux-images 。
2)Win32Disk Imager的下载地址为:https://sourceforge.net/projects/win32diskimager/ 。
3)以管理员身份打开Win32Disk Imager。将USB驱动器插入PC的可用USB端口,可以看见图1.2所示的界面。选择正确的驱动器名称,然后单击Write。
一旦完成,退出Win32Disk Imager,并安全移出USB。现在Kali Linux已经在便携式设备上准备好了,并可以插入任何笔记本电脑来直接启动。如果主机操作系统是Linux,则可以通过两个标准命令来实现,即--sudofdisk-1和dd if=kali linux.iso of=/dev/nameofthedrive bs=512k。前者将显示驱动器上安装的所有磁盘;对于后者,如果用于输入文件,dd命令行执行转换和复制,of是指输出文件,bs是指块大小。
1.7 将Kali安装到虚拟机中
本节将深入了解如何将Kali安装到VMware Workstation Player和Oracle VirtualBox中。
VMware Workstation Player
VMware Workstation Player以前称为VMware Player,可供个人免费使用。在主机操作系统中,VMware虚拟机作为桌面应用程序存在,允许商用。该应用程序可以从URL http://www.vmware.com/products/player/playerpro-evaluation.html 下载。
接下来,介绍将Kali Linux逐步安装到VMware Workstation Player中的过程。
一旦将文件下载到主机操作系统中,只需单击Open the executable(打开可执行文件)即可看到如图1.3所示的屏幕截图。
下一步是接受最终用户许可协议,单击Next,直至获得如图1.4所示的屏幕,屏幕显示了在主机操作系统上成功安装了VMware。
下一步将Kali Linux安装到VMware,我们已经从官方的Kali Linux下载了文件,现在点击Create a NewVirtual machine(创建新的虚拟机)并选择Installer disc image file(iso)(安装磁盘映像文件)。浏览下载的ISO文件,然后单击Next。现在可以输入所选择的名称(例如,HackBox),并选择要存储VMware映像的自定义位置。单击Next,然后指定运行Kali的最小磁盘容量(推荐为10GB),然后单击Next直到完成所有设置。完成后,应该可以看到如图1.5所示的屏幕。
可以选择将Kali Linux安装到主机操作系统或将其作为实时映像运行。一旦完成所有安装步骤,就可以从VMware成功启动Kali Linux,如图1.6所示。
注意: Sana存储库从新版本的kali-linux 2016.2中删除。Sana是由包组成的存储库的代码名称。所以建议安装/启动Kali Linux后的第一步是运行apt-get update,以便更新sources.lst文件。
VirtualBox
VirtualBox类似于VMware Workstation Player,它是一个完全开源的虚拟机管理程序,也是可以从主机操作系统运行任何虚拟机的免费桌面应用程序。可以从https://www.Virtualbox.org/wiki/Downloads 下载VirtualBox。
现在将在VirtualBox上安装Kali。与VMware类似,将执行所下载的可执行文件,这些可执行文件将引导我们进入如图1.7所示的屏幕。
一旦点击Next,VirtualBox应该提供自定义选项选择不同的存储方式,默认情况下,我们将选择VirtualBox Application,如图1.8所示。
点击Next,可以看到安装进度,如图1.9所示。
图1.10提供了成功安装Oracle VirtualBox的确认信息。
下一步是将Kali Linux安装到VirtualBox中。点击菜单中的New,出现如图1.11所示的屏幕,可以输入所选择的名称,并选择平台的正确版本。例如,根据我们下载的ISO映像,选择64位Debian或32位Debian。
单击Next,并提供Kali所需的RAM大小。我们建议RAM至少为1GB。通过点击Next,将在主机操作系统上为Kali Linux创建一个虚拟硬盘。单击Next选择硬盘文件类型,大多选择VDI(Virtualbox Disk Image),如图1.12所示。
点击Next,创建硬盘的大小,如图1.13所示。
最后,我们必须到Hackbox|Settings中,将ISO映像加载为外部驱动,如图1.14所示。
现在应该可以看到以下截图,已成功安装Kali Linux到VirtualBox,如图1.15所示。
1.8 将Kali安装到Docker设备
Docker是一个开源项目,旨在即时自动部署软件容器和应用程序。Docker还在Linux上提供了操作系统级的虚拟化附加抽象和自动化层。
Docker适用于Windows,MacOS、Linux、AWS(Amazon Web Services)和Azure。在Windows中,可从https://download.docker.com/win/stable/InstallDocker.msi 下载Docker。
以下步骤显示如何在Windows 10中安装Docker,如图1.16所示:
安装Docker到Windows,需要使用Microsoft Windows上的Hyper-V功能。如果没有启用Hyper-V,很可能会看到如图1.17所示的界面。
一旦点击Ok,Hyper-V将由Docker应用程序启用,可以通过简单地输入docker命令查看命令提示信息,如图1.18所示。
现在,我们已经将Docker设备安装到Windows主机操作系统。使用简单的docker pull kalilinux/kalilinux-docker命令安装Kali Linux,如图1.19所示。
一旦将Kali Linux下载到Docker应用程序,就可以立即从下载的Kali Docker设备运行run-t-i kalilinux/kal-linux-docker/bin/bash,如图1.20所示。
应该能够直接从Docker运行Kali Linux。另外,请注意,Docker在后台使用VirtualBox环境。因此,它是通过Docker设备在VirtualBox上运行的虚拟机。
1.9 将Kali安装到云——创建一个AWS实例
AWS是Amazon提供的一个基于云的平台,Amazon主要为客户提供随时随地的计算、存储和内容传送。测试者或可以利用AWS进行***测试,本节将介绍最简单地将Kali Linux安装到AWS中的方法,在外部命令和控制的情况下,这将非常方便。
首先,需要一个有效的AWS账户。可以通过访问https://console.aws.amazon.com/console/home 注册。
登录AWS账户后,可以看到所有的AWS服务,如图1.21所示。
第二步是在AWS上启动Kali Linux。我们将通过安装Debian操作系统来定制Kali Linux。开源社区使得在Amazon Marketplace中直接启动预配置的Kali Linux 2016.2变得非常简单。https://aws.amazon.com/marketplace/pp/B01M26MMTT 将使我们能够在几分钟内直接启动Kali Linux。
当访问该链接时,能够看到如图1.22所示的内容。
点击Accept Software Terms&Launch with 1-Click(接受软件条款并且启动)按钮,然后通过访问https://console.aws.amazon.com/ec2/v2/home?regin=us-east-1 ,来访问你的AWS控制台。现在可以通过在Launch Instance(创建实例)上选择Instance ID按钮来创建一个实例,如图1.23所示。
为了确保只有你可以访问Kali Linux,需要创建一个键值对。现在可以使用在键值对中生成的私钥登录到你的AWS云。然后,通过从命令shell输入以下命令来登录:
图1.24显示了Kali已在AWS上成功安装。
必须满足所有条款和条件才能利用AWS进行测试。在发起云主机的任何之前,必须遵守法律条款和条件。
1.10 小结
在文章中,我们介绍了不同的测试方法,以及针对实时进行测试的基于目标的测试的组织方法。我们介绍了测试人员如何在多个不同平台上使用Kali Linux来评估数据系统和网络的安全性。我们已经在不同的虚拟化平台上安装了Kali,并且看到在Windows平台上使用Docker运行Linux操作系统的快捷。
本文题目:Kali+Linux--------环境搭建
文章来源:http://hbruida.cn/article/jdjhpc.html