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

题目


情报

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


实战

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

通关。

相关推荐
倔强的石头_8 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
cipher1 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤2 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区3 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
AI全栈实验室4 天前
MongoDB迁移金仓踩了5个坑,最后一个差点回滚
mongodb
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
一次旅行4 天前
网络安全总结
安全·web安全
加号34 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏4 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker