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

通关。

相关推荐
火龙谷14 分钟前
【nosql】有哪些非关系型数据库?
数据库·nosql
安全系统学习1 小时前
系统安全之大模型案例分析
前端·安全·web安全·网络安全·xss
焱焱枫1 小时前
Oracle获取执行计划之10046 技术详解
数据库·oracle
加密狗复制模拟2 小时前
坚石ET ARM加密狗复制模拟介绍
安全·软件工程·个人开发
qq_392397123 小时前
Redis常用操作
数据库·redis·wpf
galaxylove3 小时前
Gartner发布塑造安全运营未来的关键 AI 自动化趋势
人工智能·安全·自动化
scuter_yu4 小时前
主流零信任安全产品深度介绍
运维·网络·安全
江苏思维驱动智能研究院有限公司4 小时前
Sophos 网络安全:全球领先的自适应安全解决方案提供商
网络·安全·web安全
一只fish4 小时前
MySQL 8.0 OCP 1Z0-908 题目解析(17)
数据库·mysql
花好月圆春祺夏安5 小时前
基于odoo17的设计模式详解---装饰模式
数据库·python·设计模式