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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Основна інформація
InfluxDB - це відкритий база даних часових рядів (TSDB), розроблена компанією InfluxData. TSDB оптимізовані для зберігання та обслуговування даних часових рядів, які складаються з пар мітка часу-значення. У порівнянні з базами даних загального призначення, TSDB забезпечують значні покращення в обсязі зберігання та продуктивності для наборів даних часових рядів. Вони використовують спеціалізовані алгоритми стиснення та можуть бути налаштовані для автоматичного видалення старих даних. Спеціалізовані індекси бази даних також покращують продуктивність запитів.
Порт за замовчуванням: 8086
PORT STATE SERVICE VERSION
8086/tcp open http InfluxDB http admin 1.7.5
Перерахування
З точки зору пентестера, це ще одна база даних, яка може зберігати чутливу інформацію, тому цікаво знати, як вивантажити всю інформацію.
Аутентифікація
InfluxDB може вимагати аутентифікацію або ні
# 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
(цю ви знайдете скрізь)
> 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.
> show measurements
name: measurements
name
----
cpu
disk
diskio
kernel
mem
processes
swap
system
Показати ключі полів
Ключі полів подібні до стовпців бази даних
> 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
І нарешті ви можете вивантажити таблицю, виконавши щось на зразок
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"
Автоматизована аутентифікація
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.