hacktricks/network-services-pentesting/8086-pentesting-influxdb.md

7.9 KiB
Raw Blame History

8086 - Pentesting InfluxDB


Use Trickest para construir facilmente e automatizar fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.
Acesse hoje:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Informações Básicas

InfluxDB é um banco de dados de séries temporais (TSDB) de código aberto desenvolvido pela empresa InfluxData.

Um banco de dados de séries temporais (TSDB) é um sistema de software otimizado para armazenar e servir séries temporais por meio de pares associados de tempo(s) e valor(es).

Conjuntos de dados de séries temporais são relativamente grandes e uniformes em comparação com outros conjuntos de dados - geralmente compostos por um carimbo de data/hora e dados associados. Conjuntos de dados de séries temporais também podem ter menos relacionamentos entre entradas de dados em diferentes tabelas e não requerem armazenamento indefinido de entradas. As propriedades únicas dos conjuntos de dados de séries temporais significam que os bancos de dados de séries temporais podem fornecer melhorias significativas no espaço de armazenamento e desempenho em relação aos bancos de dados de propósito geral. Por exemplo, devido à uniformidade dos dados de séries temporais, algoritmos de compressão especializados podem fornecer melhorias em relação aos algoritmos de compressão regulares projetados para trabalhar com dados menos uniformes. Bancos de dados de séries temporais também podem ser configurados para excluir regularmente dados antigos, ao contrário de bancos de dados regulares que são projetados para armazenar dados indefinidamente. Índices de banco de dados especiais também podem fornecer melhorias no desempenho da consulta. (De aqui).

Porta padrão: 8086

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

Enumeração

Do ponto de vista de um pentester, este é outro banco de dados que poderia estar armazenando informações sensíveis, então é interessante saber como extrair todas as informações.

Autenticação

O InfluxDB pode exigir autenticação ou não

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

Se você receber um erro como este: ERR: unable to parse authentication credentials, significa que está esperando algumas credenciais.

influx username influx password influx_pass

Havia uma vulnerabilidade no influxdb que permitia contornar a autenticação: CVE-2019-20933

Enumeração Manual

As informações deste exemplo foram retiradas aqui.

Mostrar bancos de dados

Os bancos de dados encontrados são telegraf e _internal (você encontrará este em todo lugar)

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

Mostrar tabelas/medições

A documentação do InfluxDB explica que as medições no InfluxDB podem ser comparadas com tabelas SQL. A nomenclatura dessas medições indica o conteúdo respectivo, cada uma contendo dados relevantes para uma entidade específica.

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

Mostrar colunas/chaves de campo

As chaves de campo são como as colunas do banco de dados

> 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 ...]

Despejar Tabela

E finalmente você pode despejar a tabela fazendo algo assim:

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" %} Em alguns testes com a bypass de autenticação, foi observado que o nome da tabela precisava estar entre aspas duplas, como: select * from "cpu" {% endhint %}

Autenticação Automatizada

msf6 > use auxiliary/scanner/http/influxdb_enum
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:


Use Trickest para construir e automatizar fluxos de trabalho facilmente com as ferramentas comunitárias mais avançadas do mundo.
Acesse hoje:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}