8086 - Pentesting InfluxDB

Reading time: 3 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Основна інформація

InfluxDB - це відкритий база даних часових рядів (TSDB), розроблена компанією InfluxData. TSDB оптимізовані для зберігання та обслуговування даних часових рядів, які складаються з пар мітка часу-значення. У порівнянні з базами даних загального призначення, TSDB забезпечують значні покращення в обсязі зберігання та продуктивності для наборів даних часових рядів. Вони використовують спеціалізовані алгоритми стиснення та можуть бути налаштовані для автоматичного видалення старих даних. Спеціалізовані індекси бази даних також покращують продуктивність запитів.

Порт за замовчуванням: 8086

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

Перерахування

З точки зору пентестера, це ще одна база даних, яка може зберігати чутливу інформацію, тому цікаво знати, як вивантажити всю інформацію.

Аутентифікація

InfluxDB може вимагати аутентифікацію або ні

bash
# 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 (цю ви знайдете скрізь)

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

Показати таблиці/вимірювання

The InfluxDB documentation explains that вимірювання in InfluxDB can be paralleled with SQL tables. The nomenclature of these вимірювання is indicative of their respective content, each housing data relevant to a particular entity.

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

Показати ключі полів

Ключі полів подібні до стовпців бази даних

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

І нарешті ви можете вивантажити таблицю, виконавши щось на зразок

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

У деяких тестах з обхідною аутентифікацією було зазначено, що ім'я таблиці повинно бути в подвійних лапках, наприклад: select * from "cpu"

Автоматизована аутентифікація

bash
msf6 > use auxiliary/scanner/http/influxdb_enum

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks