8086 - Pentesting InfluxDB

Reading time: 3 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

Temel Bilgiler

InfluxDB, InfluxData tarafından geliştirilen açık kaynaklı bir zaman serisi veritabanı (TSDB)'dir. TSDB'ler, zaman damgası-değer çiftlerinden oluşan zaman serisi verilerini depolamak ve sunmak için optimize edilmiştir. Genel amaçlı veritabanlarıyla karşılaştırıldığında, TSDB'ler zaman serisi veri setleri için depolama alanı ve performans açısından önemli iyileştirmeler sunar. Özel sıkıştırma algoritmaları kullanırlar ve eski verileri otomatik olarak kaldıracak şekilde yapılandırılabilirler. Özel veritabanı indeksleri de sorgu performansını artırır.

Varsayılan port: 8086

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

Enumeration

Bir pentester açısından bu, hassas bilgileri depolayabilecek başka bir veritabanıdır, bu yüzden tüm bilgileri nasıl dökebileceğini bilmek ilginçtir.

Authentication

InfluxDB kimlik doğrulaması gerektirebilir veya gerektirmeyebilir.

bash
# Try unauthenticated
influx -host 'host name' -port 'port #'
> use _internal

Eğer bu tür bir hata alıyorsanız: ERR: unable to parse authentication credentials, bu, bazı kimlik bilgileri beklediği anlamına gelir.

influx –username influx –password influx_pass

InfluxDB'de kimlik doğrulamasını atlamaya izin veren bir güvenlik açığı vardı: CVE-2019-20933

Manuel Sayım

Bu örneğin bilgileri buradan alınmıştır.

Veritabanlarını Göster

Bulunan veritabanları telegraf ve internal'dir (bu veritabanını her yerde bulacaksınız).

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

Tablo/ölçümleri göster

The InfluxDB documentation ölçümlerin InfluxDB'deki SQL tablolarıyla paralel olduğunu açıklar. Bu ölçümlerin adlandırması, her birinin belirli bir varlıkla ilgili verileri barındırdığını gösterir.

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

Sütunları/alan anahtarlarını göster

Alan anahtarları, veritabanının sütunları gibidir.

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

Ve sonunda tabloyu dökebilirsiniz şöyle bir şey yaparak

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

Kimlik doğrulama atlatma ile yapılan bazı testlerde, tablonun adının çift tırnak içinde olması gerektiği belirtildi: select * from "cpu"

Otomatik Kimlik Doğrulama

bash
msf6 > use auxiliary/scanner/http/influxdb_enum

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin