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
CVE-2021-44228-playground — Laboratorio basato su Docker per validare CVE-2021-44228 (Log4Shell) in applicazioni Java, testare le mitigazioni e simulare RCE tramite payload LDAP e HTTP. | Kitploit
Strumenti/GitHubGitHub/b-abderrahmane/cve-2021-44228-playground
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubb-abderrahmane/cve-2021-44228-playground

CVE-2021-44228-playground

Laboratorio basato su Docker per validare CVE-2021-44228 (Log4Shell) in applicazioni Java, testare le mitigazioni e simulare RCE tramite payload LDAP e HTTP.

Vedi Repository
2237 giorni 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-CVE-2021-44228-Validator

Basic test

Extended test

Informazioni

Questo strumento consente di verificare se una semplice applicazione web Java è vulnerabile a CVE-2021-44228 per una versione di Java e di Log4J fornita dall'utente. Puoi anche [opzionalmente] applicare una delle mitigazioni predefinite. Il laboratorio di simulazione avviato da log4shell_validator.py utilizza docker-compose per simulare lo sfruttamento della vulnerabilità log4j e ottenere RCE sulla macchina vulnerabile.

Come funziona

Prima di tutto, è necessario creare alcune immagini docker. Lo script ./build_images.sh dovrebbe occuparsene.

La simulazione dell'attacco viene eseguita nel seguente modo:

  • Innanzitutto, una semplice applicazione web Java viene avviata su un container sulla porta 8080. Quando questa applicazione riceve chiamate GET su /2021-44228-via-message, registra sempre il campo header User-Agent. Il codice di questa applicazione è disponibile in ./poc_template
  • Un server LDAP fittizio viene avviato utilizzando marshalsec su un container separato sulla porta 1389. (Questo container inoltrerà le richieste LDAP ricevute al server Nginx)
  • Un server web Nginx viene avviato sulla porta 8888; questo container ospita il file .class compilato che vogliamo eseguire sulla nostra app vulnerabile.
  • Viene avviato un semplice container curl, che esegue lo script ./exploit.sh e invia un payload all'app vulnerabile.
  • Istruzioni

    • Assicurati che python, docker, docker-compose e maven siano disponibili localmente.
    • Compila il file jar di marshalsec eseguendo: cd marshalsec/ ;mvn clean package -DskipTests ;cd -
    • Esegui ./build-images.sh
    • Esegui python log4shell_validator.py --java-version 8 --log4j-version 2.12.1

    Esempi di utilizzo

    • Testo di aiuto del wrapper Python:
    root@kitploit:~
    ~/workspace/CVE-2021-44228-playground$ python log4shell_validator.py --help
    usage: log4shell_validator.py [-h] [--java-version JAVA_VERSION] --log4j-version LOG4J_VERSION [--no-cleanup] [--disable-trust-url] [--remove-jndi-lookup-class] [--disable-message-lookup] [--debug]
                                  [--exploit-via-thread-context]
    
    log4j-vulnerability-tester
    
    optional arguments:
      -h, --help            show this help message and exit
      --java-version JAVA_VERSION
                            version of java to be used
      --log4j-version LOG4J_VERSION
                            version of log4j to be used
      --no-cleanup          Don't delete used containers.
      --disable-trust-url   Disable the LDAP trustURLCodebase setting on the victim app
      --remove-jndi-lookup-class
                            Remove the JNDI Lookup class from the log4j jar file
      --disable-message-lookup
                            Disable the JNDI message lookup in the victim app's JVM
      --debug               Display all container's logs
      --exploit-via-thread-context
                            By sending the payload to an HTTP handler which makes use of Custom logging with ThreadContext, attempt to bypass the no-message-lookup mitigation
    

    Funzionalità disponibili:

    Questo validatore è stato testato con diverse combinazioni di Java7/8 e differenti versioni di Log4J2; per altri esempi, consulta la pipeline di test estesi nella scheda github actions.

    Per ora, sono state implementate le seguenti mitigazioni:

    • Disabilitare trustURLCodebase per LDAP impostando la proprietà 1com.sun.jndi.ldap.object.trustURLCodebase` su False.
    • Rimozione del file JNDILookup.class dal file jar di log4j.
    • Disabilitazione della message lookup fornendo il seguente flag alla JVM: -Dlog4j2.formatMsgNoLookups=True

    In aggiunta, è stato aggiunto un nuovo flag per testare un vettore di sfruttamento che può bypassare la disabilitazione delle message lookups: --exploit-via-thread-context

    Dichiarazione di non responsabilità

    Questo software è stato creato esclusivamente per scopi di ricerca e per lo sviluppo di tecniche di mitigazione efficaci, e non è inteso per essere utilizzato per attaccare sistemi se non dove esplicitamente autorizzato. I maintainer del progetto non sono responsabili dell'uso improprio del software. Usalo in modo responsabile.

    Scarica lo strumento