hacktricks/network-services-pentesting/8086-pentesting-influxdb.md

9.3 KiB
Raw Blame History

8086 - Pentesting InfluxDB


Utilisez Trickest pour construire facilement et automatiser des flux de travail alimentés par les outils communautaires les plus avancés au monde.
Obtenez un accès aujourd'hui :

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Informations de base

InfluxDB est une base de données de séries temporelles (TSDB) open-source développée par l'entreprise InfluxData.

Une base de données de séries temporelles (TSDB) est un système logiciel optimisé pour stocker et servir des séries temporelles à travers des paires associées de temps et de valeur.

Les ensembles de données de séries temporelles sont relativement grands et uniformes par rapport à d'autres ensembles de données - généralement composés d'un horodatage et de données associées. Les ensembles de données de séries temporelles peuvent également avoir moins de relations entre les entrées de données dans différentes tables et ne nécessitent pas un stockage indéfini des entrées. Les propriétés uniques des ensembles de données de séries temporelles signifient que les bases de données de séries temporelles peuvent fournir des améliorations significatives de l'espace de stockage et des performances par rapport aux bases de données généralistes. Par exemple, en raison de l'uniformité des données de séries temporelles, des algorithmes de compression spécialisés peuvent fournir des améliorations par rapport aux algorithmes de compression réguliers conçus pour fonctionner sur des données moins uniformes. Les bases de données de séries temporelles peuvent également être configurées pour supprimer régulièrement les anciennes données, contrairement aux bases de données régulières qui sont conçues pour stocker les données indéfiniment. Des index de base de données spéciaux peuvent également améliorer les performances des requêtes. (De ici).

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, il est donc intéressant de savoir comment extraire toutes les informations.

Authentification

InfluxDB peut nécessiter une authentification ou non.

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

Si vous obtenez une erreur comme celle-ci : ERR: impossible d'analyser les informations d'identification d'authentification, cela signifie qu'il attend des informations d'identification.

influx username influx password influx_pass

Il y avait une vulnérabilité dans 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)

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

Afficher les tables/mesures

Comme l'explique la documentation d'InfluxDB, les mesures SQL peuvent être considérées comme des tables SQL. Comme les noms des mesures ci-dessus le suggèrent, chacune contient des informations qui concernent une entité spécifique.

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

Afficher les colonnes/clés de champ

Les clés de champ sont similaires aux colonnes de la base de données.

> 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 de la table

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

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

{% hint style="warning" %} Lors de certains tests de contournement de l'authentification, il a été noté que le nom de la table devait être entre guillemets doubles comme ceci : select * from "cpu" {% endhint %}

Authentification automatisée

msf6 > use auxiliary/scanner/http/influxdb_enum
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥


Utilisez Trickest pour construire et automatiser facilement des workflows alimentés par les outils communautaires les plus avancés au monde.
Obtenez un accès aujourd'hui :

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}