Skip to content

Scanning Engine v2 - Module - Cassandra

Overview

Cassandra (https://en.wikipedia.org/wiki/Apache_Cassandra) is a distributed and highly scalable NoSQL database that provides a powerful and flexible solution for managing large volumes of structured and semi-structured data. It is designed to handle high-throughput workloads and offers robust support for horizontal scaling, making it an excellent choice for modern web applications and data-intensive use cases.

Upon connection to a Cassandra service, this module attempts to dump the service's configuration and table names.

Targeting

This module targets TCP ports by IP address or hostname.

Schemas

The schema for the body object of all results generated with .task.module_name equal to cassandra can be found here. The schema for results is available both in standalone and bundled form.

Examples

These are examples of the .body object for results with .task.module_name equal to cassandra.

Docker

This example was generated with the Apache Cassandra v4.1.3 Docker image.

{
  "cluster": [
    {
      "address": "0.0.0.0:9042",
      "cassandraVersion": "4.1.3",
      "rack": "rack1",
      "datacenter": "datacenter1"
    }
  ],
  "keyspaces": {
    "system_auth": {
      "name": "system_auth",
      "tables": [
        "network_permissions",
        "resource_role_permissons_index",
        "role_members",
        "role_permissions",
        "roles"
      ]
    },
    "system_schema": {
      "name": "system_schema",
      "tables": [
        "aggregates",
        "columns",
        "dropped_columns",
        "functions",
        "indexes",
        "keyspaces",
        "tables",
        "triggers",
        "types",
        "views"
      ]
    },
    "system_distributed": {
      "name": "system_distributed",
      "tables": [
        "parent_repair_history",
        "partition_denylist",
        "repair_history",
        "view_build_status"
      ]
    },
    "system": {
      "name": "system",
      "tables": [
        "IndexInfo",
        "available_ranges",
        "available_ranges_v2",
        "batches",
        "built_views",
        "compaction_history",
        "local",
        "paxos",
        "paxos_repair_history",
        "peer_events",
        "peer_events_v2",
        "peers",
        "peers_v2",
        "prepared_statements",
        "repairs",
        "size_estimates",
        "sstable_activity",
        "sstable_activity_v2",
        "table_estimates",
        "top_partitions",
        "transferred_ranges",
        "transferred_ranges_v2",
        "view_builds_in_progress"
      ]
    },
    "system_traces": {
      "name": "system_traces",
      "tables": [
        "events",
        "sessions"
      ]
    }
  },
  "info": [
    {
      "key": "local",
      "broadcast_address": "[REDACTED]",
      "broadcast_port": 7000,
      "cluster_name": "Test Cluster",
      "cql_version": "3.4.6",
      "data_center": "datacenter1",
      "host_id": "1223bd1e-b378-4372-b275-d9843dab051a",
      "listen_address": "[REDACTED]",
      "listen_port": 7000,
      "native_protocol_version": "5",
      "rack": "rack1",
      "release_version": "4.1.3",
      "rpc_address": "[REDACTED]",
      "rpc_port": 9042
    }
  ]
}

Live Host

This example was generated with a live host on the internet.

{
  "keyspaces": {
    "system_auth": {
      "name": "system_auth",
      "tables": [
        "resource_role_permissons_index",
        "role_members",
        "role_permissions",
        "roles"
      ]
    },
    "system_schema": {
      "name": "system_schema",
      "tables": [
        "aggregates",
        "columns",
        "dropped_columns",
        "functions",
        "indexes",
        "keyspaces",
        "tables",
        "triggers",
        "types",
        "views"
      ]
    },
    "testspace": {
      "name": "testspace",
      "tables": [
        "user"
      ]
    },
    "system_distributed": {
      "name": "system_distributed",
      "tables": [
        "parent_repair_history",
        "repair_history"
      ]
    },
    "system": {
      "name": "system",
      "tables": [
        "IndexInfo",
        "available_ranges",
        "batches",
        "batchlog",
        "built_views",
        "compaction_history",
        "hints",
        "local",
        "paxos",
        "peer_events",
        "peers",
        "range_xfers",
        "size_estimates",
        "sstable_activity",
        "views_builds_in_progress"
      ]
    },
    "system_traces": {
      "name": "system_traces",
      "tables": [
        "events",
        "sessions"
      ]
    }
  },
  "cluster": [
    {
      "address": "[REDACTED]:9042",
      "cassandraVersion": "3.0.10",
      "rack": "rack1",
      "datacenter": "dc1"
    },
    {
      "address": "[REDACTED]:9042",
      "cassandraVersion": "3.0.10",
      "rack": "rack1",
      "datacenter": "dc2"
    },
    {
      "address": "[REDACTED]:9042",
      "cassandraVersion": "3.0.10",
      "rack": "rack1",
      "datacenter": "dc1"
    },
    {
      "address": "[REDACTED]:9042",
      "cassandraVersion": "3.0.10",
      "rack": "rack1",
      "datacenter": "dc2"
    },
    {
      "address": "[REDACTED]:9042",
      "cassandraVersion": "3.0.10",
      "rack": "rack1",
      "datacenter": "dc1"
    },
    {
      "address": "[REDACTED]:9042",
      "cassandraVersion": "3.0.10",
      "rack": "rack1",
      "datacenter": "dc2"
    }
  ],
  "info": [
    {
      "key": "local",
      "broadcast_address": "[REDACTED]",
      "cluster_name": "Test Cluster A",
      "cql_version": "3.4.0",
      "data_center": "dc1",
      "host_id": "[REDACTED]",
      "listen_address": "[REDACTED]",
      "native_protocol_version": "4",
      "rack": "rack1",
      "release_version": "3.0.10",
      "rpc_address": "[REDACTED]",
      "thrift_version": "20.1.0"
    }
  ]
}

Changelog

v2.0.1 (2025-06-02)

  • Simplified connection targeting by removing redundant host filtering mechanisms.
  • Fixed blocklist validation logic to prevent scanning of prohibited targets.
  • Improved code maintainability by consolidating target enforcement to the custom dialer.

v2.0.0 (2025-05-14)

  • Complete rewrite from Python to Go for improved performance and maintainability.
  • Improved error handling and result processing with better logging and validation.

v1.0.0 (2025-05-05)

  • Initial release of versioning for each module. All modules are being tagged with version number 1.0.0. Going forward:
  • Major version should be changed when there are changes that impact consumers or clients of the modules.
  • Minor version should be changed when there are additions which enrich or enhance the module but shouldn't affect consumers or clients.
  • Patch version should be changed when there are bugfixes.