Hack The Box(黑客盒子)Mongod-mongoDB工具篇

发布于:2024-06-11 ⋅ 阅读:(22) ⋅ 点赞:(0)

题目


情报

数据库可能存在未知缺陷,可能存在匿名访问漏洞。


实战

TASK1

nmap -Pn -p- -sT -T4 --min-rate=1000 10.129.167.185

参数解释:

  • nmap:依然是启动Nmap网络扫描工具。

  • -Pn:此选项指示Nmap不对目标进行主机存活探测,直接进行端口扫描,假定目标主机是活动的。

  • -p-:这个参数指定扫描所有TCP端口,从0到65535,进行全面的端口扫描。

  • -sT:指定了扫描的类型为TCP Connect扫描。这是最基本的扫描方式,通过尝试建立完整的TCP连接来判断端口是否开放。虽然这是Nmap默认的扫描类型,但显式指定可以确保使用的正是这种直接的连接扫描方式。

  • -T4:设置扫描的速度级别为4,这是一个相对快速的扫描速度设置,适用于大多数情况,但可能会引起一些IDS(入侵检测系统)的注意。

  • --min-rate=1000:这个选项强制Nmap以至少每秒1000个包的速率发送数据包。这确保了扫描的进行速度,但也可能对网络造成较大压力,并增加被检测的风险。

  • 10.129.167.185:目标主机的IP地址。

2

TASK2

nmap -sV -p27017 10.129.167.185

MongoDB 3.6.8

TASK3

nosql

TASK4

kali没有自带这个工具,ParrotOS应该自带了。先安装。

apt install mongodb-clients

mongo

TASK5

先给出该工具的使用方法和参数。

使用MongoDB的命令行工具mongo连接数据库的基本步骤如下:

  1. 打开命令行终端:首先,在你的计算机上打开命令行终端(在Windows上是CMD或PowerShell,在macOS或Linux上是Terminal)。

  2. 连接本地数据库:如果要连接本地的MongoDB实例,默认情况下MongoDB运行在localhost的27017端口,你可以直接输入:

    mongo

    这将连接到本地MongoDB的默认数据库。

  3. 连接远程数据库:如果要连接远程MongoDB实例,你需要提供主机名/IP地址和端口号(默认是27017),以及认证信息(如果数据库启用了认证)。命令格式如下:

    mongo hostname:port/databaseName -u username -p password

    例如:

    mongo 192.168.0.197:27017/myDatabase -u admin -p myPassword

    如果你的数据库需要SSL连接,可以加上--ssl参数。

  4. 认证机制:对于MongoDB 3.0及以上版本,如果数据库启用了SCRAM认证机制,命令中的-u-p后直接跟随用户名和密码即可。对于更复杂的认证机制(如X.509或Kerberos),你可能需要使用额外的命令行参数或配置文件。

  5. 进入数据库:一旦成功连接,你可以通过use yourDatabaseName命令来切换到特定的数据库。

  6. 执行命令:之后,你就可以在命令行中输入MongoDB的查询语句、插入数据、更新数据等操作了。

        请注意,为了安全起见,直接在命令行中输入密码可能会被记录在历史记录中,尤其是在多用户系统中。因此,对于生产环境,推荐使用更安全的密码处理方式,如配置文件或交互式输入密码。

如果你使用的是图形界面工具(如MongoDB Compass、Robo 3T、Studio 3T等),则需要在工具的连接界面中输入相应的连接信息(主机名/IP、端口、数据库名、用户名和密码),然后点击连接按钮进行连接。图形界面工具通常提供更直观的界面来管理数据库和执行查询。

        我们是连接远程数据库,还不知道用户名和密码,但是根据官方题目所披露的靶机缺陷,存在匿名访问漏洞,所以尝试直接连接。

mongo 10.129.167.185:27017

   成功连接到远程数据库。

连接上后列出服务器上所有的数据库。

show dbs

show dbs

TASK6

我们使用一个数据库,然后列出库中的所有集合。

use admin

列出该库中所有的集合。

show collections

show collections

TASK7

翻译:用于以易于阅读的格式存储名为 flag 的集合中的所有文档内容的命令是什么?

db.flag.find().pretty()

这里附上mongon工具的使用。

MongoDB作为一个流行的NoSQL数据库,提供了多种工具来帮助用户管理和操作数据库。下面是一些基本的MongoDB工具使用说明,包括命令行工具和图形界面工具:

命令行工具 mongo

  1. 连接数据库:

    • 打开命令行终端,输入 mongo 连接到本地MongoDB服务器上的默认数据库。
    • 若要连接到特定的数据库,可以在启动时指定:mongo yourDatabaseName
    • 连接远程数据库:mongo hostname:port/yourDatabaseName,如果需要认证,可以加上 -u username -p password
  2. 基本操作:

    • 查看所有数据库:show dbs
    • 切换数据库:use yourDatabaseName
    • 查看当前数据库集合:show collections
    • 插入文档:db.yourCollectionName.insert({key1: value1, key2: value2})
    • 查询文档:db.yourCollectionName.find({query})
    • 更新文档:db.yourCollectionName.update({query}, {update})
    • 删除文档:db.yourCollectionName.remove({query})

图形界面工具

MongoDB Compass
  1. 安装与启动:

    • 从MongoDB官网下载并安装MongoDB Compass。
    • 启动Compass后,界面会提示你输入连接信息。
  2. 连接数据库:

    • 输入连接字符串(如 mongodb://localhost:27017) 或者手动填写主机地址、端口、认证信息等。
    • 点击“连接”按钮以建立到MongoDB服务器的连接。
  3. 浏览与操作:

    • 在Compass中,你可以直观地看到所有数据库和集合。
    • 双击集合即可查看其文档,支持过滤、排序、高亮显示查询结果。
    • 右侧栏允许你直接添加、编辑、删除文档,执行聚合查询等。

        但是呢因为我对这个工具不是很熟,所以我还是使用navicat工具来查看flag吧。打开navicat16,连接数据库。这里不需要选择验证,因为存在匿名访问。

找到了。

1b6e6fb359e7c40241b6d431427ba6ea

通关。