8086 - Pentesting InfluxDB

Χρησιμοποιήστε Trickest για να δημιουργήσετε και να αυτοματοποιήσετε ροές εργασίας που υποστηρίζονται από τα πιο προηγμένα εργαλεία της κοινότητας. Αποκτήστε πρόσβαση σήμερα:

Υποστήριξη HackTricks

Βασικές Πληροφορίες

InfluxDB είναι μια ανοιχτού κώδικα βάση δεδομένων χρονοσειρών (TSDB) που αναπτύχθηκε από την InfluxData. Οι TSDB είναι βελτιστοποιημένες για την αποθήκευση και την εξυπηρέτηση δεδομένων χρονοσειρών, τα οποία αποτελούνται από ζεύγη χρονικής σήμανσης-τιμής. Σε σύγκριση με τις βάσεις δεδομένων γενικής χρήσης, οι TSDB παρέχουν σημαντικές βελτιώσεις σε χώρο αποθήκευσης και απόδοση για σύνολα δεδομένων χρονοσειρών. Χρησιμοποιούν εξειδικευμένους αλγόριθμους συμπίεσης και μπορούν να ρυθμιστούν ώστε να αφαιρούν αυτόματα παλιά δεδομένα. Οι εξειδικευμένοι δείκτες βάσεων δεδομένων ενισχύουν επίσης την απόδοση των ερωτημάτων.

Προεπιλεγμένη θύρα: 8086

PORT     STATE SERVICE VERSION
8086/tcp open  http    InfluxDB http admin 1.7.5

Enumeration

Από την οπτική γωνία ενός pentester, αυτή είναι μια άλλη βάση δεδομένων που θα μπορούσε να αποθηκεύει ευαίσθητες πληροφορίες, οπότε είναι ενδιαφέρον να γνωρίζουμε πώς να εξάγουμε όλες τις πληροφορίες.

Authentication

Η InfluxDB μπορεί να απαιτεί αυθεντικοποίηση ή όχι

# Try unauthenticated
influx -host 'host name' -port 'port #'
> use _internal

Αν λάβετε ένα σφάλμα όπως αυτό: ERR: unable to parse authentication credentials σημαίνει ότι αναμένει κάποια διαπιστευτήρια.

influx –username influx –password influx_pass

Υπήρχε μια ευπάθεια στο influxdb που επέτρεπε την παράκαμψη της αυθεντικοποίησης: CVE-2019-20933

Χειροκίνητη Αρίθμηση

Οι πληροφορίες αυτού του παραδείγματος ελήφθησαν από εδώ.

Εμφάνιση βάσεων δεδομένων

Οι βρέθηκαν βάσεις δεδομένων είναι telegraf και internal (θα βρείτε αυτήν παντού)

> show databases
name: databases
name
----
telegraf
_internal

Show tables/measurements

The InfluxDB documentation εξηγεί ότι οι μετρήσεις στο InfluxDB μπορούν να παραλληλιστούν με τους πίνακες SQL. Η ονοματολογία αυτών των μετρήσεων είναι ενδεικτική του αντίστοιχου περιεχομένου τους, κάθε μία φιλοξενεί δεδομένα σχετικά με μια συγκεκριμένη οντότητα.

> show measurements
name: measurements
name
----
cpu
disk
diskio
kernel
mem
processes
swap
system

Εμφάνιση κλειδιών πεδίων

Τα κλειδιά πεδίων είναι σαν τις στήλες της βάσης δεδομένων

> show field keys
name: cpu
fieldKey         fieldType
--------         ---------
usage_guest      float
usage_guest_nice float
usage_idle       float
usage_iowait     float

name: disk
fieldKey     fieldType
--------     ---------
free         integer
inodes_free  integer
inodes_total integer
inodes_used  integer

[ ... more keys ...]

Dump Table

Και τελικά μπορείτε να εκχύσετε τον πίνακα κάνοντας κάτι σαν

select * from cpu
name: cpu
time                cpu       host   usage_guest usage_guest_nice usage_idle        usage_iowait        usage_irq usage_nice usage_softirq        usage_steal usage_system        usage_user
----                ---       ----   ----------- ---------------- ----------        ------------        --------- ---------- -------------        ----------- ------------        ----------
1497018760000000000 cpu-total ubuntu 0           0                99.297893681046   0                   0         0          0                    0           0.35105315947842414 0.35105315947842414
1497018760000000000 cpu1      ubuntu 0           0                99.69909729188728 0                   0         0          0                    0           0.20060180541622202 0.10030090270811101

Σε κάποιες δοκιμές με την παράκαμψη της αυθεντικοποίησης παρατηρήθηκε ότι το όνομα του πίνακα έπρεπε να είναι μέσα σε διπλά εισαγωγικά όπως: select * from "cpu"

Αυτοματοποιημένη Αυθεντικοποίηση

msf6 > use auxiliary/scanner/http/influxdb_enum
Υποστήριξη HackTricks

Χρησιμοποιήστε Trickest για να δημιουργήσετε εύκολα και να αυτοματοποιήσετε ροές εργασίας που υποστηρίζονται από τα πιο προηγμένα εργαλεία της κοινότητας. Αποκτήστε πρόσβαση σήμερα:

Last updated