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 — Guida in lingua norvegese alle vulnerabilità Log4j (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) con script di rilevamento, passaggi di mitigazione e mappe mentali per identificare e correggere i sistemi interessati. | Kitploit
Strumenti/GitHubGitHub/helsecert/cve-2021-44228
Analisi delle VulnerabilitàSicurezza della Supply ChainApprendimento e FormazioneRisposta agli IncidentiRisorse CurateAnalisi dei Log
GitHubhelsecert/cve-2021-44228

CVE-2021-44228

Guida in lingua norvegese alle vulnerabilità Log4j (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) con script di rilevamento, passaggi di mitigazione e mappe mentali per identificare e correggere i sistemi interessati.

Vedi Repository
114 anni 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

Vulnerabilità in Log4j

Aggiornamento 19.12.2021: Continuano a essere scoperte nuove vulnerabilità e nuovi modi di sfruttarle in Log4j. Abbiamo aggiunto tre diagrammi di flusso (mind map) al repository git che descrivono rispettivamente versione vulnerabile di Log4j, come verificare se si è vulnerabili e mitigazione delle varie vulnerabilità.

Raccomandazione

Log4j v2.x:

  • Identificare il software che utilizza Log4j versione 2.x

  • Mitigare le vulnerabilità in Log4j

    • Aggiornare il software che utilizza Log4j a una versione che utilizza Log4j 2.17.0

    Se quanto sopra non è possibile

    • Assicurarsi che le misure di mitigazione per CVE-2021-44228 e CVE-2021-45046 siano state implementate, nota che così si è vulnerabili a DoS
    • Se i sistemi sono particolarmente critici, valutare di cercare Context Lookups nei Pattern Layouts nella configurazione di Log4j2

Log4j v1.x:

  • Identificare il software che utilizza Log4j versione 1.x.

  • Se Log4j versione 1.x viene utilizzata nell'organizzazione, avviare un dialogo con il fornitore e richiedere che

    • Aggiornino a Log4j versione 2.x
    • oppure passino a un'altra libreria per il logging

Le vulnerabilità

CVE-2021-44228

Il grande lupo cattivo delle vulnerabilità in Log4j. La vulnerabilità viene sfruttata quando una variante della stringa ${jndi:ldap://\<codice_attacco>/a} viene registrata da Log4j. CVSS 10.0, RCE.

CVE-2021-45046

Non grande come CVE-2021-44228, ma altrettanto brutta. Richiede una configurazione non standard di Log4j. CVSS 9.0, RCE e DoS.

CVE-2021-45105

Non grande come CVE-2021-44228, anche un po' meno brutta. CVSS 7.5, DoS

CVE-2021-4104

Riguarda solo Log4j versione 1.x. Richiede che Log4j utilizzi JMSAppender. CVSS 6.6, RCE Lo sfruttamento richiede che Log4j utilizzi JMSAppender. O perché JMSAppender è configurato direttamente - cosa rara - o perché l'attaccante lo aggiunge alla configurazione di Log4j. Inoltre, l'attaccante deve avere accesso per modificare la configurazione di JMSAppender. Se è così, normalmente l'attaccante ha già accesso al sistema. La vulnerabilità è quindi considerata poco rilevante.

CVE-2019-17571

Riguarda solo Log4j versione 1.x. Richiede che Log4j utilizzi SocketServer. CVSS 9.8, RCE Concede all'attaccante con accesso di rete al socket interessato la possibilità di eseguire codice. Il codice per lo sfruttamento è pubblicamente disponibile.

Per Java 8, Log4j v. 2.17.0 è l'ultima versione. Mitiga tutte le vulnerabilità sopra.

La versione 2.16.0 mitiga le peggiori vulnerabilità.

Per Java 7, Log4j è stato rilasciato nella versione 2.12.2. Questa non mitiga CVE-2021-45105. Il team di Log4j afferma inoltre che né Java 6 né Java 7 sono più supportati. Non è chiaro se rilasceranno un ulteriore aggiornamento di sicurezza per Log4j su Java 7.

Il diagramma di flusso "Mind map #1" fornisce una buona panoramica delle condizioni per sapere se si hanno le diverse vulnerabilità.
Diagramma di flusso per verificare se si è vulnerabili a Log4j

Realizzato da Loïc Castel. Tratto da github.

Scoprire se si è vulnerabili

Parte della sfida è che non sono necessariamente i server esposti direttamente a Internet a essere vulnerabili. La vulnerabilità può trovarsi in un server più indietro nella 'catena' che riceve gli stessi dati e li registra. Questo può rendere difficile sapere cosa è esposto e cosa no.

Il diagramma di flusso "Mind map #2" fornisce una buona panoramica su come controllare i propri sistemi per le vulnerabilità.

Diagramma di flusso per cercare istanze vulnerabili di Log4j

Realizzato da Loïc Castel. Tratto da github.

Innescando la vulnerabilità 1. Creare un token canarino DNS [https://canarytokens.org/generate#](https://canarytokens.org/generate#)

Creazione di un canarino DNS

  1. Costruire questa stringa di testo ${jndi:ldap://<token_canarino>/a}
  2. Inserire questa stringa in tutti i campi che potrebbero essere registrati

"Ricerca" con stringa canarino

root@kitploit:~
- User-agent
- Campo di ricerca
- Nome utente
- ...

4. Seguire le corrispondenze del canarino e scoprire dove viene eseguito log4j.

Rif: Tweet di Florian Roth

Cercando sugli host

Windows

Questo prende tutti i dischi, incluse le unità di rete mappate:

root@kitploit:~
Get-PSDrive -PSProvider FileSystem | foreach {(gci ($_.Root) -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path)}

Rif: https://twitter.com/0gtweet/status/1469661769547362305

Se si desidera controllare solo i dischi locali:

root@kitploit:~
Get-CimInstance win32_volume | Where-Object { $_.DriveType -eq 3 -and $_.DriveLetter -ne $null} | ForEach-Object {(gci ($_.DriveLetter+"\") -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path)}

Rif: https://twitter.com/webmastir/status/1470386184052486155?s=20

Se si desidera inoltre controllare il registro eventi sulla macchina.

root@kitploit:~
Get-WinEvent -ListLog * |
  foreach { get-winevent @{logname=$_.logname; } -ea 0 } |
  where message -match 'jndi'

Linux #1

root@kitploit:~
#!/bin/bash
find / -name '*log4j*.jar' -print0 2>/dev/null -print0 | while read -d $'\0' log4j; do
        echo -en "${log4j}: "$(unzip -p "${log4j}" | strings | grep -Po '^Implementation-Version:\s+([0-9\.]+)' | awk '{ print $NF }')"\n"
done
exit 0

Mitigare la vulnerabilità

Il diagramma di flusso "Mind map #3" fornisce una panoramica delle opzioni di mitigazione.

Diagramma di flusso per le mitigazioni di Log4j

Realizzato da Loïc Castel. Tratto da github.

Di seguito abbiamo elencato alcune risorse per eseguire le mitigazioni.

Patch

Java 8

Aggiornare Log4j alla v 2.17.0

Java 7

Aggiornare Log4j alla v 2.12.2 NOTA non mitiga CVE-2021-45105

Mitigare #1: Impostare variabile

⚠️ questo metodo non è più considerato una soluzione completa poiché non mitiga tutte le vulnerabilità in tutte le situazioni.

Windows

root@kitploit:~
[Environment]:https://raw.githubusercontent.com/helsecert/cve-2021-44228/HEAD/:SetEnvironmentVariable(%22LOG4J_FORMAT_MSG_NO_LOOKUPS%22,%22true%22,%22Machine%22)

NOTA: Richiede riavvio

Da https://twitter.com/CyberRaiju/status/1469505680138661890

Impostare flag JVM

root@kitploit:~
"‐Dlog4j2.formatMsgNoLookups=True"

Command line example:

root@kitploit:~
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" teku --network mainnet

Or with an -Xmx value:

root@kitploit:~
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx4g" teku

Systemd config example:

root@kitploit:~
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true"'

Or with an -Xmx value:

root@kitploit:~
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" "-Xmx4g'
Mitigare #2: Eliminare classe Java Eliminare JndiLookup.class nel file jar di log4j.

Un file jar è un archivio (file zip) e può essere aperto. I file possono quindi essere rimossi. Questo può essere fatto manualmente con strumenti come 7-zip (vedi immagine) o utilizzando script.

Richiede riavvio dell'applicazione

Rif: https://mogwailabs.de/en/blog/2021/12/vulnerability-notes-log4shell/9

Eliminazione di jndilookup.class

Windows

root@kitploit:~
[Reflection.Assembly]:https://raw.githubusercontent.com/helsecert/cve-2021-44228/HEAD/:LoadWithPartialName(%27System.IO.Compression%27)
$JarFilLokasjon = 'C:\temp\log4j-core-2.13.0-test.jar'
$Filnavn   = 'JndiLookup.class' #Denne filen slettes!

$Stream = New-Object IO.FileStream($JarFilLokasjon, [IO.FileMode]::Open)
$ZipMode   = [IO.Compression.ZipArchiveMode]::Update
$Zip    = New-Object IO.Compression.ZipArchive($stream, $ZipMode)

($zip.Entries | Where-Object { $Filnavn -contains $_.Name }) | ForEach-Object { $_.Delete() }
$zip.Dispose()
$stream.Close()
$stream.Dispose()

Linux

root@kitploit:~
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

Elenchi di software interessato

https://github.com/NCSC-NL/log4shell/tree/main/software

https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592

https://github.com/cisagov/log4j-affected-db

Scarica lo strumento

Eseguire come root

Linux #2

root@kitploit:~
lsof | grep log4j-core

Questo viene caricato al riavvio dell'applicazione Da https://github.com/ConsenSys/teku/security/advisories/GHSA-mwfw-vm54-g3p7