hacktricks/network-services-pentesting/cassandra.md
2024-02-11 02:13:58 +00:00

11 KiB

9042/9160 - Kupima Usalama wa Cassandra

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Taarifa Msingi

Apache Cassandra ni mfumo wa hifadhidata uliogawanyika unaoweza kusambazwa sana, wenye utendaji wa juu, ulioundwa kushughulikia kiasi kikubwa cha data kwenye seva nyingi za kawaida, huku ukihakikisha upatikanaji wa juu bila kitovu cha kushindwa. Ni aina ya hifadhidata ya NoSQL.

Katika hali kadhaa, unaweza kugundua kuwa Cassandra inakubali vyeti vyovyote (kwa kuwa hakuna vyeti vilivyowekwa) na hii inaweza kumruhusu mshambuliaji kufanya uchambuzi wa hifadhidata.

Bandari ya chaguo: 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

Uchunguzi

Kwa Mkono

Kupata Nodes za Cassandra

Kutumia nodetool, unaweza kupata orodha ya nodes za Cassandra zinazofanya kazi kwenye mfumo:

nodetool status

Kupata Keyspaces

Kutumia cqlsh, unaweza kupata orodha ya keyspaces zilizopo kwenye mfumo:

DESCRIBE keyspaces;

Kupata Tables

Kutumia cqlsh, unaweza kupata orodha ya tables zilizopo kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Columns

Kutumia cqlsh, unaweza kupata orodha ya columns zilizopo kwenye table fulani:

USE keyspace_name;
SELECT * FROM table_name LIMIT 1;

Kupata Data

Kutumia cqlsh, unaweza kupata data iliyopo kwenye table fulani:

USE keyspace_name;
SELECT * FROM table_name;

Kupata Uthibitishaji wa Nje

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa nje uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Ndani

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa ndani uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Jumla

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa jumla uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikoa

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikoa uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Mtumiaji

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa mtumiaji uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Jukumu

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa jukumu uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Rasilimali

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa rasilimali uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Jukumu

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha jukumu uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Rasilimali

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha rasilimali uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Jukumu

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha jukumu uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Rasilimali

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha rasilimali uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Jukumu

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha jukumu uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Rasilimali

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha rasilimali uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Kikundi

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha kikundi uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Kikundi cha Jukumu

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha kikundi cha jukumu uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Kikundi cha Rasilimali

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha kikundi cha rasilimali uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Kikundi cha Kikundi

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha kikundi cha kikundi uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Kikundi cha Kikundi cha Jukumu

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha kikundi cha kikundi cha jukumu uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Kikundi cha Kikundi cha Rasilimali

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha kikundi cha kikundi cha rasilimali uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Kikundi cha Kikundi cha Kikundi

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha kikundi cha kikundi cha kikundi uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Kikundi cha Kikundi cha Kikundi cha Jukumu

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha kikundi cha kikundi cha kikundi cha jukumu uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;

Kupata Uthibitishaji wa Kikundi cha Kikundi cha Kikundi cha Kikundi cha Kikundi cha Kikundi cha Rasilimali

Kutumia cqlsh, unaweza kupata orodha ya uthibitishaji wa kikundi cha kikundi cha kikundi cha kikundi cha kikundi cha kikundi cha rasilimali uliowekwa kwenye keyspace fulani:

USE keyspace_name;
DESCRIBE tables;
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";

Kiotomatiki

Hapa hakuna chaguo nyingi na nmap hupata habari kidogo sana.

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

Brute force

Shodan

port:9160 Kikundi
port:9042 "Toleo la itifaki lisiloungwa mkono au lisiloungwa mkono"

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks: