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-finder — Trova le versioni vulnerabili di Log4j2 su disco e anche all'interno di file di archivio Java (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105) | Kitploit
Strumenti/GitHubGitHub/fox-it/log4j-finder
Analisi StaticaScanner di VulnerabilitàAnalisi delle VulnerabilitàAnalisi del CodiceSicurezza della Supply ChainRisposta agli Incidenti
GitHubfox-it/log4j-finder

log4j-finder

Trova le versioni vulnerabili di Log4j2 su disco e anche all'interno di file di archivio Java (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105)

Vedi Repository
439963 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

log4j-finder

Uno script Python3 per scansionare il filesystem alla ricerca di Log4j2 vulnerabile a Log4Shell (CVE-2021-44228 & CVE-2021-45046 & CVE-2021-45105). Scansiona ricorsivamente sia su disco che all'interno di file Java Archive (JAR) annidati.

Risultati di log4j-finder

Come funziona

log4j-finder identifica le librerie log4j2 sul tuo filesystem utilizzando un elenco di hash MD5 noti come dannosi e noti come sicuri di file specifici (attualmente solo JndiManager.class) presenti nei pacchetti log4j2-core-*; il pacchetto principale colpito da log4shell. Cerca questi file all'interno di file Java Archive e sul filesystem. La versione log4j2 viene quindi identificata in base all'hash MD5 di questo file.

Per ottimizzare la velocità di scansione, cerca nel filesystem ed elabora SOLO i seguenti nomi di file:

  • Tutti i file con estensioni di file Java ARchive nel nome (anche annidati in questi archivi):
    • *.jar, *.war, *.ear
  • Nomi di file per cui abbiamo hash noti come dannosi e sicuri (anche all'interno degli archivi sopra, e annidati):
    • JndiManager.class

Se il file corrisponde a una delle estensioni menzionate sopra, controllerà all'interno di questi archivi (tutto in memoria, nulla viene decompresso) per cercare i nomi di file per cui lo script ha hash noti. Esamina anche gli archivi annidati, ad esempio un file JAR all'interno di un file WAR.

Lo script NON scansiona altre estensioni di file di archivio come 7z, RAR, TAR, BZ2, ecc. Quindi, ad esempio, se un file JAR si trova all'interno di un file 7z, lo script non lo troverà. La logica è che Java può caricare solo formati Java ARchive, quindi scansioniamo solo quelli.

Gli hash MD5 sconosciuti vengono mostrati come UNKNOWN; ciò potrebbe accadere se un pacchetto Java non log4j2 utilizza lo stesso nome di file che questo script cerca. Molto probabilmente non è log4j2 se il percorso del file identificato non contiene riferimenti a org/apache/logging/log4j. Tuttavia, si consiglia comunque una verifica manuale.

Download ed esecuzione

Puoi installare log4j-finder utilizzando uno dei seguenti metodi:

Utilizzo del binario rilasciato

Puoi scaricare il binario corretto per il tuo sistema operativo:

  • Windows ultima versione (firmata): log4j-finder-signed.exe
    • Sono disponibili anche binari non firmati, ma possono attivare il tuo antivirus perché è un eseguibile PyInstaller. Puoi anche generare tu stesso l'eseguibile, vedi "Generazione degli eseguibili di log4j-finder" per le istruzioni.
  • Linux x86_64 ultima versione: log4j-finder

Se sei su Linux, puoi anche scaricare l'ultima release ed eseguirla in uno dei seguenti modi:

root@kitploit:~
curl -L https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -o log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder
root@kitploit:~
wget https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -O log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder

Utilizzo di Python 3

Per distribuzioni con Python 3.6+ installato, funzionano anche uno dei seguenti metodi:

root@kitploit:~
curl -L https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py -o log4j-finder.py
sudo python3 log4j-finder.py
root@kitploit:~
wget https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py
sudo python3 log4j-finder.py
root@kitploit:~
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
sudo python3 log4j-finder.py

Generazione degli eseguibili di log4j-finder

Eseguibili generati automaticamente

C'è una GitHub Action nel repository che genera automaticamente un binario per Windows e Linux dello script log4j-finder.py utilizzando PyInstaller ad ogni commit. Gli artefatti di build di questi workflow vengono utilizzati per essere allegati alla pagina Releases.

Siamo consapevoli che alcuni vendor di antivirus non apprezzano i binari Windows; in tal caso, consigliamo di generare tu stesso l'eseguibile seguendo i passaggi seguenti (nota che ora forniamo anche binari firmati).

Generazione dell'eseguibile per Windows

  1. Se non hai Python 3.6 o superiore installato, scaricalo prima da https://www.python.org/downloads/

    • Scegli Python 3.8.10 se vuoi che il binario funzioni su Windows 7:
      • Scarica Python 3.8.10 Windows installer (32 bit)
      • Scarica Python 3.8.10 Windows installer (64-bit)
    • Assicurati che durante l'installazione scegli: Add Python 3.x to PATH, questo renderà i passaggi seguenti molto più semplici.
  2. Apri un prompt dei comandi e usa pip per installare il pacchetto pyinstaller:

    root@kitploit:~
    pip install pyinstaller
    
    # Nell'output vedrai dove è installato pyinstaller, ad esempio:
    # C:\Users\User\AppData\Roaming\Python\Python310\Scripts
    #
    # Verifica usando --version
    C:\Users\User\AppData\Roaming\Python\Python310\Scripts\pyinstaller.exe --version
    4.7
    
  3. Installa opzionalmente il pacchetto colorama per aggiungere supporto ai colori:

    root@kitploit:~
    pip install colorama
    
  4. Scarica l'ultima versione dello script e poi esegui PyInstaller:

root@kitploit:~
pyinstaller --onefile --hidden-import colorama log4j-finder.py

L'eseguibile Windows si troverà quindi nella directory dist: dist\log4j-finder.exe

Generazione dell'eseguibile per Linux

Esempio fornito per Debian 11:

root@kitploit:~
# Installa PyInstaller usando pip3
sudo apt update
sudo apt install python3-pip git
pip3 install --user pyinstaller

# Git clone e build usando PyInstaller
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
~/.local/bin/pyinstaller --onefile log4j-finder.spec

# Verifica che il binario funzioni
./dist/log4j-finder --help

Utilizzo

Esempio di utilizzo per scansionare un percorso (default: /):

root@kitploit:~
$ python3 log4j-finder.py /path/to/scan

O direttamente un file JAR:

root@kitploit:~
$ python3 log4j-finder.py /path/to/jarfile.jar

O più directory e/o file:

root@kitploit:~
$ python3 log4j-finder.py /path/to/dir1 /path/to/dir2 /path/to/jarfile.jar

Escludi file o directory:

root@kitploit:~
$ python3 log4j-finder.py / --exclude "/*/.dontgohere" --exclude "/home/user/*.war"

Nota che su Windows scansiona solo l'unità root c:\ se non fornisci argomenti aggiuntivi. Consigliamo di specificare le unità che devi scansionare dalla riga di comando, ad esempio (le unità che non esistono vengono saltate):

root@kitploit:~
log4j-finder.exe c:\ d:\ e:\ f:\

I file o le directory a cui non è possibile accedere (errori di "Permesso negato") non vengono stampati.

Se vuoi vedere più output, puoi usare il flag -v per verbose, o -vv per debug (consigliato solo per scopi di debugging).

Argomenti dell'applicazione:

root@kitploit:~
positional arguments:
  PATH                  Directory o file da scansionare (ricorsivamente) (default:
                        ['/'])

optional arguments:
  -h, --help            mostra questo messaggio di aiuto ed esci
  -v, --verbose         output verbose (-v è info, -vv è debug) (default: 0)
  -n, --no-color        disabilita l'output a colori (default: False)
  -q, --quiet           silenzioso, disabilita banner e riepilogo (default:
                        False)
  -b, --no-banner       disabilita il banner (default: False)
  -V, --version         mostra il numero di versione del programma ed esci
  -e PATTERN, --exclude PATTERN
                        esclude file/directory per pattern (può essere usato
                        più volte) (default: None)

I file vengono scansionati ricorsivamente, sia su disco che all'interno di file Java Archive (annidati).

Scarica lo strumento
log4j-finder.py