mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 13:43:24 +00:00
148 lines
7.2 KiB
Markdown
148 lines
7.2 KiB
Markdown
# 8086 - Pentesting InfluxDB
|
||
|
||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
\
|
||
Utiliza [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=8086-pentesting-influxdb) para construir y **automatizar flujos de trabajo** fácilmente, impulsados por las **herramientas comunitarias más avanzadas** del mundo.\
|
||
Obtén acceso hoy:
|
||
|
||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=8086-pentesting-influxdb" %}
|
||
|
||
{% hint style="success" %}
|
||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Apoya a HackTricks</summary>
|
||
|
||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
## Información Básica
|
||
|
||
**InfluxDB** es una **base de datos de series temporales (TSDB)** de código abierto desarrollada por InfluxData. Las TSDB están optimizadas para almacenar y servir datos de series temporales, que consisten en pares de marca de tiempo-valor. En comparación con las bases de datos de propósito general, las TSDB ofrecen mejoras significativas en **espacio de almacenamiento** y **rendimiento** para conjuntos de datos de series temporales. Emplean algoritmos de compresión especializados y pueden configurarse para eliminar automáticamente datos antiguos. Los índices de base de datos especializados también mejoran el rendimiento de las consultas.
|
||
|
||
**Puerto por defecto**: 8086
|
||
```
|
||
PORT STATE SERVICE VERSION
|
||
8086/tcp open http InfluxDB http admin 1.7.5
|
||
```
|
||
## Enumeración
|
||
|
||
Desde el punto de vista de un pentester, esta es otra base de datos que podría estar almacenando información sensible, por lo que es interesante saber cómo volcar toda la información.
|
||
|
||
### Autenticación
|
||
|
||
InfluxDB podría requerir autenticación o no.
|
||
```bash
|
||
# Try unauthenticated
|
||
influx -host 'host name' -port 'port #'
|
||
> use _internal
|
||
```
|
||
Si **recibes un error como** este: `ERR: unable to parse authentication credentials` significa que **está esperando algunas credenciales**.
|
||
```
|
||
influx –username influx –password influx_pass
|
||
```
|
||
Hubo una vulnerabilidad en influxdb que permitió eludir la autenticación: [**CVE-2019-20933**](https://github.com/LorenzoTullini/InfluxDB-Exploit-CVE-2019-20933)
|
||
|
||
### Enumeración Manual
|
||
|
||
La información de este ejemplo fue tomada de [**aquí**](https://oznetnerd.com/2017/06/11/getting-know-influxdb/).
|
||
|
||
#### Mostrar bases de datos
|
||
|
||
Las bases de datos encontradas son `telegraf` e `internal` (encontrarás esta última en todas partes)
|
||
```bash
|
||
> show databases
|
||
name: databases
|
||
name
|
||
----
|
||
telegraf
|
||
_internal
|
||
```
|
||
#### Mostrar tablas/mediciones
|
||
|
||
La [**documentación de InfluxDB**](https://docs.influxdata.com/influxdb/v1.2/introduction/getting\_started/) explica que las **mediciones** en InfluxDB pueden ser paraleladas con tablas SQL. La nomenclatura de estas **mediciones** es indicativa de su contenido respectivo, cada una albergando datos relevantes para una entidad particular.
|
||
```bash
|
||
> show measurements
|
||
name: measurements
|
||
name
|
||
----
|
||
cpu
|
||
disk
|
||
diskio
|
||
kernel
|
||
mem
|
||
processes
|
||
swap
|
||
system
|
||
```
|
||
#### Mostrar claves de columnas/campo
|
||
|
||
Las claves de campo son como las **columnas** de la base de datos
|
||
```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
|
||
|
||
Y finalmente puedes **dump the table** haciendo algo como
|
||
```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" %}
|
||
En algunas pruebas con la omisión de autenticación se observó que el nombre de la tabla necesitaba estar entre comillas dobles como: `select * from "cpu"`
|
||
{% endhint %}
|
||
|
||
### Autenticación Automatizada
|
||
```bash
|
||
msf6 > use auxiliary/scanner/http/influxdb_enum
|
||
```
|
||
{% hint style="success" %}
|
||
Aprende y practica Hacking en AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Aprende y practica Hacking en GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Apoya a HackTricks</summary>
|
||
|
||
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
|
||
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||
|
||
\
|
||
Usa [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=8086-pentesting-influxdb) para construir y **automatizar flujos de trabajo** fácilmente, impulsados por las **herramientas comunitarias más avanzadas** del mundo.\
|
||
Obtén acceso hoy:
|
||
|
||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=8086-pentesting-influxdb" %}
|