8.9 KiB
8086 - Pentesting InfluxDB
Utilice Trickest para construir y automatizar flujos de trabajo con las herramientas comunitarias más avanzadas del mundo.
Obtenga acceso hoy mismo:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS & HackTricks
- Únete al 💬 grupo de Discord o al grupo de Telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Información básica
InfluxDB es una base de datos de series temporales (TSDB) de código abierto desarrollada por la empresa InfluxData.
Una base de datos de series temporales (TSDB) es un sistema de software optimizado para almacenar y servir series temporales a través de pares asociados de tiempo(s) y valor(es).
Los conjuntos de datos de series temporales son relativamente grandes y uniformes en comparación con otros conjuntos de datos, generalmente compuestos por una marca de tiempo y datos asociados. Los conjuntos de datos de series temporales también pueden tener menos relaciones entre las entradas de datos en diferentes tablas y no requieren almacenamiento indefinido de entradas. Las propiedades únicas de los conjuntos de datos de series temporales significan que las bases de datos de series temporales pueden proporcionar mejoras significativas en el espacio de almacenamiento y rendimiento en comparación con las bases de datos de propósito general. Por ejemplo, debido a la uniformidad de los datos de series temporales, los algoritmos de compresión especializados pueden proporcionar mejoras sobre los algoritmos de compresión regulares diseñados para trabajar con datos menos uniformes. Las bases de datos de series temporales también se pueden configurar para eliminar regularmente datos antiguos, a diferencia de las bases de datos regulares que están diseñadas para almacenar datos indefinidamente. Los índices de bases de datos especiales también pueden proporcionar mejoras en el rendimiento de las consultas. (De aquí).
Puerto predeterminado: 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 extraer toda la información.
Autenticación
InfluxDB puede requerir autenticación o no.
# Try unauthenticated
influx -host 'host name' -port 'port #'
> use _internal
Si obtienes un error como este: ERR: no se pueden analizar las credenciales de autenticación
, significa que está esperando algunas credenciales.
influx –username influx –password influx_pass
Hubo una vulnerabilidad en influxdb que permitía eludir la autenticación: CVE-2019-20933
Enumeración manual
La información de este ejemplo fue tomada de aquí.
Mostrar bases de datos
Las bases de datos encontradas son telegraf y _internal (encontrarás esta en todas partes)
> show databases
name: databases
name
----
telegraf
_internal
Mostrar tablas/mediciones
Como explica la documentación de InfluxDB, las mediciones de SQL se pueden considerar como tablas de SQL. Como sugieren los nombres de las mediciones anteriores, cada una contiene información que se refiere a una entidad específica.
> show measurements
name: measurements
name
----
cpu
disk
diskio
kernel
mem
processes
swap
system
Mostrar columnas/llaves de campo
Las llaves de campo son como las columnas de la base de datos.
> 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 ...]
Volcar tabla
Y finalmente puedes volcar la tabla haciendo algo como
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 debía estar entre comillas dobles, como: select * from "cpu"
{% endhint %}
Autenticación Automatizada
msf6 > use auxiliary/scanner/http/influxdb_enum
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de Telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Utiliza Trickest para construir y automatizar flujos de trabajo con las herramientas comunitarias más avanzadas del mundo.
Obtén acceso hoy mismo:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}