hacktricks/network-services-pentesting/8086-pentesting-influxdb.md
2024-02-11 01:46:25 +00:00

146 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 8086 - Testowanie penetracyjne InfluxDB
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować zadania** przy użyciu najbardziej zaawansowanych narzędzi społecznościowych na świecie.\
Otrzymaj dostęp już dziś:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć **reklamę swojej firmy w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi trikami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
## Podstawowe informacje
**InfluxDB** to otwarte oprogramowanie **baz danych szeregów czasowych (TSDB)** opracowane przez InfluxData. TSDB jest zoptymalizowany do przechowywania i obsługi danych szeregów czasowych, które składają się z par znacznik-czas-wartość. W porównaniu do ogólnego przeznaczenia baz danych, TSDB zapewnia znaczne ulepszenia w zakresie **przestrzeni dyskowej** i **wydajności** dla zbiorów danych szeregów czasowych. Wykorzystują specjalistyczne algorytmy kompresji i można je skonfigurować do automatycznego usuwania starych danych. Specjalistyczne indeksy bazy danych również poprawiają wydajność zapytań.
**Domyślny port**: 8086
```
PORT STATE SERVICE VERSION
8086/tcp open http InfluxDB http admin 1.7.5
```
## Wyliczanie
Z punktu widzenia pentestera, to kolejna baza danych, która może przechowywać poufne informacje, więc warto wiedzieć, jak wydobyć wszystkie dane.
### Uwierzytelnianie
InfluxDB może wymagać uwierzytelnienia lub nie.
```bash
# Try unauthenticated
influx -host 'host name' -port 'port #'
> use _internal
```
Jeśli otrzymujesz błąd tak jak ten: `ERR: nie można sparsować poświadczeń uwierzytelniania`, oznacza to, że oczekuje pewnych poświadczeń.
```
influx username influx password influx_pass
```
W InfluxDB występowała podatność, która umożliwiała obejście uwierzytelniania: [**CVE-2019-20933**](https://github.com/LorenzoTullini/InfluxDB-Exploit-CVE-2019-20933)
### Ręczne wyliczanie
Informacje w tym przykładzie zostały zaczerpnięte stąd: [**tutaj**](https://oznetnerd.com/2017/06/11/getting-know-influxdb/).
#### Pokaż bazy danych
Znalezione bazy danych to `telegraf` i `internal` (ta druga znajdziesz wszędzie)
```bash
> show databases
name: databases
name
----
telegraf
_internal
```
#### Pokaż tabele/pomiary
[Dokumentacja InfluxDB](https://docs.influxdata.com/influxdb/v1.2/introduction/getting_started/) wyjaśnia, że **pomiary** w InfluxDB można porównać do tabel SQL. Nomenklatura tych **pomiarów** wskazuje na ich zawartość, gdzie każdy przechowuje dane dotyczące określonej jednostki.
```bash
> show measurements
name: measurements
name
----
cpu
disk
diskio
kernel
mem
processes
swap
system
```
#### Pokaż kolumny/klucze pól
Klucze pól są podobne do **kolumn** bazy danych.
```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 ...]
```
#### Wydrukuj tabelę
I wreszcie możesz **wydrukować tabelę** wykonując coś w stylu
```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
```
{% hint style="warning" %}
Podczas testowania z pominięciem uwierzytelniania zauważono, że nazwa tabeli musi być umieszczona w podwójnych cudzysłowach, na przykład: `select * from "cpu"`
{% endhint %}
### Automatyczne uwierzytelnianie
```bash
msf6 > use auxiliary/scanner/http/influxdb_enum
```
<details>
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować przepływy pracy** z wykorzystaniem najbardziej zaawansowanych narzędzi społeczności.\
Otrzymaj dostęp już dziś:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}