Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
log4shell_sentinel — Uno Scanner intelligente per Log4Shell/Log4j/CVE-2021-44228 | Kitploit
Strumenti/GitHubGitHub/ossie-git/log4shell_sentinel
Scanner di VulnerabilitàSicurezza dei ContenitoriAnalisi delle VulnerabilitàInformatica ForenseRisposta agli IncidentiAnalisi dei Log
GitHubossie-git/log4shell_sentinel

log4shell_sentinel

Uno Scanner intelligente per Log4Shell/Log4j/CVE-2021-44228

Vedi Repository
141264 anni faNon ancora revisionato

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 →
Condividi

Log4Shell Sentinel - Uno scanner intelligente per CVE-2021-44228

Introduzione

Sebbene siano stati rilasciati alcuni strumenti eccellenti per aiutare le organizzazioni a scansionare i propri ambienti alla ricerca di applicazioni vulnerabili alla critica vulnerabilità Log4J / CVE-2021-44228, ho ritenuto che:

  • nessuno degli strumenti che ho incontrato fosse pensato per consentire agli analisti di tracciare un determinato risultato durante l'intero processo di remediation. Log4Shell Sentinel produce i suoi risultati in formato CSV, aspettandosi che l'analista poi elabori e sezioni i dati in Excel, aggiunga alcuni risultati a una lista di ignorati e riesegua la scansione, confronti le scansioni, aggiunga dati ai risultati, ecc.
  • gli scanner basati su file lasciano molto lavoro da fare agli analisti, specialmente in ambienti containerizzati

Così è nato Log4Shell Sentinel. Log4Shell Sentinel è uno scanner basato su file con alcune caratteristiche uniche. Non intende sostituire tutti gli altri strumenti disponibili, ma può integrarli.

Caratteristiche

Log4Shell Sentinel è uno scanner basato su file. Cerca applicazioni Java-based scandagliando un sistema target alla ricerca di artefatti nei seguenti formati di file:

Tipo di fileDettagli
Simple jarCaso in cui il file log4j-core non è incorporato.
Fat / Uber jarUn uber jar è un jar che contiene sia le tue classi/pacchetto che tutte le dipendenze dell'applicazione (librerie, risorse e file metadati) all'interno di un unico file jar. Questa è l'opzione di deployment più comune.
WARUn file war (Web Application Archive) contiene codice JSP, HTML e JavaScript oltre alle librerie e altre risorse. Questo formato è meno comune.
EARUn file ear (Enterprise Application Archive) è un altro formato che era più comune con Jakarta EE per i deployment.

e cerca istanze di jar log4j-core vulnerabili. Quindi:

  • calcola un hash MD5 dell'artefatto. Ciò consente a un analista di identificare la stessa applicazione in esecuzione su macchine/container diversi e trattarla come un unico risultato

  • per i file determinati come appartenenti a un container, ad esempio: /var/lib/docker/overlay2/192768f471818601094bf4edd96d14bfc0e2b178a04a2efd00b2231ad4e46b33/merged/app/spring-boot-application.jar, esegue il lavoro pesante di mappare il file all'immagine corrispondente. Ad esempio, tradurrebbe quanto sopra nell'immagine: ghcr.io/christophetd/log4shell-vulnerable-app:latest. Poiché i vari runtime dei container memorizzano questa mappatura in modi diversi, ciò può far risparmiare ore di frustrazione a un analista. Inoltre consente a un analista di trattare un certo numero di container che eseguono una singola applicazione come un unico risultato.

  • rimuove corrispondenze inutili come quelle relative a container attualmente non in esecuzione, incluse immagini in cache. Ciò consente all'analista di concentrarsi su ciò che è importante e risparmia ore di lavoro inutili

  • consente a un analista di ignorare corrispondenze in base a:

    • hash MD5
    • percorso file
    • immagine container

    Ciò permette all'analista di rimuovere applicazioni che sa non essere vulnerabili o che corrispondono ad applicazioni da riga di comando che non rappresentano una minaccia. Ad esempio, se viene rilevata un'istanza di Logstash, un analista può scegliere di ignorarla se non utilizza lo strumento o lo esegue occasionalmente da riga di comando.

  • è ottimizzato per funzionare con i tuoi strumenti di configuration management come Ansible, dandoti la possibilità di scansionare rapidamente il tuo ambiente in pochi minuti

Arricchimento dei metadati

Per i dettagli sull'arricchimento dei metadati aggiunto da Log4Shell Sentinel, consulta il mio post sul blog.

Installazione

Il modo più semplice è scaricare direttamente il binario precompilato.

Compilazione dal sorgente

Anche questo è semplice. Tuttavia, probabilmente vorrai compilare una versione staticamente collegata per evitare variazioni legate a GLIBC nel tuo ambiente. Lo strumento utilizza i seguenti moduli che usano CGO per default:

  • os/user
  • net

Per compilare una versione staticamente collegata che utilizzi le versioni Go di queste librerie, basta clonare il repository e poi eseguire:

$ CGO_ENABLED=0 go build -ldflags="-s -w"
$ ldd log4shell_sentinel
        not a dynamic executable

Utilizzo

$ ./log4shell_sentinel -h
NAME:
   Log4Shell Sentinel - by Osama Elnaggar

USAGE:
   log4shell_sentinel [global options] command [command options] [arguments...]

VERSION:
   v1.0.0

COMMANDS:
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --path value, -p value       Path to search (default: ".")
   --no-banner, --nb            Suppress banner (default: false)
   --no-messages, --nm          Suppress messages except for CSV output (default: false)
   --no-header, --nh            Suppress header in CSV output (default: false)
   --imd5 value, --im value     Ignore MD5 hashes. Refer to the GitHub page for expected format
   --ipath value, --ip value    Ignore file path matches. Refer to the GitHub page for expected format
   --icimage value, --ic value  Ignore container image matches. Refer to the GitHub page for expected format
   --print-headers, --ph        Print CSV Headers only (default: false)
   --help, -h                   show help (default: false)
   --version, -v                print the version (default: false)

Di default, una scansione analizzerà semplicemente la directory corrente. Ad esempio:

$ ./log4shell_sentinel

░█░░░█▀█░█▀▀░█░█░█▀▀░█░█░█▀▀░█░░░█░░░░░█▀▀░█▀▀░█▀█░▀█▀░▀█▀░█▀█░█▀▀░█░░
░█░░░█░█░█░█░░▀█░▀▀█░█▀█░█▀▀░█░░░█░░░░░▀▀█░█▀▀░█░█░░█░░░█░░█░█░█▀▀░█░░
░▀▀▀░▀▀▀░▀▀▀░░░▀░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀░░░▀▀▀░▀▀▀░▀░▀░░▀░░▀▀▀░▀░▀░▀▀▀░▀▀▀

- A CVE-2021-44228/CVE-2021-45046/CVE-2021-45105 Scanner
- v1.0.0
- by Osama Elnaggar

[*] WARNING: Running as non-root user.
             Non-readable files / dirs will be skipped
             Container mapping will fail

[*] Starting shallow scan ............ [DONE]
[*] Starting deep scan ............... [DONE]
[*] Calculating MD5 hashes ........... [DONE]
[*] Performing container image lookups [DONE]
[*] Processing ignore list(s) ........ [DONE]
[*] Generating output ................ [DONE]

IP,Hostname,AppName,Team,Ignore (Y/N),Comments,MD5Hash,Timestamp,Container,ContainerImage,FullPath,Version
192.168.121.121,server3,,,,,4e615cd580758b70c49ade1f79103328,2021-12-21T07:38:09Z,true,ghcr.io/christophetd/log4shell-vulnerable-app:latest,/run/containerd/io.containerd.runtime.v2.task/k8s.io/dc2c9c214809f506283c917244cd126a9b056ac7274322d12b59c9196d95dd9b/rootfs/app/spring-boot-application.jar,log4j-core-2.14.1.jar

Riceverai immediatamente un WARNING se lo esegui come utente non-root poiché richiede permessi di root:

  • se intendi scansionare l'intero filesystem (consigliato)
  • se intendi arricchire le ricerche container -> immagine (è richiesto l'accesso al demone Docker, file di configurazione, ecc.)

Funzionerà comunque senza privilegi di root ma potrebbe non darti i migliori risultati.

Comprensione dei risultati

Un esempio di risultato è:

IP,Hostname,AppName,Team,Ignore (Y/N),Comments,MD5Hash,Timestamp,Container,ContainerImage,FullPath,Version
192.168.121.121,server3,,,,,4e615cd580758b70c49ade1f79103328,2021-12-21T07:38:09Z,true,ghcr.io/christophetd/log4shell-vulnerable-app:latest,/run/containerd/io.containerd.runtime.v2.task/k8s.io/dc2c9c214809f506283c917244cd126a9b056ac7274322d12b59c9196d95dd9b/rootfs/app/spring-boot-application.jar,log4j-core-2.14.1.jar

Alcuni campi sono intenzionalmente lasciati vuoti perché l'analista li compili in Excel, ecc. Una breve descrizione di ciascun campo è riportata di seguito:

Scarica lo strumento