8086 - Pentesting InfluxDB

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Informations de base

InfluxDB est une base de donnĂ©es de sĂ©ries temporelles (TSDB) open-source dĂ©veloppĂ©e par InfluxData. Les TSDB sont optimisĂ©es pour stocker et servir des donnĂ©es de sĂ©ries temporelles, qui se composent de paires timestamp-valeur. Par rapport aux bases de donnĂ©es Ă  usage gĂ©nĂ©ral, les TSDB offrent des amĂ©liorations significatives en espace de stockage et en performance pour les ensembles de donnĂ©es de sĂ©ries temporelles. Elles utilisent des algorithmes de compression spĂ©cialisĂ©s et peuvent ĂȘtre configurĂ©es pour supprimer automatiquement les anciennes donnĂ©es. Des indices de base de donnĂ©es spĂ©cialisĂ©s amĂ©liorent Ă©galement la performance des requĂȘtes.

Port par défaut : 8086

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

ÉnumĂ©ration

Du point de vue d'un pentester, c'est une autre base de données qui pourrait stocker des informations sensibles, donc il est intéressant de savoir comment extraire toutes les informations.

Authentification

InfluxDB peut nécessiter une authentification ou non.

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

Si vous obtenez une erreur comme celle-ci : ERR: unable to parse authentication credentials, cela signifie qu'il s'attend Ă  des identifiants.

influx –username influx –password influx_pass

Il y avait une vulnérabilité InfluxDB qui permettait de contourner l'authentification : CVE-2019-20933

ÉnumĂ©ration manuelle

Les informations de cet exemple ont été prises ici.

Afficher les bases de données

Les bases de données trouvées sont telegraf et internal (vous trouverez celle-ci partout)

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

Afficher les tables/mesures

La documentation InfluxDB explique que les mesures dans InfluxDB peuvent ĂȘtre parallĂšles aux tables SQL. La nomenclature de ces mesures est indicative de leur contenu respectif, chacune contenant des donnĂ©es pertinentes Ă  une entitĂ© particuliĂšre.

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

Afficher les clés de colonnes/champs

Les clés de champ sont comme les colonnes de la base de données

bash
> 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

Et enfin, vous pouvez dumper la table en faisant quelque chose comme

bash
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

warning

Lors de certains tests avec le contournement d'authentification, il a Ă©tĂ© notĂ© que le nom de la table devait ĂȘtre entre guillemets doubles comme : select * from "cpu"

Authentification Automatisée

bash
msf6 > use auxiliary/scanner/http/influxdb_enum

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks