原文:https://resources.infosecinstitute.com/goldeneye-1-ctf-walkthrough-part-1/

在本文中,我们将为读者详细介绍如何完成由作者Creosote发表在VulnHub上的一个CTF挑战,即“GoldenEye 1”。根据该挑战题目作者的介绍,这是一个中等难度的CTF挑战,目标是获取隐藏在root目录中的旗标。

VulnHub是这样一个平台:提供大量的含有漏洞的机器,让安全从业者通过实践的方式,丰富自己在信息安全方面的经验。这种做法的最大优点是,为用户提供了一种安全且合法的环境,在这个环境中,可以通过一系列挑战题目来学习和砥砺自己的黑客技能。

为了搞定这个挑战题目,首先需要搭建相应的机器环境。为此,可以从这里下载对应的VM,以便在Virtual Box中运行它。

请注意:对于本文推荐下载的虚拟机,都是在Oracle的Virtual Box环境下运行的。其中,我们使用Kali Linux作为迎接该CTF挑战的攻击方机器。需要声明的是,文中所述的技术仅限于教育目的,否则的话,责任自负。

闯关过程


在Virtual Box中下载并运行相关的虚拟机后,我们需要找到目标机器的IP地址。为此,首先运行Netdiscover命令,来获取目标计算机的IP地址。下图给出了该命令的输出结果:

使用的命令:Netdiscover

如图所示,对于本CTF挑战来说,目标机器的IP地址为109.168.1.10。

请注意:攻击目标和攻击方计算机的IP地址可能跟这里显示的不同,具体取决于您的网络配置。

接下来,让我们开始考察这个机器。第一步是找出目标机器上可用的端口和服务。为此,可以在目标机器使用Nmap进行全端口扫描,具体如下图所示。

使用的命令: nmap 192.168.1.10 -Pn -p- -sV

如上图所示,目标计算机上有4个可用的开放端口。由于目标机器上的端口80是开放的,所以,不妨先检查应用程序。利用浏览器访问目标机器的IP,这时将会看到一个网页,具体如下图所示。

在上面的屏幕截图中,显示的文字中提供了一条线索:给出了“navigate to /sev-home/ ”的提示。所以,让我们通过浏览器打开这个文件夹,看看能否有所发现,具体如下图所示。

您可以看到,上面的页面要求进行身份验证,因为它提示我们输入用户名和密码。

于是,我开始检查主页的html内容,看看能否找到有用的线索。经过一番努力,我发现索引页面有一些有趣的东西,值得进一步探索,具体如下图所示。

在上面的屏幕截图中,在突出显示的区域中有一个名为“terminal.js”的JavaScript文件,它引起了我们的注意。于是,我们在另一个浏览器窗口中打开这个JavaScript文件,具体如下图所示。

我们在代码注释中找到了两个用户名,分别为:

  1. Boris
  2. Natalya

此外,我们还发现了一个编码的字符串,具体见上图中的高亮显示的区域。通过用户的注释可以看出,这就是一个密码。让我们对这个字符串进行解码,并尝试使用这些凭证来登录该应用程序。

经过编码的字符串如下所示。

InvincibleHack3r

为了对这个字符串进行解码,可以在HTML解码器中设置Burp Decoder工具,具体如下图所示。

如您所见,我们已经通过解码得到了密码。由于前面已经找到了两个有效的用户名,所以,现在就可以尝试使用这些凭证来登录应用程序了。

解码后的密码: InvincibleHack3r

从上面的截图中可以看出,我们已成功登录了“GoldenEye”应用程序。值得注意的是,主页上提供了一些有趣的信息,具体见图中突出显示部分,其中的消息如下:

“Remember, since security by obscurity is very effective, we have configured our pop3 service to run on a very high non-default port …”

从上面的消息中,我们可以了解到,在某个非默认端口上运行的是POP3服务。由于在第一步中就对目标IP进行了前面的Nmap扫描,因此,找到运行POP3服务器的端口也非难事。

此外,在分析“terminal.js”的HTML内容时,我们在注释中发现了目标系统使用的默认密码。因此,我们打算尝试使用Hydra来爆破pop3服务,为此,可以使用上一步中找到的用户名“boris”。Hydra命令的输出结果如下图所示。

使用的命令: hydra -l boris -P /usr/share/wordlists/fasttrack.txt -f 192.168.1.10 -s 5007 pop3

在上图突出显示的区域中,我们可以看到,蛮力攻击成功破解出了用户“boris”的密码。

接下来,我们再次重复上述过程来破解用户“natalya”的密码。实际上,第二次扫描就成功破解了用户“natalya”的密码,具体如下图所示。

使用的命令: hydra -l natalya -P /usr/share/wordlists/fasttrack.txt -f 192.168.1.10 -s 55007 pop3

到目前为止,我们已经找到了两个用户名及其相应的密码,具体组合如下所示。

用户名 密码
boris secret1!
natalya bird

好了,下面开始尝试使用这些凭证来登录目标应用程序。在这里,我们使用用户"boris"的相关凭证,借助Netcat程序,通过pop3端口成功登录到了目标服务器,具体如下所示。

使用的命令:

通过上述命令,我们发现目标系统上共有3封电子邮件。接下来,我们不妨阅读这些邮件,看看是否能找到有关目标机器的相关线索。各封电子邮件的内容如下所示:

在上面的屏幕截图中,root用户在目标计算机上向用户“boris”发送了一封电子邮件,由此可以看出,root用户并没有对电子邮件进行安全扫描。第2封电子邮件可以在下面的屏幕截图中看到。

这封电子邮件来自用户“natalya”,声称她可以破解Boris的代码。现在,让我们来查看第3封电子邮件。

在上图中,我们可以看到一封电子邮件,其中GoldenEye的访问密码是作为附件发送的,这些附件保存在root目录中。但我们无法从这里阅读附件。

为此,不妨转到“natalya”并查看其内容。在下面的屏幕截图中,可以看到所用的登陆命令与使用“boris”用户名登陆时一样,只不过用户名变成了“natalya”而已。

以用户“natalya”登录后,我们可以看到该文件夹中有两条消息。接下来,我们来看看这些消息,其中第一条消息内容如下所示。

在上图中,我们可以看到,目标计算机上有来自root用户的电子邮件。现在,我们来查看第二封电子邮件。

在上图中,突出显示的部分是我们找到的一些有用信息。此外,我们还有另一组用户登陆凭证,具体如下所示。

用户名: xenia

密码: RCP90rulez!

域名: severnaya-station.com

URL: severnaya-station.com/gnocertdir

在下一篇文章中,我们将使用这些信息继续挑战该CTF题目。在此之前,读者不妨自己先动手试一下。在本文的第2部分中,我们将详细介绍如何克服后面的挑战,进而从root目录中找到相应的旗标。

参考资源


POP3 Commands, Electric Toolbox

Moodle – Remote Command Execution (Metasploit), Exploit Database

Vulnerability & Exploit Database, Rapid7

‘overlayfs’ Local Privilege Escalation, Exploit Database

GoldenEye: 1, VulnHub

Download GoldenEye, VulnHub

Download GoldenEye (torrent), VulnHub

源链接

Hacking more

...