华域联盟 黑客技术 PwnLab CTF 演练第 1 部分:侦察和数据提取

PwnLab CTF 演练第 1 部分:侦察和数据提取

欢迎大家回来!这是我们推出的新系列中的第一个,它将引导您完成各种夺旗 (CTF) 挑战。为了轻松进入这个新系列,我们现在将花一点时间详细介绍 CTF 挑战是什么(对于那些还不知道的人)。然后,我们将在 PwnLab: init CTF 挑战中进行黑客攻击。那么,让我们开始吧!

什么是 CTF 挑战?

简而言之,CTF 挑战是一个系统故意配置了易受攻击的软件,其唯一目的是进行黑客攻击。入侵 CTF 时,“玩家”(攻击者)必须找到并利用这些漏洞才能访问包含该标志的文本文件。一旦标志被读取,游戏就赢了!

您可能想知道这如何帮助我们成为更好的黑客。好吧,我对这个问题的直接回答是:熟能生巧!如果我们真的花时间玩这些 CTF 挑战,我们就会面临 比我们通常看到的更广泛的攻击通过自己查看和使用这些攻击,我们可以更好地了解它们的工作原理,从而使我们成为更好的黑客。现在我们知道了 CTF 是什么以及玩它们获得的好处,让我们开始破解我们的第一个 CTF 挑战吧!

破解 PwnLab:init CTF

我们将尝试的第一个 CTF 挑战是 PwnLab: init这是一个相对容易完成的 CTF,所以它是我们开始的完美候选人!当我们下载 PwnLab 时,它是一个虚拟机,所以我们可以在 VirtualBox 中运行它,这就是我们将在这里做的事情。这个 CTF 可能会有点长,所以我们要把 pwnage 分成两部分。这部分将是侦察和准备攻击,下一部分将是利用和特权升级。让我们开始黑客攻击吧!

第 1 步:寻找目标

如果我们要破解 PwnLab,我们需要知道它的地址!由于 PwnLab 配置为通过 DHCP 自动获取 IP 地址,因此我们需要运行扫描以查看其地址。所以,我们将开始扫描,然后我们将启动 PwnLab VM,我们将获得地址。我们将从 BackTrack 破解 PwnLab,因此我们将使用 netdiscover首先,我们需要找到在 netdiscover 中使用的地址范围。我们可以为此使用 ifconfig命令:

获取 IP 信息和网络发现命令

我们可以看到我们的地址是 10.130.10.18,子网掩码是 255.255.255.0。通过将该信息表示为 CIDR 表示法,我们可以推断我们需要扫描 10.130.10.0/24 范围的 IP 地址。netdiscover 工具有 很多输出,所以我也输入了命令。现在我们已经准备好扫描,让我们执行它。我们需要花一点时间来收集结果,然后我们将启动我们的 VM。完成后,我们应该会在扫描结果中看到一个新主机:

找到的目标

我们可以在 netdiscover 输出的末尾看到我们有 out 目标的 IP 地址 10.130.10.41。现在我们有了这个地址,我们可以对目标进行一些侦察。

第 2 步:使用 Nmap 执行端口扫描

为了在我们的目标上找到潜在的漏洞,我们需要知道哪些端口是开放的,以及哪些服务正在侦听这些端口。为了找到这个非常有价值的信息,我们将使用 nmap执行端口扫描。让我们看看命令和输出,然后我们将讨论幕后发生的事情:

nmap-结果

我们可以看到,我们不仅使用了 nmap,而且还提供了各种标志和开关来自定义我们的扫描。我们已禁用主机检查 (-Pn)、启用 SYN 扫描 (-sS) 和启用服务检测 (-sV)。我们还指定我们只想扫描端口 1 到 4000。然后,我们将输出通过管道传输到一个名为 nmap.txt 的新文本文件中。这样我们就可以随时再次查看扫描结果,而无需重新扫描目标。

从我们的扫描结果可以看出,PwnLab 正在托管一个 MySQL 数据库和某种网站。该数据库可能包含一些甜蜜的东西,但我想我们先看看这个托管在端口 80 上的 Web 服务器。

第 3 步:分析 Web 应用程序的漏洞

由于我们知道 PwnLab 上托管了一个 Web 应用程序,因此我们将看看是否可以找到任何可以利用的漏洞。我们将首先将浏览器指向 PwnLab 的 IP 地址。一旦我们这样做,我们应该会看到这样的主页:

pwnlab-第一个菜单

主页上没有什么特别突出的,所以让我们转到登录页面,看看是否有什么突出的地方:

可能的 lfi

当我们移动到登录页面时,我们可以看到 URI 在选择新资源时发生了变化。经过一番研究,我发现这种资源选择存在本地文件包含漏洞。本地文件包含 (LFI) 可以帮助我们读取原本无法读取的文件。在这种情况下,我们可以使用它来读取运行 Web 应用程序的 PHP 脚本的源代码。我们必须使用 LFI 的变体,它使用内置的 PHP 转换器将源代码转换为 base64,以便我们可以解码和读取它。

第 4 步:检索和查看登录 PHP 脚本源代码

为了利用这个 LFI 漏洞,我们只需要修改 URI 并将 base64 转换器指向 login.php 资源。完成后,我们应该会看到如下结果:

lfi-on-base64-encoded-login-script

我们去吧!我们成功地利用了 LFI。现在我们需要检索这个 base64 字符串并对其进行解码以获取登录 PHP 脚本源代码。我们可以通过重新使用当前 URL 并将其提供给 curl命令来下载 base64 字符串,我们还将将输出保存到名为 tmp.txt 的文件中。现在让我们这样做:

卷曲 l​​fi 文件

现在,curl 命令还将保存网页的其余源代码,所以我们需要打开一个文本编辑器并删除 HTML 标签,这样我们就只剩下 base64 字符串了;我会把它留给你。现在我们在一个文本文件中有我们的 base64 字符串,我们可以对其进行解码并删除我们的临时文件。文件。现在让我们解码base64:

转换为纯文本

我们已经解码了 base64 并将输出存储在一个新的文本文件中。然后我们删除我们不再需要的临时文件。现在我们有了登录页面源代码,我们来看看它:

查找配置文件

第 5 步:检索和查看配置 PHP 源代码

我们可以在这里看到登录 PHP 源代码的最开始,它需要来自另一个名为 config.php 的资源的代码。由于 LFI 适用于登录 PHP 脚本,它也应该适用于配置 PHP 脚本。我不会再经历整个过程,因为它与我们之前采取的步骤完全相同。但是,我将发布包含所有步骤的屏幕截图。让我们下载并解码 config.php 源代码:

通过 php-lfi 获取配置文件

现在我们有了 config.php 源代码,我们可以看到 PwnLab 试图向我们隐藏的内容:

阅读配置源

啊哈!我们在 config.php 源代码中找到了用户名和密码。我敢打赌,这些是我们之前看到的登录 MySQL 数据库所需的凭据!

第 6 步:登录并探索 MySQL 数据库

现在我们有了进入 MySQL 数据库的凭据,我们可以登录并查看他们试图对我们隐瞒什么好东西。我们可以使用安装在 BackTrack 上的默认 MySQL 客户端登录并浏览 MySQL 数据库。一旦我们将所有信息提供给我们的客户端,我们应该会收到密码提示,一旦我们输入密码,我们应该会收到 MySQL 提示。现在让我们登录数据库:

连接到数据库

我们去吧!我们被盗的凭证已检出,现在我们可以访问数据库。现在我们可以使用 show和 use命令来查找和选择数据库,并显示该数据库中的表。让我们从使用show命令查找数据库开始 :

显示数据库

当我们执行我们的 show 命令时,我们会返回一个名为 Users 的数据库。这一定是他们保存所有用户密码的地方!让我们使用 use命令来选择这个数据库,然后我们将使用 select 命令从中提取所有数据:

选秀表

找到密码

一旦我们从用户表中提取了所有条目,我们就会得到一个用户名和密码表。但是,密码似乎是用 base64 编码的。但是,对于像我们这样坚定的攻击者来说,这不是问题!

第 7 步:检索和解码凭证

我创建了一个名为 users.txt 的新文件,并在其中存储了用户名和密码。我们现在可以通过使用 echo命令和 base64 命令来解码每个密码。我们将从解码 kent 的密码开始:

解码密码

现在我们只需要对其他两个用户名重复这个过程,我们最终会得到如下所示的凭据:

完成的用户文件

现在我们有了凭据,我们可能会在我们之前使用的 Web 应用程序中造成更大的破坏!但是,我们将把它留到下一部分,因为我们在这里已经造成了足够多的伤害。

今天,我们介绍并演示了 LFI 的概念和使用本地工具进行的基本数据提取。在下一部分中,我们将使用这些新发现的凭据来访问 Web 应用程序的功能,从而访问 PwnLab 服务器。然后我们将执行一些特权升级并捕获该标志!v

本文由 华域联盟 原创撰写:华域联盟 » PwnLab CTF 演练第 1 部分:侦察和数据提取

转载请保留出处和原文链接:https://www.cnhackhy.com/157351.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

Pureblood——信息收集和安全审计工具

如何查找和使用公共漏洞利用代码

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部