8086 - Pentesting InfluxDB
Reading time: 3 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Grundlegende Informationen
InfluxDB ist eine Open-Source Zeitreihendatenbank (TSDB), die von InfluxData entwickelt wurde. TSDBs sind optimiert für die Speicherung und Bereitstellung von Zeitreihendaten, die aus Zeitstempel-Wert-Paaren bestehen. Im Vergleich zu allgemeinen Datenbanken bieten TSDBs erhebliche Verbesserungen in Speicherplatz und Leistung für Zeitreihendatensätze. Sie verwenden spezialisierte Kompressionsalgorithmen und können so konfiguriert werden, dass alte Daten automatisch entfernt werden. Spezialisierte Datenbankindizes verbessern ebenfalls die Abfrageleistung.
Standardport: 8086
PORT STATE SERVICE VERSION
8086/tcp open http InfluxDB http admin 1.7.5
Aufzählung
Aus der Sicht eines Pentesters ist dies eine weitere Datenbank, die sensible Informationen speichern könnte, daher ist es interessant zu wissen, wie man alle Informationen dumpen kann.
Authentifizierung
InfluxDB könnte eine Authentifizierung erfordern oder auch nicht.
# Try unauthenticated
influx -host 'host name' -port 'port #'
> use _internal
Wenn Sie einen Fehler wie diesen erhalten: ERR: unable to parse authentication credentials
, bedeutet das, dass es einige Anmeldeinformationen erwartet.
influx –username influx –password influx_pass
Es gab eine Schwachstelle in InfluxDB, die es ermöglichte, die Authentifizierung zu umgehen: CVE-2019-20933
Manuelle Enumeration
Die Informationen dieses Beispiels stammen von hier.
Datenbanken anzeigen
Die gefundenen Datenbanken sind telegraf
und internal
(diese werden Sie überall finden).
> show databases
name: databases
name
----
telegraf
_internal
Tabellen/Messungen anzeigen
Die InfluxDB-Dokumentation erklärt, dass Messungen in InfluxDB mit SQL-Tabellen parallelisiert werden können. Die Nomenklatur dieser Messungen ist indikativ für ihren jeweiligen Inhalt, wobei jede Daten relevant für eine bestimmte Entität enthält.
> show measurements
name: measurements
name
----
cpu
disk
diskio
kernel
mem
processes
swap
system
Zeige Spalten/Feldschlüssel
Die Feldschlüssel sind wie die Spalten der Datenbank
> 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
Und schließlich können Sie die Tabelle dumpen, indem Sie etwas wie
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
Bei einigen Tests mit dem Authentifizierungsumgehung wurde festgestellt, dass der Name der Tabelle in doppelte Anführungszeichen gesetzt werden musste, wie: select * from "cpu"
Automatisierte Authentifizierung
msf6 > use auxiliary/scanner/http/influxdb_enum
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.