凭据教程

凭据提供了进入各种帐户和系统的网关,可能提供对网络上其他目标的访问,并导致从这些目标提取机密数据。因此,作为渗透测试的一部分,重要的是发现和呈现凭证数据,这些数据迫使组织加强和实施复杂的密码策略,以防止密码重用和弱密码等漏洞。

作为安全审核的一部分,您可能需要测试密码策略的强度,并验证它们是否满足最低行业要求。要做到这一点,您需要利用暴力、网络钓鱼和漏洞攻击等方法来收集密码,以便识别组织使用的弱密码、常用密码和顶级基本密码。一旦您实际拥有凭据,您就可以尝试在其他目标上重用它们,以便可以审核密码使用情况并识别被盗凭据在网络中的影响。

为了帮助您更好地理解在Metasploit中如何获取、存储和使用凭证,本教程将向您展示如何利用易受Microsoft Security Bulletin (MS08-067)攻击的Windows XP目标,获得对系统的访问权,从它收集凭证,并重用这些凭证,以确定可以在其上使用它们的其他目标。

在你开始之前

在你开始学习本教程之前,请确保你掌握了以下内容:

  • 访问Metasploit Pro实例。
  • 访问具有MS08-067漏洞的易受攻击的目标。
  • 可以从Metasploit Pro实例访问其他系统,以测试凭证重用。

你应该知道的术语

  • Bruteforce-一种密码猜测攻击,系统性地尝试使用一组用户提供的凭据对服务进行身份验证。
  • 资质-公用、专用或完整的凭据对。凭证可以与域相关联,但不是必需的。
  • 凭证重用-一种密码猜测技术,尝试使用已知凭证对目标进行身份验证。
  • 凭证类型—明文密码、SSH密钥、NTLM哈希或不可重放哈希。
  • 登录- 与特定服务相关联的凭据。
  • 起源—凭据的来源。来源指的是如何获得凭证或将凭证添加到项目中,例如通过Bruteforce Guess、利用、手动输入或导入的单词列表。
  • 王国-凭证所属的数据库架构的功能分组。领域类型可以是域名、Postgres数据库、DB2数据库或Oracle系统标识符(SID)。
  • 私人—明文密码、hash或SSH私钥。
  • 公共——用户名。
  • 验证证书—已成功通过目标身份验证的证书。

教程目标

本教程将带领您完成以下任务:

  • 创建项目
  • 扫描一个目标
  • 检查MS08-067
  • 利用和ms08 - 067
  • 收集凭据
  • 查看证书
  • 验证证书
  • 重用的凭证

创建一个项目

我们需要做的第一件事是创建一个项目,它将包含工作空间并存储我们将在本教程中收集的数据。

要创建项目,请选择项目>新建项目从全局菜单栏。

新项目页面出现并显示配置表单,我们需要定义项目名称、描述和网络范围。

扫描目标

我们需要做的下一件事是在我们的目标上运行Discovery Scan,以指纹系统并枚举开放的端口和服务。我们将使用扫描数据来识别潜在的漏洞和攻击向量,可以利用目标。

要访问发现扫描,请单击扫描按钮位于概述页面。

当出现配置页面时,我们需要定义我们想要锁定的主机的地址。由于我们不需要自定义任何额外的设置,我们可以对扫描的其余部分使用默认设置。

现在我们开始扫描。

扫描完成后,我们需要查看它能够收集到的有关主机的数据。要查看主机数据,请选择分析>主持人从项目选项卡栏,然后单击主机名。

查看主机详细信息,我们可以看到目标是具有8个开放服务的Windows XP系统。

我们还可以看到端口445和139处于打开状态,这表明目标可能容易受到MS08-067的攻击。

检查是否有漏洞

现在我们有了一个潜在的漏洞,让我们进行一次曝光扫描来确认我们的怀疑。暴露将根据我们前面列举的服务识别主机可能存在的任何漏洞。

我们已经通过全局设置设置了我们的曝光控制台,所以我们可以继续并启动曝光扫描。

我们需要选择要使用的Nexpose控制台,定义我们要扫描的目标,然后选择我们要使用的扫描模板。出于我们的目的,我们将使用渗透测试审计模板,它将只使用安全检查扫描目标。由于我们没有为扫描提供任何凭据,也不需要指定任何额外的扫描设置,所以我们可以使用默认扫描配置启动扫描。

扫描完成后,再次查看主机数据,以确定exposed能够找到的任何漏洞。从列表中可以看到,MS08-067被列为已发现的漏洞之一。

利用目标

现在我们已经确认我们的目标缺少MS08-067补丁并且容易被利用,我们准备好利用目标了。

要利用MS08-067漏洞,我们需要在模块数据库中搜索匹配的漏洞。

搜索将返回与查询匹配的结果。单击模块名称以打开其配置页面。

配置页面向我们提供了关于模块的一些基本信息,比如它的类型、排名、披露日期、漏洞的引用id,以及模块是否对目标授予了高权限。

您可以配置为微调漏洞的目标,有效载荷,模块,逃避和高级选项。

至少,我们需要定义目标地址和目标端口(RPORT)。我们的目标是在端口139和445上运行SMB服务,因为我们只能为模块运行设置一个RPORT,所以我们将继续使用已经为我们预定义的默认目标。

我们要做的下一件事是配置有效载荷设置。由于我们正在尝试利用Windows目标,因此我们将想要一个仪表有效载荷类型。我们会离开汽车Metasploit将自动为我们选择一个兼容的有效负载连接类型。在大多数情况下,Auto选项将选择反向连接,因为它更有可能在目标机器和攻击机器之间建立连接。

现在可以运行模块了。单击运行模块按钮启动漏洞。

当攻击完成时,我们可以从任务日志中看到,我们能够成功地在目标上打开会话,这将使我们能够与目标交互,以完成收集系统信息和收集凭据等操作。

收集凭证

要进入公开会议,我们需要去会话列表并单击会话ID。这将打开会话页面,该页面将显示我们可用的命令列表。

我们将使用的命令是收集系统数据,这样我们就可以从系统中获取哈希值和密码。

除了哈希值和密码,我们还可以收集其他证据,比如系统信息文件、服务列表、诊断日志和屏幕截图。

运行收集任务时,任务日志将显示并显示发生的事件。

查看项目中的凭据

现在我们能够从目标中抢夺一些凭证,让我们来看看商店和显示它们。要查看存储在项目中的所有凭据,我们需要选择凭证>管理.当管理证书页面出现时,将显示当前存储在项目中的所有凭据,如下所示:

对于每个凭据,Metasploit显示以下数据:登录、私有、公共、领域、来源、验证状态、标记和私有类型。

验证凭证

现在我们有一个凭据列表,我们可以通过并验证它们,看看它们是否实际上可以用于登录目标。为此,我们需要访问单一凭据视图。单个凭据视图将向我们向我们展示特定凭证的元数据和相关登录。

让我们看一下列表中的第一个凭证。要查看凭证的详细信息,我们需要单击用户名。

单个凭据视图如下所示:

我们可以看到此凭据的公共值,私有价值,私有类型和相关登录。早些时候,我们将登录名作为可以针对特定服务使用的凭据。在这种情况下,当凭据从被剥削的目标抢劫时,将自动创建登录。Metasploit检测到抢劫的凭证是NTLM哈希,这意味着它们可以与SMB一起使用。基于此假设,Metasploit创建了凭证和SMB服务的登录。

要验证登录,我们需要单击验证关键。

验证登录名时,您将看到验证状态更改为“验证”。验证完成后,如果无法对服务进行身份验证,则状态将更改为“未验证”。否则,如果能够成功对服务进行身份验证,则状态将更改为“已验证”。

凭证的验证成功,如下所示:

重新使用已验证的凭据

现在我们已经有了一个已知且有效的凭据,我们可以尝试重用该凭据来登录到其他系统。由于密码重用是一个常见问题,因此凭证可能与我们项目中的其他目标一起工作。为了用其他目标测试凭据,我们将使用凭据重用特性。凭据重用特性提供了一个有指导的工作流,帮助您选择目标和凭据,这些目标和凭据将被系统地测试以进行身份验证。

要访问凭据重用,我们需要选择凭证>重用从项目任务栏。

凭据重用出现页面,它将显示可用于测试的目标。这些目标基于项目中的主机和服务。

我们要做的第一件事是选择要测试凭证的目标。继续并选择项目中的所有目标。我们需要单击添加目标按钮,在选择要添加到工作流的凭据之后。

现在点击资格证书选项卡。类似于目标选项卡,我们需要选择要添加到工作流程的凭据。我们将重用我们在上一个任务中验证的凭据。由于我们知道此凭据在端口445上的SMB服务有效登录,我们希望查看我们是否可以在其他SMB服务中重用它。

单击下一个按钮以查看所选内容。

如果一切顺利,我们可以发动进攻。

当任务完成时,我们可以看到已验证的凭证总数、已验证的目标总数和已成功登录的总数。现在我们有了更多的有效登录,我们可以尝试重用它们,找到可以被破坏的其他目标和可以重用的其他登录。这个过程可以继续,直到我们不再能够在任何其他目标上重用凭据为止。