靶机是一种用于渗透测试训练和实验的虚拟或物理机器,它故意设置了一些漏洞或弱点,让渗透测试人员或学习者可以尝试攻击和利用它们。靶机可以帮助我们学习和练习渗透测试的技能,提高我们的安全意识和防御能力。靶机可以有不同的难度级别(从简单到困难)、不同的操作系统(从Windows到Linux)和不同的场景(从Web应用到网络服务)。靶机可以自己搭建,也可以从网上下载或在线访问。
接下来,我们将搭建两个常用的靶机,以方便我们后续的渗透测试练习。
DVWA(Damn Vulnerable Web Application)是一套使用PHP+MySQL编写的Web安全测试框架,它的主要目的是让安全从业人员或学习者在一个合法的环境中测试他们的技能和工具,并帮助Web开发者更好地理解Web应用安全。DVWA经常作为安全教学和学习的辅助工具。
在搭建DVWA测试框架之前,首先需要将其下载到本地。DVWA以开源的形式托管在GitHub上,可在Kali Linux终端环境下执行git clone https://github.com/digininja/DVWA /var/www/ html/DVWA命令将其下载到Kali Linux的网页目录中,如图1.42所示。
图1.42 下载DVWA
在DVWA下载完毕后,需要修改DVWA目录的操作权限,以确保能操作文件夹中的所有文件。为此,在Kali Linux终端下输入命令chmod 777 -R DVWA/,为DVWA目录下的所有目录及文件赋予最高权限,如图1.43所示。
注意: 在chmod 777-R DVWA命令中,参数R表示递归操作。有关chmod命令以及更多参数的具体用途,读者可自行搜索相关资料进行学习。
图1.43 修改DVWA目录的操作权限
在安装DVWA之前,需要先将必要的服务启动。为此,输入命令service apache2 start,启动Apache服务器。然后输入命令service mysql start,启动MySQL数据库,如图1.44所示。
图1.44 启动必要的服务
由于DVWA默认禁止以root用户的身份登录,所以我们需要登入MySQL数据库并在其中添加新的用户。Kali Linux默认安装了MariaDB数据库,这是MySQL数据库的一个分支。该数据库与MySQL数据库基本一致,在Kali Linux中启动MySQL数据库,就是启动MariaDB数据库。首先登录数据库,在终端中输入命令mysql -u root,如图1.45所示。
图1.45 登录MariaDB数据库
在进入数据库之后,首先创建DVWA数据库。为此,输入命令create database dvwa;创建DVWA使用的数据库。然后,执行命令show databases;查看DVWA数据库,以确认数据库是否创建成功,如图1.46所示。
图1.46 创建DVWA数据库
在成功创建数据库之后,还需要对远程访问进行授权。为此,在数据库中输入命令grant all privileges on *.* to dvwa@127.0.0.1 identified by"123qwe";进行远程授权。在该命令中,all表示所有权限,*.*表示所有库下的所有表,dvwa则表示新建的MariaDB数据库用户名,127.0.0.1表示允许IP地址为127.0.0.1的主机进行访问,“123qwe”表示新建的数据库用户的密码,如图1.47所示。
图1.47 对远程访问进行授权
授权完毕后,可输入命令exit退出,也可以按Ctrl+C组合键退出。
接下来,需要对配置文件进行简单的修改。首先进入DVWA目录并查看该目录下的文件构成,如图1.48所示。
图1.48 DVWA目录
DVWA目录中包含多个目录,但是常用的目录只有config和vulnerabilities这两个。其中,config目录存放的是DVWA的配置文件,vulnerabilities目录存放的是DVWA包含的漏洞实例源码。
进入config目录,可以发现里面有一个config.inc.php.dist文件,该文件用来生成配置文件的副本。执行命令cp config.inc.php.dist config.inc.php,将该文件额外复制一份,并将额外复制的文件作为配置文件,如图1.49所示。
图1.49 复制文件
接下来,保持config.inc.php.dist文件不动,修改生成的副本文件config.inc.php。在Kali Linux终端下输入命令vim config.inc.php,修改的代码行如代码清单1.2所示。
$_DVWA[ 'db_server' ] = '127.0.0.1'; //MariaDB数据库的地址
$_DVWA[ 'db_database' ] = 'dvwa'; //数据库名
$_DVWA[ 'db_user' ] = 'dvwa'; //数据库用户名
$_DVWA[ 'db_password' ] = '123qwe'; //数据库密码
如果读者是按照前文的内容一直操作到这一步,接下来只需要将密码修改为之前设置的“123qwe”,然后保存并退出即可。修改完配置文件后,需要重新启动Apache服务。
重新启动Apache后,在Firefox浏览器的地址栏中输入地址http://127.0.0.1/DVWA/setup. php,这将启动DVWA的安装检查,如图1.50所示。
在图1.50中可以看到,这里需要将allow_url_fopen选项和allow_url_include选项打开。其中,allow_url_fopen选项用于激活URL地址形式的fopen封装,使其可以访问URL对象文件;allow_url_include选项则用于激活包含URL地址并将其作为文件处理的功能。
下面,我们将打开这两个选项。首先需要修改php.ini文件,进入/etc/php/7.4/apache2/目录下,然后在终端中输入命令vim php.ini将其打开。找到allow_url_fopen选项和allow_url_include选项,然后修改为On保存并退出即可,如图1.51所示。
在修改完php.ini文件后,重启Apache服务器,然后刷新图1.50所示的界面,可以看到这两个选项当前是开启的,如图1.52所示。
图1.50 安装检查
图1.51 修改php.ini文件
图1.52 开启选项
接下来,单击图1.52下方的Create/Reset Database按钮,将DVWA的数据库文件导入MariaDB数据库中。等待大约5秒后,浏览器中会显示DVWA的登录界面,如图1.53所示。
在图1.53中输入默认的用户名和密码(分别为admin和password),即可进入DVWA的主界面。
至此,DVWA靶机环境安装完成。使用DVWA进行渗透测试的细节会在后文进行演示。
图1.53 DVWA登录界面
除了DVWA靶机,还有许多其他的靶机,比如WebGoat、Ghost、Mutillidae等靶机。相较之下,OWASP靶机提供的环境更多,且包含上面提到的这些靶机环境,所以这里再介绍一下OWASP靶机的安装和使用。
访问地址https://sourceforge.net/projects/owaspbwa/files/下载OWASP靶机。下载好后解压靶机文件。因为OWASP靶机文件是虚拟机文件,因此可以直接用虚拟机打开,不过建议打开前先修改虚拟机的运行内存(只需要512MB运行内存即可)。
注意: 将OWASP靶机的网络适配器改成与Kali Linux一样。作者的Kali Linux是桥接模式,所以OWASP也是桥接模式。
配置完毕后启动OWASP靶机,即可进入系统界面,如图1.54所示。
图1.54 OWASP靶机的系统界面
此时,系统要求输入用户名和密码。OWASP靶机的默认用户名为root,默认密码为owaspbwa,输入后即可登录成功,如图1.55所示。
在浏览器中输入靶机系统的地址(这里为http://192.168.8.109),即可进入OWASP靶机系统的Web界面,如图1.56所示。
注意: 在使用OWASP靶机时需要注意,在登录该系统自带的其他靶机环境时,使用的用户名和密码可能不是OWASP靶机默认的用户名root和密码owaspbwa,而是户名admin和密码admin。在登录时可以用这两个用户名密码组进行尝试。
图1.55 成功登录OWASP靶机系统
图1.56 OWASP靶机系统的Web界面
至此,常用的靶机环境已经全部部署好。