安装只是搭建的第一步,组织Kali Linux非常重要。在本节中,我们将通过不同的定制方式来组织HackBox。
Kali是一个用来完成渗透测试的框架。然而,测试者不应该被默认安装的测试工具或者是Kali桌面的感觉所束缚。通过自定义Kali,测试者可以提高收集到的客户数据的安全性,使渗透测试更简单。
Kali的常见自定义包括:
·重置超级用户密码
·添加普通用户
·配置网络服务和安全通信
·调整网络代理设置
·访问安全外壳协议
·加速Kali运行
·与MS Windows共享文件夹
·创建加密文件夹
使用以下命令修改用户密码:
然后会提示你输入一个新的密码,如图1-15所示。
图1-15 重置密码
为了执行其功能,Kali提供的许多应用都必须用超级用户的权限(Root-level privilege)运行。超级用户权限有一定的风险,例如,输错一个命令或者使用了一个错误的命令,都会导致应用终止,甚至损害被测试的系统。在一些例子中,使用普通用户级权限来测试更可取。事实上,一些应用促进了低权限账户的使用。
为了创建一个普通用户,你可以简单地在终端上使用adduser命令,接着会出现指令,如图1-16所示。
图1-16 创建普通用户
首先应该确保我们能够访问网络,并且该网络能通过有线或无线网络连接进行更新和通信。
你可能需要通过 动态主机配置协议 (Dynamic Host Configuration Protocol,DHCP)获取一个IP地址,可以用以下命令修改网络配置并添加以太网适配器:
一旦网络配置文件更新,你就可以通过ifup脚本自动获取IP地址,如图1-17所示。
对于静态IP地址,你可以通过以下命令修改上述网络配置文件,从而为Kali Linux分配一个静态的IP地址:
图1-17 获取IP地址
默认情况下,Kali不会启用DHCP服务。这样做会在全网广播新的IP地址,从而可能让管理员意识到测试者的存在。对于某些测试情况,这也不是什么问题,并且在系统启动时就加载这些服务可能更有利。这可以通过输入以下命令实现:
Kali安装的网络服务都可以根据需要启用或停止,包括DHCP、HTTP、SSH、TFTP和VNC服务器。这些服务通常通过命令行唤醒,但部分服务也可以通过Kali的菜单访问。
用户要使用认证的或非认证的代理连接必须修改bash.bashrc和apt.conf文件。两个文件都位于/etc/目录下。
如图1-18所示,编辑bash.bashrc文件,利用文本编辑器在bash.bashrc的最后添加如下命令:
图1-18 编辑bash.bashrc文件
分别用代理服务器IP地址和端口号代替proxyIP和port,并且用认证用户名和密码代替user和password。如果不需要认证,只需输入@符号后面的部分。最后,保存并关闭文件。
在测试期间,为了避免目标网络的检测,Kali不会启用任何外部侦听网络服务。某些服务,如 安全外壳协议 (Secure Shell,SSH)已经安装。但是这些协议在使用前必须先启用。
Kali预先配置了默认的SSH密钥。在启用SSH服务前,最好弃用默认的密钥,并产生一个唯一密钥集。
通过以下命令,可以将默认的SSH密钥移动到备份文件,然后生成新的密钥集:
如图1-19所示,你可以通过命令service ssh status来查看SSH服务是否正在运行。
图1-19 启用SSH服务
注意,启用SSH的默认配置就无法使用超级用户登录。如果需要使用超级用户访问,你就必须编辑/etc/ssh/sshd_config文件,并将PermitRootLogin设置为yes,保存然后退出。最后,你就可以通过这个网络上的任何系统访问SSH服务并使用Kali Linux。例如,我们可以使用PuTTY(一个基于Windows环境的免费的可移植的SSH客户端)。如图1-20所示,你可以从其他机器访问Kali Linux,接受SSH证书,输入你的凭证。
图1-20 通过网络访问Kali Linux
以下几种工具可用来优化和加速Kali运行:
·在使用虚拟机时,安装VM软件驱动包Guest Additions(VirtualBox)或VMware Tools(VMware)。
在安装前必须确保运行了apt-get update命令。
·在创建虚拟机时,选择一个固定大小的磁盘,而非动态分配的磁盘。固定大小的磁盘可以更快地添加文件,并且碎片更少。
·默认情况下,Kali不会显示所有出现在启动菜单中的应用。每个在启动阶段安装的应用都拉低了系统数据,并且可能会影响内存使用和系统性能。安装启动管理器(Boot Up Manager,BUM)来禁止启动时非必要的服务和应用(apt-get install bum),如图1-21所示。
图1-21 BUM启用时的屏幕截图
Kali工具箱能灵活地与驻留在不同操作系统中的应用共享成果,特别是Microsoft Windows。最有效率的共享数据方式是创建一个主机操作系统和Kali Linux VM用户能访问的文件夹。
当将主机或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选项。创建一个主机操作系统中已存在的共享文件夹的路径,如图1-22所示。
图1-22 虚拟机设置的屏幕截图
6.使用Oracle VirtualBox时,选择VM进入Settings然后选择Shared Folders,如图1-23所示。
图1-23 选择“Shared Folders”选项
旧版本的VMware player使用了不同的菜单。
7.在VirtualBox的Kali Linux桌面运行mount-shared-folders.sh文件。如图1-24所示,共享的文件夹可以在mnt中看到。
图1-24 mnt中的共享文件夹
8.放在该文件夹下的所有文件均可以通过主机操作系统的相同文件名访问,反之亦然。
共享文件中将包含渗透测试中的敏感数据,所以需要通过加密来保护用户网络,在数据丢失时,减轻测试人员的责任。
通常,为了维护系统和软件开发,在Linux中的命令行界面开发了多个shell,即sh、bash、csh、tcsh和ksh。
根据渗透测试的目标,我们可以利用以下bash脚本定制Kali Linux: