购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

Chapter 1
第1章
欢迎,年轻的勇士:准备工作

你好呀,勇士!相信翻开这本书的你,一定对网络安全技术充满兴趣,并热切希望有机会在实战中大展拳脚。这本攻略完全可以满足你的愿望,书中设计了大量的渗透测试实践等待你来探索,数十台配置环境各异的目标主机作为层级关卡等待你来闯关,相信勇敢的你定能披荆斩棘,越战越勇!

1.1 一份道具包:主机环境搭建

为了帮助你勇往直前,我们首先需要进行一些准备,本章为你提供了各类道具,它们将为你构筑实践的桥梁,为未来的实战探索提供丰富的选项。

1.1.1 VMware与Kali Linux

在接下来的实践中,我们将完全基于Kali Linux系统环境进行操作,Kali Linux是基于Debian的Linux发行版,也是现在市面上非常受欢迎的渗透测试平台。它集成了大量的渗透测试与数字取证工具,可以帮助我们在渗透测试实践的各个环节中获得最为便捷且有效的工具和手段。出于安全性和便捷性考虑,我们不会将Kali Linux环境直接安装于物理主机中,而是将其作为虚拟机运行于VMware等虚拟化软件平台上。在接下来的实践演示中,我们将使用VMware作为Kali Linux环境的虚拟化使用平台,当然你也可以选择VirtualBox等其他虚拟化平台进行Kali Linux环境的部署,它并不会影响后续Kali Linux环境的使用,只是在部署方式上会略有不同。

关于VMware的部署,网上有很多相关教程,这里不再赘述,只提供一篇文章“超详细VMware虚拟机安装完整教程”的链接地址,方便大家参考部署:https://www.cnblogs.com/fuzongle/p/12760193.html。

部署好VMware以后,需要下载Kali Linux。在接下来的实践中,我们使用的Kali Linux为2020.2版本,这不是一个强制性的版本选择,不过目前Kali Linux各版本对Python 2和Python 3的支持形式以及所使用的默认终端均略有不同,如果使用该版本,将会获得最佳的实践体验。

为了简化安装步骤,建议使用Kali Linux的VMware镜像直接进行虚拟机导入操作,Kali Linux 2020.2版本的VMware镜像可以直接通过如下链接进行下载:

https://linuxtracker.org/index.php?page=torrent-details&id=4e837178fdecc3eab63a4ca51c2 00bfaaeb70b54。

如果上述链接无法使用,也可以使用腾讯微云下载:https://share.weiyun.com/5i4WF8PE(密码:e83wzc)。

该链接包含了kali-linux-2020-2-vmware-amd64-7z.torrent种子文件,并提供了下载好的kali-linux-2020.2-vmware-amd64.7z虚拟机镜像文件以及用于校验sha256算法文件完整性的kali-linux-2020.2-vmware-amd64.7z.txt.sha256sum文件,下载后请自行校验文件的完整性。

下载完成后解压文件,解压后的内容如图1-1所示。

图1-1 kali-linux-2020.2-vmware-amd64.7z解压后的内容

之后启动VMware,如图1-2所示,点击“文件”,并选择其中的“打开”选项。

图1-2 “打开”选项位置

然后在弹出的窗口中打开刚才解压的kali-linux-2020.2-vmware-amd64文件夹,并选择其中唯一被VMware识别的Kali-Linux-2020.2-vmware-amd64.vmx文件,如图1-3所示。

图1-3 打开Kali-Linux-2020.2-vmware-amd64.vmx文件操作

这时,VMware将自动完成虚拟机导入操作,并向我们提供一个名为“Kali-Linux-2020.2-vmware-amd64”的虚拟机实例,如图1-4所示。

图1-5所示的描述向我们提供了该系统登录时的用户名和密码(见框线中的内容),我们可以使用相应的用户名(root)和密码(toor)登录该Kali系统。

如果物理主机硬件配置允许,在首次开启虚拟机之前建议点击如图1-6所示的“编辑虚拟机设置”选项,并在如图1-7所示的内存选项中调整该虚拟机的内存配置,这有助于后续更好地发挥Kali主机的性能。完成上述操作后,点击“确定”按钮即可使修改的配置生效。

完成上述操作后,就可以点击“开启此虚拟机”按钮来尝试启动Kali Linux系统环境了,如图1-8所示。

图1-4 “Kali-Linux-2020.2-vmware-amd64”虚拟机导入成功

图1-5 “Kali-Linux-2020.2-vmware-amd64”虚拟机用户名凭证信息

图1-6 “编辑虚拟机设置”选项

首次启动该虚拟机时,会得到如图1-9所示的提示,点击“我已复制该虚拟机”即可继续操作。后续各类VulnHub相关目标主机在首次启动时都会出现类似的提示,均可按此步骤操作。

图1-7 “Kali-Linux-2020.2-vmware-amd64”虚拟机内存配置调整

图1-8 “开启此虚拟机”按钮的位置

图1-9 首次启动提示

进入如图1-10所示的界面时,可直接按回车键进入,或等待几秒,其会自动进入启动界面。

图1-10 Kali Linux启动选项

进入如图1-11所示的用户登录页面后,尝试以root身份登录。

图1-11 Kali Linux用户登录页面

但这时却给了我们密码错误的提示,如图1-12所示。

这是由于该版本的Kali Linux默认禁止以root身份使用默认密码登录图形化界面,因此我们需要先以kali用户身份登录系统,再切换至root用户。kali用户的用户名、密码均为kali,我们以kali用户身份成功登录Kali Linux系统,并进入相应桌面。

这时,点击右键,并选择“Open Terminal Here”选项,可打开一个新的终端,如图1-13所示。

图1-12 Kali Linux root用户登录失败页面

图1-13 “Open Terminal Here”选项的位置

然后在打开的终端中输入“sudo passwd root”命令,如图1-14所示。该命令允许我们重置root用户的密码,输入该命令后,系统将要求我们输入Kali用户的密码,按要求输入“kali”即可。

之后,系统会要求我们连续输入两次root用户的新密码,我们可以按个人喜好设置新密码,操作完成后,将获得“passwd: password updated successfully”的提示,这就意味着root用户密码成功修改。如图1-15所示。

图1-14 sudo passwd root命令的执行过程

图1-15 root用户密码重置成功

现在来测试一下以root用户身份是否能登录系统,如图1-16所示,点击桌面右上角的电源图标。

在弹出的窗口中选择“Log Out”选项(如图1-17所示),之后系统将重新回到如图1-11所示的系统登录页面。

图1-16 电源图标的位置

图1-17 “Log Out”选项的位置

重新以root身份登录,并输入刚才设置的密码,如图1-18所示,我们将成功以root身份进入系统。打开一个终端,输入whoami命令,将获得root用户的身份反馈。此时的终端样式和刚才以kali用户登录时的略有区别,这里显示了root用户名。

图1-18 root用户登录成功

接下来还需要做几个优化操作,首先,以root用户身份执行如下命令。

该命令将帮助我们更新Kali Linux系统本地的软件版本列表,方便我们后续安装新版本的软件。受限于网速等原因,图1-19所示的更新过程在部分情况下较为费时,须耐心等待。

完成上述操作后,我们可尝试将Kali Linux系统的语言修改为中文。注意,这不是一个强制选项,甚至在后续实践中的某些极端情况下使用中文系统进行操作会出现Bug,如果大家能够较好地理解和使用英文界面,则可以不更改系统语言。但为方便读者理解,在本书的实践过程中,将使用中文版系统界面。

首先,打开一个新的终端,如图1-20所示,在其中输入如下命令。

图1-19 apt-get update命令的执行过程

图1-20 输入dpkg-reconfigure locales命令

执行该命令,将进入Configuring locales设置面板,我们需要在这里修改部分配置,如图1-21所示。

在该面板中,可以通过上下方向键浏览各个设置项。这里需要找到en_US.UTF-8 UTF-8选项,并按空格键取消其目前的星标选中状态,如图1-22所示。

图1-21 Configuring locales设置面板

图1-22 en_US.UTF-8 UTF-8选项的位置

当我们在该条目上输入空格,确认对应条目显示为如图1-23所示的状态即可进行后续操作。

之后我们继续向下查找zh_CN.GBK GBK和zh-CN.UTF-8 UTF-8这两个选项,如图1-24所示。

然后按空格键分别将zh_CN.GBK GBK和zh-CN.UTF-8 UTF-8设置为星标状态,如图1-25所示。

完成上述操作后,按一下回车键,将进入如图1-26所示的界面,此处需要通过方向键选择zh_CN.UTF-8字符编码。

图1-23 en_US.UTF-8 UTF-8选项取消星标后

图1-24 zh_CN.GBK GBK和zh-CN.UTF-8 UTF-8条目的位置

图1-25 zh_CN.GBK GBK和zh-CN.UTF-8 UTF-8条目星标操作

图1-26 选择zh_CN.UTF-8字符

到这里,按回车键便可以完成该环节的确认操作,终端如图1-27所示,我们获得了“Generation complete”的反馈。

图1-27 “Generation complete”的反馈结果

直接在该终端中输入reboot命令,即可重启操作系统。重启完成后,新的系统登录界面已经变成中文样式,如图1-28所示。

图1-28 中文样式登录界面

以root用户身份登录系统后,我们将收到文件夹名称变更的确认提示,建议选择“保留旧的名称”,以防止因中文目录导致后续的运行Bug,如图1-29所示。

图1-29 文件夹名称变更确认界面

如果重启后没有出现上述变化,请通过右上角的电源图标再次重启。如果上述操作顺利,则桌面文件夹名称以及终端显示界面等内容文字都会变为中文,如图1-30所示。至此,Kali Linux系统的中文设置操作完成。

图1-30 中文系统界面

完成上述操作后,还需要对终端进行一个设置修改,以适应后续的终端内容显示需求。如图1-31所示,打开一个终端,选择“文件”→“参数配置”选项。

图1-31 “文件”→“参数配置”选项的位置

在弹出的终端设置窗口中,点击“行为”选项,并将历史记录行数修改为“不限制历史记录条数”(见图1-32),这是因为在接下来的实践中,我们将会多次用到输出上千行信息的枚举工具,如果限制了终端的历史条数,将会无法完整地查看枚举工具的显示结果。

图1-32 “不限制历史记录条数”选项的位置

选择“不限制历史记录条数”选项后,依次点击右下角的“Apply”和“OK”按钮即可使设置生效。后续所有的终端都会按照该设置显示历史信息。最后为缺乏Linux系统使用经验的读者提供一个终端使用建议,我们可以随时在任意目录下通过点击右键,并在弹出的菜单中选择“在此处打开终端”来开启一个新的终端,新终端的默认显示路径就是当前的路径,当我们需要执行位于某目录下的文件时,相比在其他目录下开启终端并通过cd命令切换到当前目录,这种方式往往更为便捷。

至此,基于VMware的Kali Linux环境便部署完成!

1.1.2 VulnHub主机操作指南

在本书后续的实战过程中,会用到来自VulnHub和Hack The Box两大平台的大量目标主机,为了方便大家快速掌握相关目标主机的实践技能,下面将对上述两大平台的目标主机的使用方法进行介绍。

VulnHub是由Offensive Security赞助的知名攻防实战主机资源平台,它提供了海量的优质目标主机资源,以便大家进行渗透测试等安全攻防技术的实战练习。该平台提供的目标主机的特点是“开箱即玩”,也就是在将目标主机的虚拟机镜像下载到本地后,使用VMware等虚拟化平台进行简单的导入和配置,即可开始实战练习。本书将以“Kioptrix:Level 1”目标主机为例,介绍VulnHub目标主机的下载和本地配置操作。

“Kioptrix:Level 1”目标主机在VulnHub上的虚拟机镜像地址为https://www.vulnhub.com/entry/kioptrix-level-1-1,22/,后续在涉及VulnHub平台目标主机的实践中,会分别提供对应的虚拟机镜像地址,大家按地址进行访问即可。

访问上述链接后,得到的页面如图1-33所示,我们可以通过“Download”提供的链接下载目标主机虚拟机镜像。大家可以根据下载速度自行选择下载链接。这里点击第一个链接完成下载操作。

图1-33 访问结果

下载完成后,我们将获得一个名为“Kioptrix_Level_1.rar”的压缩文件。这时,应根据VulnHub平台页面提供的MD5和SHA1等完整性校验方法确认一下下载文件的完整性,如图1-34所示,这里使用的校验工具是HASH 1.04,其下载链接为https://www.onlinedown.net/soft/495328.html。

图1-34 VulnHub平台页面文件完整性校验信息

校验结果如图1-35所示,MD5与SHA1信息均与VulnHub平台页面所提供的信息相符,这意味着我们下载的文件是完整的。

图1-35 Kioptrix_Level_1.rar压缩文件完整性校验结果

同时我们还需要关注一下VulnHub平台的页面信息,如图1-36所示,在Description这部分信息中,目标主机的作者往往会提供一些补充说明,里面可能有关键设置要求,之所以建议关注此处的内容,是为了避免在实践时出现配置不当等问题。

图1-36 VulnHub平台页面Description信息的位置

对于Kioptrix: Level 1目标主机来说,Description信息并没有提示需要特别注意的内容,因此我们可以直接对下载的压缩文件进行解压操作。要说明的是,有时我们下载的镜像可能只是一个后缀为.ova或者.ovf的文件,这也是正常的,它们也属于VMware虚拟机镜像文件格式,都是可以被VMware导入的。

这里的镜像导入操作与前面导入Kali Linux系统镜像一致,点击“文件”,选择其中的“打开”选项,然后选择我们刚才解压获得的Kioptix Level 1.vmx文件,如图1-37所示。

点击图1-37所示界面的“打开”按钮后,VMware将自动完成该目标主机镜像的导入操作,如图1-38所示。

在启动该目标主机之前,我们需要重新设置目标主机的网卡,以便将其连入Kali Linux系统所在的网络环境中。如图1-39所示,由于目前Kali Linux设置的虚拟网卡为NAT模式,因此需要将Kioptix Level 1目标主机的虚拟网卡也设置为NAT模式,从而使稍后启动的Kali Linux以及Kioptix Level 1目标主机在同一网段内,以便确保二者的网络连通性。

图1-37 打开Kioptix Level 1.vmx文件

图1-38 Kioptix Level 1目标主机镜像导入成功

一般情况下,对于目标主机,除了配置网卡以外无须再更改任何设置,除非目标主机的作者在Description信息中补充了额外的要求。

图1-39 Kioptix Level 1目标主机网卡配置修改

开启Kioptix Level 1目标主机后,如果目标主机显示类似图1-40所示的系统登录界面,就意味着启动成功。

图1-40 Kioptix Level 1目标主机启动成功

接着,获取该目标主机的IP地址,一般可以在Kali系统的终端中输入如下命令查找相关的IP地址。

如图1-41所示,执行上述命令后,Kali主机将在其目前所在的网卡网段中查找主机,图1-41中的192.168.192.1是网卡的默认网关,不是我们要寻找的目标。类似的,192.168.192.2以及192.168.192.254都是默认不会分配给主机的网关地址。可见,它们均不是我们希望获得的结果,该操作需要一定的时间,请耐心等待。

图1-41 netdiscover-i eth0命令的执行过程

如图1-42所示,除了前面提到的IP地址外,还找到了192.168.192.129这个地址,该地址即为目标主机地址。

图1-42 找到目标主机的IP地址

这里其实有个小窍门,目前Kali主机的IP地址为192.168.192.128,目标主机为192.168.192.129,这意味着后续每次导入新的目标主机,其IP地址都是当前顺序的递增,了解该规律后,后续也可以直接尝试测试对应IP的网络连通性。

找到目标主机IP地址后,直接输入q退出查找,并尝试对目标主机执行ping命令,以查看网络质量,如图1-43所示。

一般情况下,在VMware虚拟机本地部署的目标主机环境的网络连通性都非常优秀,如果目标主机不允许我们进行ping操作,则可以尝试使用nmap-sP命令加上对应的IP地址来查看网络连通性。

图1-43 ping 192.168.192.129命令的执行结果

至此,基于VulnHub平台的目标主机搭建完成,2.1节将介绍Kioptix Level 1目标主机的实战演练。

1.1.3 Hack The Box主机操作指南

Hack The Box是著名的网络攻防在线实战平台,它提供了海量的目标主机以便使用者进行多个维度的技术实战演练,本书后续实战中的部分目标主机来源于该在线平台,因此本节将对该平台的注册、网络连接以及目标主机激活等操作进行介绍。

Hack The Box的官方网站地址为https://www.hackthebox.com/,访问结果如图1-44所示。

图1-44 Hack The Box官方网站

点击图1-44所示页面右上角的“JOIN NOW”按钮,将跳转访问链接https://app.hackthebox.com/invite,在该页面需要先填写相关信息进行注册,包括用户名、邮箱等,如图1-45所示。

图1-45 Hack The Box注册页面

注册完成后,将成功进入如图1-46所示的平台大厅页面。

图1-46 Hack The Box平台大厅页面

点击图1-46所示页面左侧的“Labs”标签,然后选择“Machines”按钮,我们将进入目标主机页面。

进入目标主机页面后,点击如图1-47所示的“RETIRED MACHINES”按钮。

需要注意的是,接下来要使用的目标主机属于该平台的付费主机“RETIRED MACHINES”群组,该群组内的主机收费标准为每月10欧元(人民币约68元)。付费后,我们将获得该群组下的所有主机列表,并且可以无限制地访问该群组内的任意主机,如图1-48所示。

图1-47 “RETIRED MACHINES”按钮位置

图1-48 “RETIRED MACHINES”主机列表

为了访问这些主机,我们需要下载平台上的OpenVPN文件,并通过该文件连接进入目标主机所在的VPN网络,如图1-49所示,点击页面右上角的“CONNECT TO HTB”按钮,并在弹出的选项中点击“Machines”选项。

点击“Machines”选项后,选择“OpenVPN”按钮,如图1-50所示。

并在弹出的选项中点击“DOWNLOAD VPN”按钮,之后浏览器将为我们下载一个以.ovpn为后缀的文件,如图1-51所示。为方便后续使用,这里将其重命名为HTB.ovpn,然后复制到Kali Linux主机环境中。

图1-49 “Machines”选项的位置

图1-50 “OpenVPN”选项的位置

图1-51 “DOWNLOAD VPN”操作

之后在Kali Linux主机环境尝试使用该OpenVPN文件进行目标主机网络连接操作,在HTB.ovpn文件所在的目录下打开一个终端,并执行如下命令:

执行结果如图1-52所示,当其显示“Initialization Sequence Completed”时,证明我们已经成功连接到Hack The Box平台目标主机所在的内部网络中。

图1-52 openvpn HTB.ovpn命令的执行结果

此时回到Hack The Box平台,如图1-53所示,如果页面右上角原本红色的网络连接状态变为绿色了,就证明Hack The Box平台已收到并成功建立VPN连接请求,点击此绿色按钮会看到我们在该VPN网络中的IP地址。

图1-53 Hack The Box平台连接状态显示

同样,如果此时我们在Kali主机中执行ifconfig命令,也可以直观地获得目前我们在该VPN连接中的IP地址,如图1-54所示。此地址后续在构建各类获得反弹shell的命令时经常用到。

完成VPN连接后,接下来就可以激活目标主机了,这里以接下来将在3.1节用到的Optimum目标主机为例讲解如何激活。如图1-55所示,在“RETIRED MACHINES”群组下的搜索框中输入“Optimum”搜索对应的目标主机。

点击搜索到的主机将跳转访问链接https://app.hackthebox.com/machines/Optimum所示的页面。点击页面上的“Spawn Machine”按钮,即可激活该目标主机,如图1-56所示。

图1-54 ifconfig命令的执行结果

图1-55 基于“Optimum”搜索的结果

图1-56 “Spawn Machine”按钮的位置

如果获得了目标主机的IP地址,则意味着此目标主机已经被成功激活和启动,如图1-57所示。

图1-57 目标主机的IP地址

接下来在Kali主机中对该IP地址进行ping操作,查看网络连通性并确认网络质量,这里在Kali终端中执行的是ping 10.10.10.8命令,如图1-58所示。一般情况下,网络延时要控制在300ms以下,并且要尽可能地不丢包,以便于我们能够稳定地针对目标主机进行操作。值得注意的是,并不是每一台目标主机都允许我们进行ping操作,如果ping操作没有结果,并不完全意味着网络连通性存在问题,可以尝试使用nmap -sP命令加上对应IP地址进行进一步的探测。

图1-58 网络连通性、连接质量检测

如果此处的测试延时过高,或者丢包问题较为严重,建议尝试更换宽带,或者在Hack The Box平台更换VPN网络连接节点,并重新下载对应的OpenVPN文件。

如果上述操作全部完成后,网络质量良好,那么就可以进行实战了!

如果在实战过程中希望重置目标主机环境,可以点击“Reset Machine”按钮重置,如图1-59所示。

重置后,该目标主机将会处于刚被激活时的状态,该操作不可逆,即任何在目标主机上已进行的操作在重置后都不会被保留。

每一台目标主机被激活后的默认存活时间为24小时,若希望延长时间,可以在剩余时间不多时点击倒计时左侧的“Extend Time”按钮,之后便会获得一定的延长时间,如图1-60所示。

图1-59 “Reset Machine”按钮的位置

图1-60 “Extend Time”按钮的位置

完成实战后,按照Hack The Box平台的要求,我们需要先停止当前主机,才能重新激活另一台目标主机,可以按如图1-61所示的方式直接点击“Stop Machine”按钮停止对当前目标主机的操作。

如果希望断开与Hack The Box平台的VPN连接,直接在之前输入openvpn HTB.ovpn命令的终端通过组合键Ctrl+C停止运行OpenVPN即可。同理,后续如果需要重新连接该VPN,可再次运行openvpn HTB.ovpn命令实现。

以上便是Hack The Box平台上目标主机相关的基础操作,除了上面介绍的内容以外,Hack The Box平台上还有大量其他类型的主机,大家可以自行探索!

图1-61 “Stop Machine”按钮的位置

最后要说明的是,Hack The Box平台上的付费政策默认是连续包月的,即会在每月自动进行扣款,因此如果大家不需要连续包月,请务必在如下链接上取消:

https://app.hackthebox.com/profile/subscriptions

取消后便仅能使用30天,到期可再手工续费,如图1-62所示。

图1-62 取消连续包月

续费后若下个月不再使用,依然需要提前取消连续包月。 xSNUiEeK8Slq8M6r+vTj2Ylgd3GN8YIohAdn0w7v5344Sd0flhGUK4uinNvoOSbS

点击中间区域
呼出菜单
上一章
目录
下一章
×