【安全测试概述以及Kali Linux基础】

目录

前言

一、安全渗透测试概述 

1、概述

2、测试方法

二、Kali的历史和目的

1.Kali Linux简介

2.Kali在红队策略中的角色

三、更新和组织Kali

1、配置和自定义Kali Linux

2、重置超级用户密码

3、添加普通用户

4、配置网络服务和安全通信

5、调整网络代理设置

6、访问安全外壳协议

7、加速Kali运行

8、与主机操作系统共享文件夹

9、使用Bash脚本来定制Kali

四、构建验证环境

1、安装预定目标

2、使用Faraday管理合作渗透测试

总结


前言

本专栏主要来介绍如何使用Kali Linux对不同对象进行渗透测试。渗透测试可以模拟内部或外部的恶意攻击者对网络或系统进行攻击。不同于漏洞评估,渗透测试包括漏洞利用阶段,本专栏主要用于个人学习的记录与分享,欢迎提供改进的建议,请勿用作他用。

一、安全渗透测试概述 

1、概述

不同的安全顾问对安全测试的定义有着不同的见解,其中,对于安全测试有一个最简单的解释:安全测试是一个过程,用于验证信息资产或系统是否受到保护,以及保护功能是否按照预定效果执行。下面是漏洞扫描、渗透测试和红队训练的实际意义。 

【漏洞扫描】(Vulnerability scanning, Vscan):它是一个识别系统或网络的安全漏洞的过程。漏洞扫描并非让我们知道所有的已知漏洞,漏洞扫描的局限性在于只识别潜在的漏洞,且完全依赖于其利用的扫描工具类型,其中可能包括大量的误报。

【渗透测试】(Penetration testing, Pentest):它是一个安全利用漏洞而不太影响现有网络或业务的过程。测试人员尝试并且模拟漏洞利用后,误报的次数就会减少。渗透测试的不足是只能利用目前已知的公开漏洞,并且大部分都是以项目为重点的测试。

【红队训练】(Red Team Exercise, RTE):它是一个评价组织有效防御网络威胁并且通过各种方法提高其安全性的过程。在红队训练期间,我们注意到了实现项目目标的多种方式,例如针对项目目标活动进行完整覆盖,包括网络钓鱼、无线、丢弃盒(USB、CD以及SSD)和物理渗透测试等。使用红队训练的不足是它们都具有时间限制、预定义的方案,以及假设而非真实的环境。通常,为了每一项技术都按照程序执行,红队训练运行在完全监控的模式下。而真实的攻击者想要完成一个目标时情况则完全不同。

2、测试方法

为了解决渗透测试方法中固有的局限性,即现成测试方法的模型可能会阻碍测试人员进行网络渗透的创造力,渗透测试不能反映恶意攻击者的实际活动,必须将所有测试方法集成到一个框架当中,从攻击者的角度审视网络,即杀链(kill chain)

杀链包含攻击者攻击网络所采取的步骤。杀链不总以一个线性流呈现,因为一些步骤可能会并行出现。多发攻击可以瞬时对同一目标进行多种攻击,并且在同一时间攻击步骤可能发生重叠。

攻击者的一个典型杀链可以描述如下。

探索或侦察阶段。攻击者在攻击之前会对目标进行广泛的侦察,针对渗透测试或攻击,至少有70%的“工作量”是进行侦察,一般来说,可以采用两种类型的侦察:

      【被动侦察】:这种方式并不直接与目标以敌对方式进行交互。例如,攻击者将会审查公共的可用网站,评估在线媒体(尤其是社交媒体网站),并试图确定目标的攻击表面。这种类型的侦察很难从普通用户的行为中区分出来。

      【主动侦察】:这种方式可以被目标检测到,但是很难从常规的背景中区分出大多数在线组织的表现。主动侦擦期间的活动包括物理访问目标前端、端口扫描和远程漏洞扫描。

交付阶段。交付是用于完成攻击中任务的武器的选择和开发。精确的武器选择取决于攻击者的意图以及交付路线(例如,借助网络、无线,或者通过基于Web的服务)。

利用或攻击阶段。一个特定的漏洞被成功利用的同时,攻击者实现他们的目标。攻击可能在一个特定的情境下发生(例如,通过缓冲区溢出利用一个已知操作系统的安全隐患),或者可能在多个情景下发生(例如,一个攻击者物理访问公司处所,偷取电话簿,用公司员工的名字创建名户登录暴力破解列表。此外,向所有员工发送电子邮件以引诱其单击一个嵌入的链接,下载制作的PDF文件,这些文件会危机计算机安全)。

完成阶段——对目标的行动。这通常被称为“渗漏阶段(exfiltration phase)”,这一阶段专注于攻击者的可能的许多活动,最常见的利用活动是攻击者试图将他们的访问权限提升到最高级(纵向提权),并且破解尽可能多的账号(横向提权)

完成阶段——持久性。如果攻击一个网络或系统是有价值的,那么这个价值很可能在持续攻击下增长。这就需要攻击者持续与被攻破的系统保持通信。

当攻击者试图攻击网络或特停的数据系统时,攻击杀链是攻击者行为的一种元模型。作为一种元模型,它可以吸收任何私人的或商业的渗透测试方法。但是不同于这些方法,杀连能够是攻击者在一个战略高度上关注如何接近网络。

二、Kali的历史和目的

1.Kali Linux简介

Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。由Offensive Security Ltd维护和资助。最先由Offensive Security的Mati Aharoni和Devon Kearns通过重写BackTrack来完成,BackTrack是他们之前写的用于取证的Linux发行版 。

Kali Linux预装了许多渗透测试软件,包括nmap 、Wireshark 、John the Ripper,以及Aircrack-ng。用户可通过硬盘、live CD或live USB运行Kali Linux。Kali Linux既有32位和64位的镜像。可用于x86 指令集。同时还有基于ARM架构的镜像,可用于树莓派和三星的ARM Chromebook。

Kali Linux 2023.1也于Kali Linux的第十个年头发布,

这个版本引入了一种名为 Kali Purple 的新 Kali Linux 风格,这系列风格专注于防御性安全和终极 SOC In-A-Box 的架构,专为学习、实践 SOC 分析和威胁搜寻、安全控制设计 / 测试而设计,且提供 hacker vs hacker 比赛,以及中小型环境的保护支持。

Kali Purple 自带 Arkime 全包抓包分析、Cyber​​Chef 网络瑞士军刀、Elastic 安全信息和事件管理、GVM 漏洞扫描器、TheHive 事件响应平台、Malcolm 网络流量分析工具套件等 100 多种防御工具 Zeek 和 Suricata 入侵检测系统。

Kali Linux 2023.1 还带来了全新的主题,包括用于桌面、登录屏幕、引导加载程序和引导启动的新壁纸,以及 Kali Purple 风格主题的新变体。

此版本还附带了一些最新的 GNU/Linux 技术,包括 Xfce 4.18 桌面环境、Linux 内核 6.1 LTS、Python 3.11,以及 KDE Plasma 5.27 LTS 作为安装 Kali 时的可选桌面环境。

此外,此版本还包括一些新的安全工具,比如 Arkime 完整数据包捕获和分析、Cyber​​Chef 网络瑞士军刀、DefectDojo 应用程序漏洞管理关联和安全编排工具、Dscan nmap 包装器和 Redeye 数据管理器。

用于移动设备的 Kali Linux 版本: Kali NetHunter 也已经更新,支持使用 LineageOS 20 的摩托罗拉 X4 和使用 OneUI 5.0 (Android 13) 的三星 Galaxy S20 FE 5G,以及提供对运行 LineageOS 18.1 的 LG V20 的全面支持。

其他适配方面,Kali ARM 现在在 Radxa Zero SBC 上运行得更好,已添加 Debian 的非自由固件存储库用于全新安装,默认情况下 dmesg 不受限制,且不再需要 root 来运行绑定到低于 1024 的端口。
最新版的Kali包括以下特征:

\bullet 包括 600 多个渗透测试工具:在回顾了 BackTrack 中包含的每个工具之后,我们淘汰了很多根本无法使用或与提供相同或相似功能的其他工具重复的工具。有关所包含内容的详细信息,请访问 Kali Tools 网站。
\bullet 是免费的(就像啤酒一样),而且永远都是:Kali Linux 和 BackTrack 一样,是完全免费的,而且永远都是。您将永远不必为 Kali Linux 付费。
\bullet 开源 Git 树:我们致力于开源开发模型,我们的开发树可供所有人使用。想要调整或重建软件包以适合其特定需求的任何人都可以使用 Kali Linux 中包含的所有源代码。
\bullet 符合 FHS:Kali 遵守文件系统层次结构标准,使 Linux 用户可以轻松地找到二进制文件,支持文件,库等。
\bullet 广泛的无线设备支持:无线接口已支持 Linux 发行版的常规症结所在。我们已经构建了 Kali Linux,以尽可能支持尽可能多的无线设备,从而使其能够在多种硬件上正常运行 (sysin),并使其与众多 USB 和其他无线设备兼容。
\bullet 自定义内核,已为注入打补丁:作为渗透测试人员,开发团队经常需要进行无线评估,因此我们的内核包含最新的注入补丁。
\bullet 在安全的环境中开发:Kali Linux 团队由一小部分人组成,这些人是唯一可信任的提交包并与存储库进行交互的人,所有这些都使用多种安全协议来完成。
\bullet GPG 签名的软件包和存储库:Kali Linux 中的每个软件包均由构建和提交该软件包的每个开发人员签名,并且随后的存储库也对软件包进行了签名。
\bullet 多语言支持:尽管渗透工具通常是用英语编写的,但我们确保 Kali 包括真正的多语言支持,从而允许更多用户使用其母语进行操作并找到他们所需的工具。
\bullet 完全可定制的:我们完全理解并非每个人都会同意我们的设计决策,因此,对于喜欢冒险的用户,我们一直尽可能轻松地根据自己的喜好自定义 Kali Linux,一直到内核。
\bullet ARMEL 和 ARMHF 支持:由于 Raspberry Pi 和 BeagleBone Black 等基于 ARM 的单板系统正变得越来越普遍和廉价,因此我们知道,Kali 对 ARM 的支持需要尽可能地强大 (sysin),具有适用于 ARMEL 和 ARMHF 系统的完全正常安装的设备。Kali Linux 在广泛的 ARM 设备上可用,并且具有与主线发行版集成的 ARM 存储库,因此,与发行版的其余部分一起更新了用于 ARM 的工具。

2.Kali在红队策略中的角色

使用Kali Linux可以为渗透测试节省大量的时间,并且不需要去搜索其他操作系统通常不可用的包。Kali在红队策略中一些未被注意到的优势包括:

\bullet 单一攻击源可以攻击各种平台。

\bullet 快速添加资源,安装包以及各种支持库(特别是那些Windows不可用的库)。

\bullet 使用alien甚至可以安装RPM包。

三、更新和组织Kali

1、配置和自定义Kali Linux

Kali是一个用来完成渗透测试的框架。通过自定义Kali,测试者可以提高收集到的客户数据的安全性,使渗透测试更加简单。

Kali的常见自定义包括:

\bullet 重置超级用户密码

\bullet 添加普通用户

\bullet 配置网络服务和安全通信

\bullet 调整网络代理设置

\bullet 访问安全外壳协议

\bullet 加速Kali运行

\bullet 与MS Windows共享文件夹

\bullet 创建加密文件夹

2、重置超级用户密码

可以使用一下命令修改用户密码:

passwd root

然后会提示用户输入新的密码并且进行确认。

如果显示当前用户权限不够,可以使用以下命令获得最高管理员权限:

sudo su

3、添加普通用户

为了执行其功能,Kali提供的许多应用都必须用超级用户的权限(Root-level privilege)运行。但是超级用户权限有一定的风险,例如,输错了一个命令或者使用了一个错误的命令,都可能会导致应用终止,甚至损害被测试的系统。在一些例子中,使用普通用户级权限来进行测试更为可取。为了创建一个普通用户,可以使用以下命令:

adduser <new usr name>

接着会出现对应指令定义新建普通用户的信息。

4、配置网络服务和安全通信

在此环节的操作中,首先因该确保我们能够访问网络,并且该网络能够通过有线或

无线网络连接进行更新和通信。

你可能需要通过动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)获取一个IP地址,可以用以下命令修改网络配置并且添加以太网适配器:

# nano /etc/network/interfaces
iface eth0 inet dhcp

一旦网络配置文件更新,就可以通过ifup脚本自动获取IP地址,如下:

# nano /etc/network/interfaces
iface eth0 inet static
address <your address>
netmask <subnet mask>
broadcast <broadcast mask>
gateway <default geteway.

# nano /etc/resolv.conf
nameserver <your DNS ip> or <Google DNS (8.8.8.8)>

默认情况下,Kali不会启用DHCP协议。这样做会在全网广播新的IP地址,从而让管理员意识到测试者的存在。但对于一些测试情况,这并不属于问题而且在系统启动时就加载这些服务可能会更有利,可以通过以下命令实现:

update-rc.d networking defaults
/etc/init.d/networking restart

Kali安装的网络服务都可以根据需要启用或停止,包括DHCP、HTTP、SSH、TFTP和VNC服务器。这些服务通常痛过命令行唤醒,但部分服务也可以通过Kali的菜单访问。

5、调整网络代理设置

用户要使用认证的或非认证的代理连接必须修改bash.bc和apt.conf文件。两个文件都位于/etc/目录下。编辑bash.bc文件,利用文本编辑器在bash.bashrc的最后添加以下命令:

export ftp_proxy="ftp://username:password@proxyIP:port"
export http_proxy="http://username:password@proxyIP:port"
export https_proxy="http://username:password@proxyIP:port"
export socks_proxy="http://username:password@proxyIP:port"

分别使用代理服务器IP地址和端口号代替proxyIP和port,并且用认证用户名和密码代替user和password。如果不需要认证,只需要输入@符号后面的部分。最后,保存并关闭文件。

6、访问安全外壳协议

在测试期间,为了避免目标网路的检测,Kali不会启用任何外部侦听网络服务。某些服务,如安全外壳协议(Secure Shell, SSH)已经安装,但是这些协议在使用前必须先启用。

Kali预先配置了默认的SSH密钥,在启用SSH服务前,最好弃用默认的密钥,并产生唯一一个密钥集。通过以下命令,可以将默认的SSH密钥移动到备份文件,然后产生新的密钥集:

dpkg-reconfigure openssh-server

查询SSH服务是否正在运行,可以通过以下命令:

service ssh status

有一点需要注意,启用SSH的默认配置就无法使用超级用户登录,如果需要使用超级用户登录,必须编辑/etc/ssh/sshd_config文件,并且将PermitRootLogin设置为yes,保存然后退出。

7、加速Kali运行

以下几种工具可以用来优化和加速Kali运行:

\bullet 在使用虚拟机时,安装VM软件驱动包Guest Additions(VirtualBox)或VMwareTools(VMware)。在安装前首先确保运行了apt-get update命令

\bullet 在创建虚拟机时,选择一个固定大小的磁盘,而非动态分配的磁盘。固定大小的磁盘可以更加快速地添加文件,并且碎片更少。

\bullet 默认情况下,Kali不会显示所有出现在启动菜单中的应用。每个在启动阶段安装的应用都拉低了系统数据,并且可能会影响内存使用和系统性能。安装启动管理器(Boot Up Manager,BUM)来禁止启动时非必要的服务和应用(apt-get install bum)

8、与主机操作系统共享文件夹

Kali工具箱能灵活地与驻留在不同操作系统中的应用共享成果,特别是Microsoft Windows。最有效率的共享数据方式是创建一个主机操作系统和Kali Linux VM用户能够访问的文件夹。创建一个共享文件夹的步骤如下:

1.在主机操作系统上创建一个文件夹,在例子中,命名为kali_share。

2.右键单击文件夹,选择Sharing选项表,选择Share。

3.确保文件与Everyone共享,Permission Level设置为Read/Write。

4.如果没有上述的操作,则需要在Kali Linux上安装适当的工具,例如,在使用VMware时,安装VMware工具。

5.安装完成后,在VMware菜单中选择Manage并且电机Virtual Machine Setting.。找到Shared Folders菜单,并选择Always Enabled选项,创建一个主机操作系统中已存在的共享文件夹的路径。

6.使用Oracle VirtualBox时,选择VM进入Settings然后选择Shared Folders。

7.在VirtualBox的Kali Linux运行mount-shared-folders.sh文件,共享的文件夹可以在mnt中看到。

8.放在该文件夹下的所有文件均可以通过主机操作系统的相同文件名访问,反之亦然。

9、使用Bash脚本来定制Kali

通常,为了维护系统和软件开发,在Linux中的命令行界面开发了多个shell,即sh、bash、csh、tcsh和ksh。

根据渗透测试的目标,可以利用以下bash脚本定制Kali Linux:

https://github.com/PacktPublishing/Mastering-Kali-Linux-for-Advanced-Penetration-Testing-Third-Edition/Blob/master/Chapter%2001/Iscript-master.zip

四、构建验证环境

1、安装预定目标

本节将安装Windows平台的Metasploitable3,它是一个基于PHP框架的Web应用,其用于利用Metasploit对多个漏洞进行测试。虚拟机的下载地址为:

https://github.com/rapid7/metasploitable3

下载ZIP文件并且解压后,可以安装所有相关的支持软件,例如Packer、Vagrant、VirtualBox和Vagrant reload插件,以下命令可以用于安装所有易受攻击的服务和软件。

\bullet 在Windows系统上,可以运行以下命令:

./build.ps1 windows2008
./build.psl ubuntu1404

\bullet 在Linux和macOS系统上,可以运行以下命令:

./build.sh windows2008
./build.sh ubuntu1404

2、使用Faraday管理合作渗透测试

Faraday是一个多用户渗透测试集成开发环境(Integrated Development Environment, IDE),用于分配、索引和分析在渗透测试或技术安全审核过程中所生成的所有数据,以提供不同视角的数据,如管理、执行摘要问题列表等。


总结

在本节中,介绍了不同的测试方法,以及针对实时攻击进行测试的基于目标的测试的组织方法。同时进行了Kali Linux的更新与组织,并且搭建了自己的验证环境。在下一节中,将进行开源情报和被动侦察的介绍。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值