hacktricks/network-services-pentesting/cassandra.md
2023-07-07 23:42:27 +00:00

6.5 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は、データベースのバージョン情報を公開しないため、バージョンを特定するためには手動で列挙する必要があります。

  1. Cassandraのデフォルトのポートである9042番ポートをスキャンします。
  2. ポートが開いている場合、cqlshコマンドを使用してCassandraに接続します。
  3. 接続が成功した場合、SELECT release_version FROM system.local;コマンドを実行してバージョン情報を取得します。
cqlsh -u <username> -p <password> <target_ip> -e "SELECT release_version FROM system.local;"
  1. バージョン情報が表示されれば、Cassandraのバージョンが特定できます。

自動化

自動化ツールを使用してCassandraのバージョンを特定することもできます。例えば、nmapを使用してバージョン情報を取得することができます。

nmap -p 9042 --script cassandra-info <target_ip>

または、cassandra_versionモジュールを使用してバージョン情報を取得することもできます。

msfconsole -x "use auxiliary/scanner/cassandra/cassandra_version; set RHOSTS <target_ip>; run"
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 Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥