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
Log4JShell-Bytecode-Detector — Scanner locale di bytecode per la vulnerabilità Log4JShell (CVE-2021-44228) | Kitploit
Strumenti/GitHubGitHub/codeshield-security/log4jshell-bytecode-detector
Analisi StaticaScanner di VulnerabilitàAnalisi del CodiceAnalisi di BinariSicurezza della Supply ChainRisposta agli Incidenti
GitHubcodeshield-security/log4jshell-bytecode-detector

Log4JShell-Bytecode-Detector

Scanner locale di bytecode per la vulnerabilità Log4JShell (CVE-2021-44228)

Vedi RepositorySito web
499164 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

🔍 Rilevatore Bytecode Log4JShell

Log4jShell Bytecode Detector è uno strumento open source che aiuta a identificare se un file jar è affetto dalla vulnerabilità critica CVE-2021-44228. Lo strumento analizza il file jar e confronta le classi con un insieme di hash vulnerabili per le classi all'interno del file jar. Gli hash sono stati precalcolati per gli artefatti su Maven Central.

AGGIORNAMENTO IMPORTANTE: Abbiamo esteso l'elenco degli artefatti interessati su Maven Central. L'elenco contiene 18.816 artefatti. Gli artefatti o utilizzano log4j-core come dipendenza dichiarata, oppure abbiamo identificato file .class all'interno degli artefatti che corrispondono alle versioni interessate di log4j-core.

📝 Come eseguire

  1. Scarica il file jar dalla sezione releases.
  2. Esegui java -cp <PERCORSO_DEL_JAR_SCARICATO> de.codeshield.log4jshell.Log4JDetector <PERCORSO_ASSOLUTO_DEL_JAR_DA_CONTROLLARE>

Se il jar è interessato, lo strumento stampa informazioni sulla riga di comando:

CVE-2021-44228 found declared as dependency in META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml
CVE-2021-44228 found in class file org/apache/logging/log4j/core/net/JndiManager$1.class

📝 Come eseguire su un server live (senza dover fermare le istanze Java in esecuzione)

  1. Scarica il file jar dalla sezione releases.
  2. Esegui java -cp <PERCORSO_DEL_JAR_SCARICATO> de.codeshield.log4jshell.Log4JProcessDetector
  3. Il jar cerca nel classpath di tutti i processi Java in esecuzione eventuali istanze vulnerabili di log4j

❓ Contesto su CVE-2021-44228

È stata scoperta una grave vulnerabilità di Remote Code Execution all'interno di log4j e le versioni dalla 2.0-beta9 alla 2.14 sono interessate. La vulnerabilità è stata classificata come critica, poiché ha colpito log4j, una delle librerie di logging più utilizzate per Java. Esistono numerosi riferimenti e articoli.

  • Hackernews
  • BSI (solo in tedesco)
  • Proof of Concept per sfruttare la vulnerabilità
  • Log4JShell Cheat Sheet

👀 Perché è importante?

Log4j è e rimane utilizzato nella maggior parte dei progetti Java per scopi di logging. Ora dobbiamo capire quali progetti e librerie sono effettivamente interessati. A causa del meccanismo di dipendenza di Java, un'applicazione può essere interessata anche se include transitivamente la versione vulnerabile della libreria. Un progetto A include una libreria lib transitivamente se una delle dipendenze dirette B di A ha una dipendenza da lib. Un semplice test per verificare se si è interessati può essere eseguito usando l'albero delle dipendenze di Maven:

Esempio: Esegui il comando mvn dependency:tree su un progetto Maven.

[INFO] exampleProject:mainProject:jar:0.0.1-SNAPSHOT
[INFO] +- exampleProject:lib-using-log4j:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile

Tuttavia, questo controllo è solo un primo indizio e non è sufficiente per i seguenti motivi:

I programmi Java sono spesso:

  • impacchettati come fatjar o uberjar: tutti i file .class (incluse le dipendenze dirette e transitive) vengono inseriti in un unico file jar (come facciamo per questo artefatto software)
  • re-impacchettati o riuniti: i nomi dei pacchetti originali vengono modificati per evitare conflitti di nomi (alcuni compilatori e meccanismi di packaging applicano trasformazioni al codice)
  • ricompilati: il codice sorgente viene compilato con un compilatore diverso e impacchettato come nuovo, portando a bytecode modificato

Di conseguenza, qualsiasi libreria utilizzata da un progetto Java può introdurre la vulnerabilità nel progetto. Un'analisi approfondita del bytecode è d'aiuto, ed è ciò che pubblichiamo come parte di questo repository.

📕 Lo script

  1. Estrae i file pom.xml dal .jar
  2. Controlla le dipendenze dichiarate rispetto a un elenco precalcolato di groupId:artifactId:version interessati per gli artefatti ospitati su Maven Central
  3. Estrae i file .class dal .jar
  4. Calcola gli hash SHA dei file .class
  5. Confronta gli SHA con un elenco precalcolato

🛠 Istruzioni per la compilazione

Per compilare questo strumento esegui

mvn compile

Per assemblare un jar eseguibile usa

mvn clean compile assembly:single

💡 Hash precalcolati delle classi vulnerabili

L'insieme di hash vulnerabili per le classi è stato precalcolato sull'intero repository di Maven Central. Gli hash delle classi contengono tutti gli hash che abbiamo identificato come bytecode-simili utilizzando la tecnologia di fingerprinting.

Le informazioni precalcolate includono:

  • tutti gli artefatti che includono direttamente log4j in una qualsiasi delle versioni vulnerabili
  • tutti gli artefatti che forniscono una classe che contiene un hash vulnerabile di log4j nell'intervallo di versioni interessate
  • tutti gli artefatti che riassemblano una classe vulnerabile di log4j
  • tutti gli artefatti che hanno una classe ricompilata di una classe di log4j nell'intervallo di versioni interessate

Come intervallo di versioni interessate abbiamo considerato [2.0-beta9, 2.15) Riferimento.

💻 Tecnologia di fingerprinting

Questo strumento utilizza una nuova tecnologia di fingerprinting del bytecode per Java inventata da Andreas Dann. Il flusso di base è il seguente.

  1. Utilizza i fix commit disponibili Commit1, Commit2 e Commit3 per identificare quali classi sono interessate.
  2. Calcola le "impronte digitali" del bytecode delle classi vulnerabili.
  3. Cerca altre classi su MavenCentral con la stessa "impronta digitale".

Nota: Per una distribuzione più semplice, questo repository fornisce gli hash SHA delle classi vulnerabili; le informazioni sono state calcolate utilizzando il fingerprinting

📌 Disclaimer

L'elenco di hash e artefatti Maven non è completo. Aggiorneremo regolarmente gli elenchi.

📯 Contributori

Questo strumento è stato co-creato dai co-fondatori di CodeShield

  • Andreas Dann [email protected]
  • Johannes Spaeth [email protected]
  • Manuel Benz [email protected]

Il feedback è benvenuto!

Stiamo lavorando per estendere l'elenco degli artefatti interessati e cerchiamo sempre di migliorare la nostra offerta. contributi benvenuti

Inoltre, ⭐️ questo repository se il nostro scanner ti è stato utile!

✍️ Contatto

Se hai bisogno di supporto o vuoi saperne di più sulla nostra tecnologia, contattaci a [email protected].

Il tuo Team CodeShield 💚

Scarica lo strumento