1 实验环境

  1. 操作系统版本:Windows 11 家庭中文版23H2
  2. VMware® Workstation 16 Pro:16.2.3 build-19376536
  3. Metasploitable2虚拟机版本:2.6.24-16-server
  4. Kali虚拟机版本:6.6.9-amd64

2 实验内容

Metasploitable2是一个特意设计用来进行渗透测试和漏洞分析的虚拟机。它基于Ubuntu Linux操作系统,包含了大量的已知漏洞,以便安全专业人员和研究人员可以使用渗透测试工具,如Metasploit等,来测试和验证其安全性。

Kali Linux是一种基于Debian Linux的渗透测试和网络安全分析的专用发行版。它旨在为安全专业人员、渗透测试人员和网络管理员提供一个功能强大的平台,用于评估系统和网络的安全性,并测试安全防御的有效性。Kali Linux包含了大量的渗透测试工具和网络安全工具,包括Metasploit框架、Nmap、Wireshark、Aircrack-ng等。这些工具涵盖了从信息收集、漏洞分析到渗透测试和数据包嗅探等多个方面,使用户能够全面地评估和测试目标系统的安全性。本次实验在这两个虚拟机上进行。

2.1 登录Metasploitable2,设置安全级别

在Metasploitable2虚拟机中输入用户名和密码进行登录,之后输入“ifconfig”命令查看本虚拟机的IP地址。

图2.1 查看Metasploitable2虚拟机IP地址

如图2.1所示,虚拟机的IP地址是192.168.77.132,之后启动Kali虚拟机,并打开火狐浏览器,访问网址192.168.77.132,如图2.2所示,访问成功。

图2.2 Kali虚拟机中访问Metasploitable2服务器

点击进入DVWA服务,设置网站的密码强度,这里设置密码强度为“low”,并点击点击“submit”进行提交,在后面还对密码强度为“high”进行测试。

图2.3 设置密码安全性

对Kali虚拟机的浏览器设置代理,设置代理服务器通常需要指定代理服务器的地址和端口号,浏览器会将所有的网络请求发送到代理服务器,然后由代理服务器来转发请求和接收响应。如图2.4所示,浏览器将向地址为192.168.77.132发送的所有网络请求转发到127.0.0.1地址的80端口。

图2.4 对浏览器设置HTTP代理

之后打开Kali虚拟机的Burpsuite面板,设置监听端口为127.0.0.1:80,界面如图2.5所示,之后开启Burpsuite拦截。

图2.5 设置监听地址

开启拦截之后,返回浏览器,在Brute Force中输入一个用户名和密码,并点击登录。

图2.6 输入用户名和密码进行登录

点击登录之后,Burpsuite工具就可以在后台捕获到用户输入的用户名和密码,如下图2.7所示。

图2.7 Burpsuite捕获到的内容

选择这段捕获的内容,右键点击“send to intruder”,可以将选定的HTTP请求发送到Burp Suite的Intruder工具中。

Burp Suite的Intruder工具是一种非常强大的功能,它可以自动化地对目标进行定制的攻击,比如暴力破解、参数枚举、字典攻击等。发送请求到Intruder之后,用户可以配置不同的攻击参数,比如负载、位置标记等,然后启动攻击并查看攻击结果。之后标记要破解的内容,即用户名和密码。如图2.8所示。

图2.8 标记要破解的内容

在后面的攻击中,会使用到Payloads工具。Payloads是在渗透测试或攻击中发送到目标系统的恶意或特定目的的数据。Payloads的作用是利用目标系统的漏洞或弱点,以实现攻击者的目标,比如获取敏感信息、执行代码、拒绝服务等。

打开“Payloads”标签,设置两个Payloads,如图2.9所示:

图2.9 设置Payloads set1

在Burp Suite的Intruder工具中,可以设置Payloads为字典类型,用于进行字典攻击。字典攻击是一种常见的密码破解技术,通过尝试大量的可能性,从预先准备好的字典文件中逐个测试密码,直到找到正确的密码为止。如图2.9所示,在Payload set2中导入kali已经存在的字典文件。

图2.10 设置Payloads set2

在配置完Payloads、设置好攻击目标后,点击“Start Attack”按钮,Burp Suite Intruder将会开始发送预设的攻击请求到目标系统,并根据配置的Payloads对每个请求进行定制化攻击,并开始尝试不同的Payloads以便发现漏洞或弱点。如图2.11所示,一旦攻击开始,用户可以实时地监视攻击进度并查看攻击结果。

图2.11 攻击得到的结果

可以发现在所有分析结果中,只有23这条数据的长度与其他不同,这里长度的概念需要明确,指的是当我们以每条数据所示的用户名和密码去网站进行登录测试时,系统返回的数据包的长度。由此可以推测,当密码错误时,可能返回的长度是一种,当用户名和密码正确时,系统返回的数据包长度肯定是另一种,所以推测23条所示的用户名和密码很有可能是正确的。

接下来使用这对用户名和密码在网站中进行测试,测试结果如图2.12所示,输入用户名admin和密码password后点击“Login”,系统返回信息“Welcome to the password protected area admin”,登录成功,说明我们密码爆破成功!

图2.12 测试结果

2.2 设置安全级别为高,并进行密码爆破

我们将DVWA的密码强度改为“high”,并进行同样的操作进行测试,结果如图2.13所示。

图2.13 攻击得到的结果

密码爆破结果与安全等级为“low”没有什么区别,但是在爆破的过程中明显感觉到破解的速度变慢了,并且length字段的值也变大了。

2.3 密码爆破防御方法

密码爆破是一种常见的攻击手段,用于尝试在短时间内通过不断尝试各种可能的密码组合来破解账户的登录凭据。为了防止密码爆破攻击,可以采取以下几种防御方法:

  1. 强密码策略:实施强密码策略,要求用户设置复杂度高、长度足够的密码。这些密码应该包含大写字母、小写字母、数字和特殊字符,并且不容易被猜测到。
  2. 账户锁定:当用户连续多次输入错误密码时,可以暂时锁定账户,阻止进一步的登录尝试。这可以有效防止密码爆破攻击。
  3. 登录失败延迟:在每次登录失败后,增加一定的延迟时间再次尝试登录。这样可以减缓攻击者的速度,使得密码爆破攻击变得更加困难。
  4. 验证码:引入验证码机制,在用户登录时要求输入额外的验证码,只有在验证码验证通过后才能继续进行密码验证,从而有效防止自动化的密码爆破攻击。

通过以上这些措施的综合应用,可以有效地提高系统对密码爆破攻击的抵御能力,保护用户账户和系统安全。


3 实验总结

在进行了部署Metasploitable2渗透测试平台,并尝试了不同安全级别下的密码爆破攻击后,我对密码爆破防御方法有了更深入的认识。

总结实验1和2的结果,我认识到密码爆破防御是多层次、多方面的。除了密码复杂度要求外,还需要结合账户锁定、登录失败延迟、验证码、多因素认证等措施,形成一个完整的密码爆破防御体系。

通过这次实验,我对密码爆破攻击及其防御方法有了更深入的理解,并且认识到密码安全对于系统安全至关重要,需要综合考虑各种防御手段,以确保系统的安全性和稳定性。