HTB入门指南:Mongod
熟悉MongoDB
继续我们的下一个Starting Point机器,我们遇到了这个"坏小子"。快速查看相关任务表明我们需要复习MongoDB知识。老实说,我在这方面经验不多,所以这对我们所有人都会有好处。通过HTB的pwnbox或OpenVPN连接到HTB环境后,让我们启动目标并开始第一个任务。
任务1和2
我们将通过NMAP扫描快速完成前两个任务,今天不浪费任何时间。
在这里你看到我运行sudo nmap -sV -p- 10.129.16.91,其中-sV标志用于服务扫描,-p-指定我要扫描所有端口,而不仅仅是前10,000个。根据输出,我们看到有两个TCP端口开放,mongodb服务运行在27017端口上。让我们继续填写这些答案然后继续前进。
任务3
你看这里,有时HTB通过给我们字符数来稍微透露答案。但是,我们不要让这太容易,让我们真正理解SQL与NoSQL数据库的区别。IBM有一篇很好的文章详细介绍了这一点,但简而言之,这涉及到数据的存储方式。这并不意味着NoSQL数据库不使用SQL或某种SQL来执行查询。在SQL数据库中,所有内容都存储在表和行中,这就是所谓的关系数据库。NoSQL只是让我们在数据存储方式上更加灵活,并且被认为更适合处理大量非结构化数据。
任务4
我实际上毫无头绪,就像我说的,我和你们一样在这方面是新手。让我们去谷歌看看能找到什么。来自GeeksforGeeks的信息显示了我们需要的命令以及连接到远程数据库的语法,完美,我们马上就需要这个。实际上,在提交答案之前,让我们尝试连接到数据库。我们没有获得任何凭据,所以让我们只指定主机看看会发生什么。
嗯,这似乎有问题。简而言之,这是pwnbox的nodejs版本或类似问题(根据HTB论坛),修复方法实际上只在官方攻略中。在攻略中使用官方攻略?是的,我知道,有时你不得不做你必须做的事情。
好吧,让我们逐字运行这些命令并连接到数据库。
连接成功!为了便于跟随,下面提供了必要的命令:
|
|
完成所有这些后,让我们继续回答问题。
任务5
幸运的是,我仍然打开着GeeksforGeeks文章,它实际上提供了我们所需的大部分内容。show dbs命令将是我们这里需要的。
从我们的MongoDB shell中运行该命令,我们看到这里有5个数据库。对于任务5,我们有了答案,让我们继续下一个任务。
任务6和7
好吧,我们将一次性完成这两个任务。MongoDB CLI中的一个不错的功能是help命令。
这会输出很多有用的信息,你也可以将其作为help <command>运行以获取有关特定命令的更多信息。在这里,我们实际上可以看到需要运行的命令。show collections命令可能会起作用。我们首先需要使用use命令将自己放入数据库中。
从这里的数据库列表中,sensitive_information听起来很有趣。我们可以跳转到该数据库并运行show collections来查看一个名为flag的集合。怎么样?现在,下一部分花了我比愿意承认的时间更长,但要回答任务7,我们需要利用db命令,这是在CLI交互时的一个巨大工具。在尝试之后,要运行的命令是:
|
|
此命令查询flag集合中的所有文档,在这种情况下,我们只看到一个带有flag:值的文档。所以如果我们提交这个作为我们的root flag…
Root Flag和结论
在枚举目标时,能够与各种数据库交互是一项极其必要的技能。在红队操作中,能够掠夺有效凭据或一般的敏感信息是相当重要的。对我们蓝队成员来说也很重要,因为我们知道的越多,就越能做好工作。感谢你坚持看完这个,一如既往,下个见!