8086 - Pentesting InfluxDB

Usa Trickest per creare e automatizzare facilmente flussi di lavoro supportati dagli strumenti della community più avanzati al mondo. Ottieni l'accesso oggi:

Impara l'hacking su AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Informazioni di base

InfluxDB è un database time series (TSDB) open-source sviluppato da InfluxData. I TSDB sono ottimizzati per memorizzare e servire dati di serie temporali, che consistono in coppie timestamp-valore. Rispetto ai database ad uso generale, i TSDB offrono significativi miglioramenti nello spazio di archiviazione e nelle prestazioni per i dataset di serie temporali. Utilizzano algoritmi di compressione specializzati e possono essere configurati per rimuovere automaticamente i dati vecchi. Gli indici del database specializzati migliorano anche le prestazioni delle query.

Porta predefinita: 8086

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

Enumerazione

Da un punto di vista del pentester questo è un altro database che potrebbe memorizzare informazioni sensibili, quindi è interessante sapere come estrarre tutte le informazioni.

Autenticazione

InfluxDB potrebbe richiedere autenticazione o no

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

Se ricevi un errore come questo: ERR: impossibile analizzare le credenziali di autenticazione, significa che si aspetta delle credenziali.

influx –username influx –password influx_pass

C'era una vulnerabilità in influxdb che permetteva di aggirare l'autenticazione: CVE-2019-20933

Enumerazione Manuale

Le informazioni di questo esempio sono state prese da qui.

Mostra database

I database trovati sono telegraf e internal (questo lo troverai ovunque)

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

Mostra tabelle/misure

La documentazione di InfluxDB spiega che le misure in InfluxDB possono essere paragonate alle tabelle SQL. La nomenclatura di queste misure è indicativa del relativo contenuto, ognuna contenente dati rilevanti per una particolare entità.

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

Mostra colonne/chiavi dei campi

Le chiavi dei campi sono come le colonne del database

> 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 della tabella

E infine puoi effettuare il dump della tabella facendo qualcosa del genere

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

Durante alcuni test con il bypass dell'autenticazione è stato notato che il nome della tabella doveva essere tra virgolette doppie come: select * from "cpu"

Autenticazione automatizzata

msf6 > use auxiliary/scanner/http/influxdb_enum
Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Utilizza Trickest per creare e automatizzare facilmente flussi di lavoro supportati dagli strumenti comunitari più avanzati al mondo. Ottieni l'accesso oggi:

Last updated