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
log4j-detector — Scanner di file system che rileva versioni vulnerabili di Log4J (CVE-2021-44228, CVE-2021-45046) analizzando classi Java compilate, inclusi archivi annidati. Funziona su Linux, Windows e Mac. | Kitploit
Strumenti/GitHubGitHub/mergebase/log4j-detector
Analisi StaticaScanner di VulnerabilitàAnalisi delle VulnerabilitàSicurezza della Supply Chain
GitHubmergebase/log4j-detector

log4j-detector

Scanner di file system che rileva versioni vulnerabili di Log4J (CVE-2021-44228, CVE-2021-45046) analizzando classi Java compilate, inclusi archivi annidati. Funziona su Linux, Windows e Mac.

Vedi Repository
640964 anni faRevisionato da Kitploit

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

logo di MergeBase

Log4j-detector

Scanner che rileva versioni vulnerabili di Log4J per aiutare i team a valutare la loro esposizione a CVE-2021-44228 (CRITICA), CVE-2021-45046, CVE-2021-45105 e CVE-2021-44832. Può cercare istanze di Log4J esaminando attentamente l'intero file-system, incluse tutte le applicazioni installate. È in grado di trovare istanze di Log4J nascoste a diversi livelli di profondità. Funziona su Linux, Windows e Mac, e ovunque Java sia eseguito!

Indice

  • Introduzione
  • Esempio d'uso
  • Altri esempi d'uso
  • Interpretazione dei risultati
  • Utilizzo
  • Compilazione dal sorgente
  • Test
  • Licenza
  • Domande frequenti
    • Come funziona?
    • Questo scanner segnala solo risultati contro la libreria log4j-core. E log4j-api?
    • Perché segnalare 2.10.0, 2.15.0 e 2.16.0?
    • Cosa sono quei risultati "file1.war!/path/to/file2.zip!/path/to/file3.jar!/path/to/log4j.jar"?
    • Che dire di Log4J 1.2.x ?
    • Come posso essere sicuro che non sia un trojan che si spaccia per un rilevatore Log4J?
  • Cosa è MergeBase?

Introduzione

Attualmente segnala le versioni log4j-core 2.3.2, 2.12.4 e 2.17.1 come _SAFE_, 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 e 2.17.0 come _OKAY_ e tutte le altre versioni come _VULNERABLE_ (sebbene segnali le versioni precedenti alla 2.0-beta9 come _POTENTIALLY_SAFE_). Segnala le versioni più vecchie di log4j-1.x come _OLD_.

Riesce a rilevare correttamente log4j all'interno di jar/war eseguibili spring-boot, dipendenze mescolate in uber jar, jar shadowati e persino file jar esplosi (cioè *.class) semplicemente seduti decompressi sul file-system.

Manteniamo una raccolta di log4j-samples che utilizziamo per i test.

Esempio d'uso:

root@kitploit:~
java -jar log4j-detector-2021.12.29.jar ./samples 

-- github.com/mergebase/log4j-detector v2021.12.29 (by mergebase.com) analyzing paths (could take a while).
-- Note: specify the '--verbose' flag to have every file examined printed to STDERR.
false-hits/log4j-core-2.12.2.jar contains Log4J-2.x   == 2.12.2 _OKAY_
false-hits/log4j-core-2.12.3.jar contains Log4J-2.x   == 2.12.3 _OKAY_
false-hits/log4j-core-2.12.4.jar contains Log4J-2.x   == 2.12.4 _SAFE_
false-hits/log4j-core-2.15.0.jar contains Log4J-2.x   == 2.15.0 _OKAY_
false-hits/log4j-core-2.16.0.jar contains Log4J-2.x   == 2.16.0 _OKAY_
false-hits/log4j-core-2.17.0.jar contains Log4J-2.x   == 2.17.0 _OKAY_
false-hits/log4j-core-2.17.1.jar contains Log4J-2.x   >= 2.17.1 _SAFE_
false-hits/log4j-core-2.3.1.jar contains Log4J-2.x   == 2.3.1 _OKAY_
false-hits/log4j-core-2.3.2.jar contains Log4J-2.x   == 2.3.2 _SAFE_
true-hits/log4j-core-2.0-beta9.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.10.0.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.10.0.zip contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.11.0.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.11.1.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.11.2.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.12.0.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.12.1.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.14.0.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.14.1.jar contains Log4J-2.x   >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.2.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.3.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.4.1.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.4.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.9.1.jar contains Log4J-2.x   >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
old-hits/log4j-1.1.3.jar contains Log4J-1.x   <= 1.2.17 _OLD_
old-hits/log4j-1.2.17.jar contains Log4J-1.x   <= 1.2.17 _OLD_
old-hits/log4j-core-2.0-beta2.jar contains Log4J-2.x   <= 2.0-beta8 _POTENTIALLY_SAFE_ (Did you remove JndiLookup.class?)

Interpretazione dei risultati

_VULNERABLE_ -> Devi aggiornare o rimuovere questo file.

_OKAY_ -> Segnaliamo questo per le versioni Log4J 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 e 2.17.0. Raccomandiamo di aggiornare alla 2.17.1.

_SAFE_ -> Attualmente segnaliamo questo solo per le versioni Log4J 2.3.2, 2.12.4 e 2.17.1 (e successive).

_OLD_ -> Sei al sicuro da CVE-2021-44228, ma dovresti pianificare un aggiornamento perché Log4J 1.2.x è in EOL da 7 anni e presenta diverse vulnerabilità note.

_POTENTIALLY_SAFE_ -> Il file "JndiLookup.class" non è presente, o perché la tua versione di Log4J è molto vecchia (precedente alla 2.0-beta9), o perché qualcuno ha già rimosso questo file. Assicurati che sia stato qualcuno del tuo team o della tua azienda a rimuovere "JndiLookup.class" se è questo il caso, perché gli aggressori sono noti per rimuovere questo file da soli per impedire ad altri aggressori concorrenti di ottenere l'accesso a sistemi compromessi.

Utilizzo

root@kitploit:~
java -jar log4j-detector-2021.12.29.jar 

Usage: java -jar log4j-detector-2021.12.29.jar [--verbose] [--json] [--stdin] [--exclude=X] [paths to scan...]

  --json       - Output STDOUT results in JSON.  (Errors/warning still emitted to STDERR)
  --stdin      - Read STDIN for paths to explore (one path per line)
  --exclude=X  - Where X is a JSON list containing full paths to exclude. Must be valid JSON.

                 Example: --exclude='["/dev", "/media", "Z:\TEMP"]'

Exit codes:  0 = No vulnerable Log4J versions found.
             1 = At least one legacy Log4J 1.x version found.
             2 = At least one vulnerable Log4J version found.

About - MergeBase log4j detector (version 2021.12.29)
Docs  - https://github.com/mergebase/log4j-detector 
(C) Copyright 2021 Mergebase Software Inc. Licensed to you via GPLv3.

Compilazione dal sorgente:

root@kitploit:~
git clone https://github.com/mergebase/log4j-detector.git
cd log4j-detector/
mvn install
java -jar target/log4j-detector-latest.jar

Test:

Manteniamo una raccolta di campioni log4j qui: https://github.com/mergebase/log4j-samples

Licenza

GPL versione 3.0

Domande frequenti

Come funziona?

Il compilatore Java memorizza le stringhe letterali direttamente nei file *.class compilati. Se log4j-detector rileva un file chiamato "JndiManager.class" sul tuo file-system, lo esamina per trovare questa stringa: "Invalid JNDI URI - {}". Risulta che quella specifica stringa letterale è presente solo nella versione patchata di Log4J (versione 2.15.0). Qualsiasi versione di Log4J senza quella stringa è vulnerabile.

Questa stessa tecnica di esaminare i file *.class per le stringhe letterali è ulteriormente estesa per rilevare con precisione le versioni sicure 2.3.2, 2.12.4 e 2.17.1.

Questo scanner segnala solo risultati contro la libreria log4j-core. E log4j-api?

Molti scanner (incluso il Dependabot di GitHub) attualmente segnalano sia la libreria "log4j-core" che "log4j-api" come vulnerabili. Questi scanner sono errati. Attualmente non esiste alcuna versione della libreria "log4j-api" che possa essere sfruttata da nessuna di queste vulnerabilità.

In MergeBase siamo orgogliosi della precisione della nostra scansione. Sei già abbastanza impegnato a patchare e difendere i tuoi sistemi. Non vogliamo che perdi tempo con falsi positivi. Ecco perché non segnaliamo alcun risultato contro log4j-api.

Perché segnalare 2.3.1, 2.10.0, 2.12.2, 2.12.3, 2.15.0, 2.16.0 e 2.17.0?

La versione 2.10.0 è importante perché è la prima versione in cui la vulnerabile "funzione di ricerca dei messaggi" di Log4J può essere disabilitata tramite la configurazione di Log4J.

La versione 2.12.2 è importante perché è una versione compatibile con Java 7 di Log4J che non è vulnerabile a CVE-2021-44228.

Le versioni 2.15.0 e 2.16.0 sono importanti perché sono le prime versioni in cui la configurazione predefinita out-of-the-box di Log4J non è vulnerabile a CVE-2021-44228.

E le versioni 2.3.2, 2.12.4 e 2.17.1 sono importanti perché non sono vulnerabili a CVE più recenti come CVE-2021-45046 e CVE-2021-45105. Sebbene queste siano vulnerabilità molto meno gravi, prevediamo che tutti vorranno eseguire il patch a una delle versioni 2.3.2, 2.12.4 o 2.17.1.

Cosa sono quei risultati "file1.war!/path/to/file2.zip!/path/to/file3.jar!/path/to/log4j.jar"?

Il "!" significa che log4j-detector è entrato in un archivio zip (ad es., *.zip, *.ear, *.war, *.aar, *.jar). Poiché i file zip possono contenere file zip, un singolo risultato può contenere più di un indicatore "!" nel suo risultato.

Nota: log4j-detector entra ricorsivamente solo negli archivi zip. Non entra in tar, gz o bz2, ecc. La ragione principale è che i sistemi Java sono spesso configurati per eseguire jar all'interno di jar, ma non sono mai configurati per eseguire altri formati di file (per quanto ne so!). E quindi una copia di log4j all'interno di un *.tar.gz probabilmente non è raggiungibile per un sistema Java in esecuzione, e quindi non è una vulnerabilità degna di essere segnalata.

2a nota: per zip all'interno di zip, il nostro scanner carica lo zip interno completamente in memoria (usando ByteArrayInputStream) prima di tentare di esaminarlo. Potresti aver bisogno di dare a Java un po' di memoria extra se hai zip interni estremamente grandi sul tuo sistema (ad es., 1 GB o più).

Che dire di Log4J 1.2.x ?

Solo le versioni di Log4J 2.x (dalla 2.0-beta9 alla 2.14.1) sono vulnerabili a CVE-2021-44228.

Come posso essere sicuro che non sia un trojan che si spaccia per un rilevatore Log4J?

Ottima domanda! Poiché includiamo il codice sorgente completo qui su Github (tutte le 2500 righe di Java), così come i passaggi per compilarlo, e poiché questo strumento ha zero dipendenze, non dovrebbe volerci molto per studiare attentamente il codice a tua soddisfazione. Se non ti fidi di Maven, puoi andare direttamente nella directory "src/main/java/com/mergebase/log4j" e digitare "javac *.java". Funziona anche così!

Firmiamo anche il jar precompilato che teniamo nella radice del repository (./log4j-detector-2021.12.29.jar) con la chiave di firma del codice di MergeBase. Esegui "jarsigner -verbose -verify log4j-detector-2021.12.29.jar" per confermarlo.

Cosa è MergeBase?

MergeBase

MergeBase è un'azienda SCA (Software Composition Analysis) con sede a Vancouver, Canada. Siamo simili ad aziende come Snyk, Sonatype, Blackduck, ecc., in quanto aiutiamo le aziende a rilevare e gestire le librerie open-source vulnerabili nei loro software. Dai un'occhiata! Abbiamo grande precisione, grande supporto linguistico e non siamo neanche troppo costosi: mergebase.com/pricing.

Saremmo felici se qualcuno approfittasse di una prova gratuita di 2 settimane del nostro prodotto SCA! E se invii un'email al nostro CEO ([email protected]) con oggetto "log4j-detector", estenderemo la tua prova gratuita a 4 settimane.

Scarica lo strumento