2.2.1 操作系统安装
考虑 CTF 竞赛题目的一般情况,大部分二进制相关的赛题都是以 Linux 操作系统为背景的,而非二进制赛题(如Web题)较少受到操作系统的影响,因此,不妨选择基于Ubuntu操作系统来搭建CTF学习环境。如果你现在不是工作在Ubuntu系统下,那么可以通过虚拟机来创建一个Ubuntu操作系统。在下文中,以Windows 10系统下的VMware虚拟机为例,介绍Ubuntu 20.04 LTS版本的安装及配置。
首先在Windows 10系统上安装VMWare Workstation软件,并在Ubuntu的官方网站上下载Ubuntu 20.04 LTS的.iso镜像文件。
打开安装好的VMware Workstation,单击“创建新的虚拟机”按钮;在弹出的“新建虚拟机向导”对话框中单击“典型配置”按钮,然后单击“下一步”按钮;在出现的对话框中选择之前下载的Ubuntu 20.04 LTS镜像文件,VMware会自动识别操作系统的版本,单击“下一步”按钮即可;根据提示填写“简易安装信息”,然后单击“下一步”按钮;命名虚拟机并为其选择适当的存储位置,然后单击“下一步”按钮。
其他配置均可使用默认值,根据提示连续单击“下一步”按钮,Ubuntu 20.04 LTS系统将自动开始安装,系统安装完毕后,VMware还将自动安装VMware Tools,以提高用户后续的使用体验。
Ubuntu通常采用包管理工具apt来安装及更新软件。为了提高apt下载软件的速度和稳定性,可以为其设置一个国内的更新源。例如,通过命令“sudo gedit /etc/apt/sources.list”来打开更新源文件,可将其修改为清华大学的更新源。
更新源设置完毕后,可以通过执行以下命令对Ubuntu上的软件进行更新。
sudo apt clean sudo apt update sudo apt upgrade sudo apt dist-upgrade
vim是Linux操作系统下的一款强大的编辑器,它可以帮助用户完成许多工作,使用户无须过多地安装其他编辑器或IDE,可以通过执行命令“sudo apt install vim”来安装vim。
net-tools 是 Linux 操作系统下的一款实用的网络配置工具箱,包含 ifconfig、netstat、hostname、route、arp、rarp、iptunnel等一系列网络配置工具,可以通过执行命令“sudo apt install net-tools”来进行安装。
Ubuntu 20.04 LTS已经默认安装了Python3,可以通过执行命令“where is python”查看,此时会看到形如“/usr/bin/python3.x”的文件夹存在。如果系统中有多个版本的Python,可以通过执行命令“which python”查看当前使用的是哪一个版本的 Python。需要说明的是,该命令的返回可能为空,这并不是因为没有安装Python,而是因为当前使用的 Python 无法被系统关联到 python 形式的终端命令上。在这种情况下可以通过执行命令“ln -s /usr/bin/python3 /usr/bin/python”来添加软链接,解决系统关联问题,方便在终端中使用。
为了便于后续安装各种CTF辅助工具及软件,还可以在Ubuntu系统上安装其他包管理工具,常用的有pip、gem、git等,安装命令如下。
// 安装 pip sudo apt install python3-pip // 安装 gem sudo apt install ruby // 安装 git sudo apt install git
小贴士:与apt类似,pip等包管理工具也是通过更新源来安装或更新软件的,将其更新源设置为国内更新源能够提高速度和稳定性。具体的更新源设置方法可以通过搜索引擎来获取,限于篇幅,本书就不展开介绍了。
至此,一个基于VMware虚拟机的Ubuntu系统就安装完毕了,并已经为其配置好了更新源及多种包管理工具。后续可针对不同的CTF竞赛题型,方便地安装其他必要的辅助工具及软件。使用 VMware 还有一个额外的好处是可以方便地保存系统快照,无须担心某些攻击操作造成系统损坏,在一些情况下,灵活地利用这一点可以极大地提升工作效率。