hacktricks/network-services-pentesting/cassandra.md
2023-08-03 19:12:22 +00:00

6.3 KiB
Raw Blame History

9042/9160 - Pentesting Cassandra

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

基本信息

Apache Cassandra是一种高度可扩展、高性能的分布式数据库旨在处理大量数据并在许多普通服务器上提供高可用性没有单点故障。它是一种NoSQL数据库。
在一些情况下,你会发现cassandra接受任何凭据(因为没有配置任何凭据),你将能够枚举数据库。

默认端口: 9042,9160

PORT     STATE SERVICE   REASON
9042/tcp open  cassandra-native Apache Cassandra 3.10 or later (native protocol versions 3/v3, 4/v4, 5/v5-beta)
9160/tcp open  cassandra syn-ack

枚举

手动枚举

Cassandra是一个开源的分布式数据库管理系统它使用CQLCassandra Query Language进行查询和操作。在进行Cassandra的手动枚举时可以使用以下方法

  1. CQLsh命令行工具CQLsh是Cassandra提供的命令行工具可以使用它连接到Cassandra集群并执行CQL查询。可以使用cqlsh命令启动CQLsh并使用DESCRIBE KEYSPACES命令列出所有的keyspaces类似于数据库

  2. nodetool命令nodetool是Cassandra提供的管理工具可以使用它获取有关Cassandra集群的信息。可以使用nodetool status命令获取集群的状态信息包括节点的IP地址和端口号。

  3. JMXJava Management ExtensionsCassandra使用JMX进行监控和管理。可以使用JConsole或JVisualVM等JMX客户端连接到Cassandra节点并查看节点的运行状况、性能指标和配置信息。

  4. Cassandra的默认端口Cassandra的默认端口是9042CQL和7199JMX。可以使用端口扫描工具如nmap扫描目标主机的这些端口以确定是否运行了Cassandra服务。

  5. Cassandra的Web管理界面Cassandra提供了一个Web管理界面可以使用浏览器访问。默认情况下该界面的URL是http://<Cassandra_IP>:8888。可以尝试访问该URL查看是否可以获取到Cassandra的管理界面。

  6. Cassandra的日志文件Cassandra的日志文件中可能包含有关集群配置、错误信息和敏感信息的线索。可以查看Cassandra的日志文件以获取有关集群的更多信息。

以上是一些手动枚举Cassandra的方法通过这些方法可以获取有关Cassandra集群的信息为后续的渗透测试工作提供基础。

pip install cqlsh
cqlsh <IP>
#Basic info enumeration
SELECT cluster_name, thrift_version, data_center, partitioner, native_protocol_version, rack, release_version from system.local;
#Keyspace enumeration
SELECT keyspace_name FROM system.schema_keyspaces;
desc <Keyspace_name>    #Decribe that DB
desc system_auth        #Describe the DB called system_auth
SELECT * from system_auth.roles;  #Retreive that info, can contain credential hashes
SELECT * from logdb.user_auth;    #Can contain credential hashes
SELECT * from logdb.user;
SELECT * from configuration."config";

自动化

这里没有太多选择nmap无法获取太多信息。

nmap -sV --script cassandra-info -p <PORT> <IP>

暴力破解

Shodan

port:9160 Cluster
port:9042 "Invalid or unsupported protocol version"

☁️ HackTricks 云 ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥