Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
livewire-honeypot — Honeypot ad alta interazione che replica un'app Laravel/Livewire vulnerabile. Cattura exploit RCE e webshell che hanno come bersaglio CVE-2024-47823, CVE-2025-54068 e CVE-2025-14894, quindi li analizza in container Docker in sandbox per estrarre gli IOC. | Kitploit
Strumenti/GitHubGitHub/helgesverre/livewire-honeypot
Gestione degli Indicatori di Compromissione (IOC)Analisi Dinamica (Sandboxing)Analisi delle VulnerabilitàExploitSicurezza WebAnalisi MalwareCommand and ControlThreat IntelligenceRisposta agli Incidenti

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
GitHubhelgesverre/livewire-honeypot

livewire-honeypot

Honeypot ad alta interazione che replica un'app Laravel/Livewire vulnerabile. Cattura exploit RCE e webshell che hanno come bersaglio CVE-2024-47823, CVE-2025-54068 e CVE-2025-14894, quindi li analizza in container Docker in sandbox per estrarre gli IOC.

Vedi Repository
673 mesi faNon ancora revisionato
Condividi

Livewire Honeypot

Honeypot Python 3.11+ FastAPI License

Livewire Honeypot

Un honeypot ad alta interazione che si maschera da applicazione Laravel/Livewire vulnerabile. Cattura i tentativi di exploit che mirano a CVE note di Livewire, archivia file malevoli caricati (webshell) e payload di remote code execution (RCE) con deduplicazione SHA-256 e, opzionalmente, li esegue in un container Docker sandboxed per estrarre indicatori di compromissione (IOC) — URL, IP e domini che il malware tenta di contattare.

Il sistema funziona come due processi separati per sicurezza: un web server che cattura i payload (senza accesso a Docker) e un worker sandbox che li analizza in container isolati.

Come funziona

root@kitploit:~
Attaccante → Nginx → FastAPI → SQLite ← Sandbox Worker (Docker)
                   (cattura)            (polling dei job, scrive gli IOC)
  1. Facade — Serve pagine di login/registrazione Laravel realistiche con attributi Livewire wire:, token XSRF e header X-Powered-By: PHP/8.3.12. Gli scanner automatici vedono quello che sembra una vera app vulnerabile.

  2. Cattura — Ogni richiesta HTTP viene registrata su SQLite (IP, header, hash del body, timestamp) da un layer middleware ASGI, in modo trasparente, prima che avvenga qualsiasi routing.

  3. Trappole — Gli endpoint Livewire accettano upload di file e messaggi dei componenti proprio come farebbe il framework reale. I payload vengono classificati (codice PHP, oggetti serializzati, comandi shell) e archiviati con deduplicazione SHA-256. Ogni payload interessante crea un job persistente nella coda sandbox_jobs.

  4. Sandbox — Un processo worker separato esegue il polling dei job in attesa ed esegue ogni payload in un container Docker effimero (filesystem di sola lettura, nessuna rete, cap_drop=ALL). Uno shim LD_PRELOAD intercetta le chiamate di rete libc per registrare i tentativi di comunicazione C2 (command-and-control). L'analizzatore estrae gli IOC e valuta i potenziali endpoint C2 usando euristiche.

CVE mirate

CVECVSSRiepilogoEndpoint trappola
CVE-2024-478239.8 CriticaRCE tramite upload di file Livewire mediante bypass del tipo MIME. Le estensioni dei file vengono dedotte dal tipo MIME invece di essere validate dal nome file, consentendo upload .php mascherati da immagini. Colpisce Livewire < 2.12.7 e < 3.5.2.POST /livewire/upload-file
CVE-2025-540689.2 CriticaRCE tramite idratazione delle proprietà di Livewire. Il processo di idratazione non riesce a sanificare i tipi di oggetto negli aggiornamenti delle proprietà dei componenti, consentendo a payload iniettati di essere eseguiti lato server. Colpisce Livewire 3.0.0-beta.1 fino a 3.6.3.POST /livewire/message
CVE-2025-14894CriticaRCE tramite upload senza restrizioni in Livewire Filemanager. La mancanza di validazione del tipo di file e del MIME consente l'upload non autenticato di file PHP eseguibili.POST /livewire/upload-file

Una trappola catch-all *.php cattura anche il probing post-exploitation per i nomi di webshell comuni (ad es. accesson.php, wp-login.php, admin.php).

Avvio rapido

Prerequisiti: Python 3.11+ e uv.

root@kitploit:~
git clone https://github.com/HelgeSverre/livewire-honeypot.git
cd livewire-honeypot

# Installa le dipendenze
uv sync

# Avvia il web server (solo cattura, Docker non necessario)
DATA_DIR=./data uv run uvicorn honeypot.main:app --reload --port 8000

# In un secondo terminale — avvia il worker sandbox (richiede Docker)
DATA_DIR=./data uv run python -m honeypot.worker

# Esegui i test
uv run pytest tests/ -v

Il web server funziona in modo autonomo — cattura e archivia tutto anche senza il worker sandbox attivo. Avvia il worker quando vuoi l'analisi automatica dei payload.

Nota: La directory src/ è nel Python path tramite pyproject.toml (src-layout), quindi honeypot.main:app punta a src/honeypot/main.py.

Distribuzione

Avvio rapido: DigitalOcean (o qualsiasi VPS Ubuntu 24.04)

Ti serviranno:

  • Un account DigitalOcean (o qualsiasi provider che ti dia root su Ubuntu 24.04).
  • Un dominio che controlli. La TLS rende la trappola realistica agli occhi degli scanner e, nel momento in cui certbot emette un certificato, il tuo hostname finisce nei log di Certificate Transparency — è ciò che Shodan, Censys e la maggior parte dei kit di exploit di massa usano per scoprire nuovi target entro poche ore.

Il deploy completo è un singolo comando una volta che il VPS esiste. Lo script gestisce ogni passaggio da "droplet nudo" a "servizio in esecuzione con TLS" — pacchetti apt, utenti e gruppi, venv Python, immagine sandbox, nginx, certbot e regole firewall.

root@kitploit:~
# 1. Crea un droplet da $6/mese (Ubuntu 24.04, 1 GB di RAM è sufficiente).
#    Su DigitalOcean:
doctl compute droplet create veritron-honeypot \
    --size s-1vcpu-1gb \
    --image ubuntu-24-04-x64 \
    --region fra1 \
    --ssh-keys "$(doctl compute ssh-key list --format ID --no-header | head -1)" \
    --wait

# 2. Punta il record A del tuo dominio all'IP del droplet.
#    Aspetta che il DNS risolva prima di continuare.
dig +short your-domain.example   # dovrebbe restituire l'IP del droplet

# 3. Copia il progetto sul droplet.
rsync -az --exclude='.git' --exclude='.venv' --exclude='data' \
    ./ root@<droplet-ip>:/opt/honeypot/

# 4. Esegui lo script di bootstrap. Passare il tuo dominio abilita la TLS tramite certbot.
ssh root@<droplet-ip> 'cd /opt/honeypot && [email protected] \
    bash deploy/setup.sh your-domain.example'

Questo è tutto. L'honeypot ora serve una falsa pagina di login Laravel/Livewire su HTTPS, cattura ogni richiesta su SQLite ed è pronto ad analizzare i payload nella sandbox Docker.

Cosa fa lo script di bootstrap

deploy/setup.sh è idempotente — rieseguirlo è sicuro. In ordine:

  1. Attende che cloud-init / unattended-upgrades rilascino il lock di dpkg (i nuovi droplet DO lo trattengono per 1-3 minuti dopo il boot).
  2. Installa nginx, certbot, docker.io, Python 3.12 di sistema, sqlite3.
  3. Installa uv (Astral) in /root/.local/bin.
  4. Crea gli utenti di servizio honeypot (web) e sandbox (worker), più il gruppo condiviso honeypot-data.
  5. Esegue uv sync --python /usr/bin/python3.12. Usiamo deliberatamente il Python installato via apt piuttosto che l'interprete fornito da uv — il Python di uv vive in /root/.local/share/uv/, che un utente di servizio non privilegiato non può attraversare, e ottieni un confuso status=203/EXEC da systemd se lasci che sia uv a scegliere l'interprete.
  6. Crea /var/honeypot/ con il bit setgid e la proprietà di gruppo condivisa, così entrambi i servizi possono leggere le scritture dell'altro.
  7. Installa i file delle unità systemd e riscrive l'ExecStart del worker per usare il demone Docker di sistema (l'unità inclusa presuppone Docker rootless, che è più complicato da configurare).
  8. Compila l'immagine del container sandbox (docker build -t honeypot-sandbox sandbox/).
  9. Scrive la configurazione del sito nginx e inserisce la direttiva limit_req_zone in /etc/nginx/conf.d/ (deve stare nel blocco http {}, non in server {}).
  10. Apre 22/80/443 in ufw.
  11. Avvia entrambi i servizi ed esegue certbot --nginx se è stato passato un dominio.

Configurazione manuale

Se vuoi eseguire ogni passaggio da solo invece di usare setup.sh, la storia shell equivalente vive in deploy/setup.sh come fasi commentate.

Architettura dei servizi

ServizioUtenteScopoAccesso a Docker
honeypot.servicehoneypotWeb server — cattura richieste e payloadNo
honeypot-worker.servicesandboxWorker sandbox — analizza i payload in DockerSì

Entrambi i servizi condividono /var/honeypot/ per il database SQLite e l'archiviazione dei payload. Il processo web non ha accesso al socket Docker, quindi anche se compromesso tramite il traffico degli attaccanti, non può creare container sull'host.

Operazioni

root@kitploit:~
# Visualizza i log
journalctl -u honeypot -f
journalctl -u honeypot-worker -f

# Riavvia i servizi
systemctl restart honeypot honeypot-worker

# Aggiornamento
cd /opt/honeypot && git pull && uv sync
docker build -t honeypot-sandbox sandbox/
systemctl restart honeypot honeypot-worker

Configurazione

Tutte le impostazioni sono controllate tramite variabili d'ambiente (impostate nei file delle unità systemd o esportate prima dell'esecuzione):

VariabileDefaultDescrizione
DATA_DIR/var/honeypotDirectory di base per tutti i dati
DB_PATH$DATA_DIR/captures.dbPercorso del database SQLite
SANDBOX_TIMEOUT60Secondi massimi per esecuzione sandbox
SANDBOX_MEMORY128mLimite di memoria del container
SANDBOX_CPUS0.5Limite CPU del container
SANDBOX_MAX_CONCURRENT3Numero massimo di container sandbox concorrenti
SANDBOX_IMAGEhoneypot-sandboxImmagine Docker per la sandbox
WORKER_POLL_INTERVAL2.0Secondi tra i polling dei job

Interrogare i dati catturati

Tutti i dati vivono in un singolo database SQLite (default: /var/honeypot/captures.db).

root@kitploit:~
# Richieste recenti
sqlite3 /var/honeypot/captures.db \
  "SELECT timestamp, source_ip, method, path, matched_trap
   FROM requests ORDER BY id DESC LIMIT 20;"

# Payload unici per frequenza
sqlite3 /var/honeypot/captures.db \
  "SELECT sha256, filename, payload_type, times_seen, sandbox_status
   FROM payloads ORDER BY times_seen DESC;"

# Principali IP attaccanti
sqlite3 /var/honeypot/captures.db \
  "SELECT ip, total_requests, first_seen, last_seen
   FROM attackers ORDER BY total_requests DESC LIMIT 10;"

# Risultati sandbox con IOC estratti (JSON)
sqlite3 /var/honeypot/captures.db \
  "SELECT payload_id, exit_code, duration_seconds, c2_urls_found, iocs
   FROM sandbox_runs ORDER BY id DESC LIMIT 5;"

# Job sandbox in attesa
sqlite3 /var/honeypot/captures.db \
  "SELECT id, payload_sha256, status, created_at
   FROM sandbox_jobs ORDER BY id DESC LIMIT 10;"

I dati IOC in sandbox_runs.iocs sono archiviati come JSON con chiavi: domains, ips, emails, urls, hashes. Estraili e inviali alla tua piattaforma di threat intelligence (MISP, OpenCTI, ecc.) secondo necessità.

Struttura del progetto

root@kitploit:~
src/honeypot/
  main.py              # App web FastAPI (solo cattura, niente Docker)
  worker.py            # Worker sandbox autonomo (polling SQLite, richiede Docker)
  config.py            # Impostazioni da variabili d'ambiente
  capture/
    database.py        # SQLite asincrono — requests, payloads, coda sandbox_jobs
    logger.py          # Middleware ASGI — registra ogni richiesta
    payloads.py        # Archiviazione con dedup SHA-256 + classificazione dei payload
  facade/
    routes.py          # Pagine con fingerprint Laravel (login, register, ecc.)
    templates/         # HTML Jinja2 con attributi Livewire wire:
    static/            # Falso livewire.js (fingerprint v3.5.1)
  traps/
    livewire.py        # POST /livewire/message, /upload-file, /preview-file
    php_catchall.py    # Catch-all per probing *.php
  sandbox/
    orchestrator.py    # Ciclo di vita del container Docker + hardening
    analyzer.py        # Parsing degli artefatti + estrazione IOC + valutazione C2
deploy/
  nginx.conf           # Reverse-proxy con rate limiting
  honeypot.service     # Unità systemd (web)
  honeypot-worker.service  # Unità systemd (worker sandbox)
  setup.sh             # Script di bootstrap VPS
sandbox/
  Dockerfile           # Immagine del container sandbox (PHP 8.3 + strumenti attaccante)
  entrypoint.sh        # Entry-point del container con shim di rete LD_PRELOAD

Disclaimer

Questo è uno strumento di ricerca per raccogliere campioni di malware e osservare il comportamento degli attaccanti su infrastruttura di tua proprietà. Non è un prodotto di sicurezza in produzione. Distribuiscilo solo su sistemi che controlli e tieni presente che catturare ed eseguire payload degli attaccanti potrebbe avere implicazioni legali nella tua giurisdizione. Il database SQLite e i file dei payload crescono senza limiti — monitora l'uso del disco e implementa policy di conservazione secondo necessità.

Contribuire

Segnalazioni di problemi e pull request sono benvenuti.

Licenza

MIT

Scarica lo strumento