Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2021-44228 — Norwegischsprachiger Leitfaden zu Log4j-Schwachstellen (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) mit Erkennungsskripten, Schadensbegrenzungsschritten und Mindmaps zur Identifizierung und Behebung betroffener Systeme. | Kitploit
Tools/GitHubGitHub/helsecert/cve-2021-44228
SchwachstellenanalyseLieferkettensicherheitLernen & BildungIncident ResponseKuratierte RessourcenLog-Analyse
GitHubhelsecert/cve-2021-44228

CVE-2021-44228

Norwegischsprachiger Leitfaden zu Log4j-Schwachstellen (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) mit Erkennungsskripten, Schadensbegrenzungsschritten und Mindmaps zur Identifizierung und Behebung betroffener Systeme.

Repository anzeigen
112vor 4 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Schwachstellen in Log4j

Update 19.12.2021: Es werden ständig neue Schwachstellen und neue Wege, diese auszunutzen, in Log4j entdeckt. Wir haben dem Git-Repository drei Flussdiagramme (Mind Maps) hinzugefügt, die verwundbare Log4j-Versionen, Möglichkeiten zur Prüfung, ob man verwundbar ist und die Mitigation der verschiedenen Schwachstellen beschreiben.

Empfehlung

Log4j v2.x:

  • Identifizieren Sie Software, die Log4j Version 2.x verwendet

  • Mitigieren Sie Schwachstellen in Log4j

    • Aktualisieren Sie Software, die Log4j verwendet, auf eine Version, die Log4j 2.17.0 verwendet

    Falls das oben Genannte nicht möglich ist

    • Stellen Sie sicher, dass die mitigierenden Maßnahmen für CVE-2021-44228 und CVE-2021-45046 umgesetzt sind, beachten Sie, dass man dann anfällig für DoS ist
    • Falls die Systeme besonders kritisch sind, erwägen Sie, in der Log4j2-Konfiguration nach Context Lookups in Pattern Layouts zu suchen

Log4j v1.x:

  • Identifizieren Sie Software, die Log4j Version 1.x verwendet.

Wenn Log4j Version 1.x im Unternehmen verwendet wird, gehen Sie in den Dialog mit dem Lieferanten und verlangen Sie, dass diese

  • auf Log4j Version 2.x aktualisieren
  • alternativ auf eine andere Bibliothek für die Protokollierung umsteigen

Die Schwachstellen

CVE-2021-44228

Der große böse Wolf unter den Log4j-Schwachstellen. Die Schwachstelle wird ausgenutzt, wenn eine Variante der Zeichenkette ${jndi:ldap://\<angrepskode>/a} von Log4j protokolliert wird. CVSS 10.0, RCE.

CVE-2021-45046

Nicht ganz so groß wie CVE-2021-44228, aber genauso böse. Erfordert eine nicht standardmäßige Log4j-Konfiguration. CVSS 9.0, RCE und DoS.

CVE-2021-45105

Nicht ganz so groß wie CVE-2021-44228, auch ein wenig weniger böse. CVSS 7.5, DoS

CVE-2021-4104

Betrifft nur Log4j Version 1.x. Erfordert, dass Log4j JMSAppender verwendet. CVSS 6.6, RCE Die Ausnutzung erfordert, dass Log4j JMSAppender verwendet. Entweder dadurch, dass JMSAppender direkt konfiguriert ist – was ungewöhnlich ist – oder dadurch, dass der Angreifer ihn selbst zur Log4j-Konfiguration hinzufügt. Darüber hinaus muss der Angreifer Zugriff haben, um die Konfiguration des JMSAppender zu ändern. Wenn dies der Fall ist, hat der Angreifer normalerweise bereits Zugriff auf das System. Die Schwachstelle wird daher als wenig relevant angesehen.

CVE-2019-17571

Betrifft nur Log4j Version 1.x. Erfordert, dass Log4j SocketServer verwendet. CVSS 9.8, RCE Gibt einem Angreifer mit Netzwerkzugriff auf den betreffenden Socket die Möglichkeit zur Codeausführung. Ausnutzungscode ist öffentlich verfügbar.

Für Java 8 ist Log4j v. 2.17.0 die letzte Version. Sie mitigiert alle oben genannten Schwachstellen.

Version 2.16.0 mitigiert die schlimmsten Schwachstellen.

Für Java 7 wurde Log4j in Version 2.12.2 veröffentlicht. Diese mitigiert CVE-2021-45105 nicht. Das Team hinter Log4j sagt übrigens, dass weder Java 6 noch Java 7 weiter unterstützt werden. Es ist ungewiss, ob es ein weiteres Sicherheitsupdate für Log4j unter Java 7 geben wird.

Das Flussdiagramm "Mind map #1" gibt einen guten Überblick über die Voraussetzungen dafür, ob man die verschiedenen Schwachstellen hat.
Flussdiagramm, ob man für Log4j verwundbar ist

Erstellt von Loïc Castel. Von GitHub übernommen.

Erkennen, ob man verwundbar ist

Eine der Herausforderungen ist, dass es nicht unbedingt Server sind, die direkt dem Internet ausgesetzt sind, die verwundbar sind. Die Schwachstelle kann in einem weiter hinten in der 'Kette' liegenden Server liegen, der dieselben Daten empfängt und protokolliert. Dies kann es schwierig machen zu wissen, was exponiert ist und was nicht.

Das Flussdiagramm "Mind map #2" gibt einen guten Überblick darüber, wie man die eigenen Systeme auf die Schwachstellen überprüfen kann.

Flussdiagramm zur Suche nach verwundbaren Log4j-Instanzen

Erstellt von Loïc Castel. Von GitHub übernommen.

Durch Auslösen der Schwachstelle 1. Erstellen Sie ein DNS-Canary-Token [https://canarytokens.org/generate#](https://canarytokens.org/generate#)

Erstellung eines DNS-Canary

  1. Bauen Sie diese Textzeichenkette ${jndi:ldap://<kanaritoken>/a}
  2. Geben Sie diese Zeichenkette in alle Felder ein, die potenziell protokolliert werden können

"Suche" mit Canary-Zeichenkette

root@kitploit:~
- User-Agent
- Suchfeld
- Benutzername
- ...

4. Verfolgen Sie Canary-Treffer und finden Sie heraus, wo log4j ausgeführt wird.

Ref: Tweet von Florian Roth

Durch die Suche auf Hosts

Windows

Dieser Befehl durchsucht alle Laufwerke, einschließlich zugeordneter Netzlaufwerke:

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

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

Wenn man nur lokale Laufwerke überprüfen möchte:

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)}

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

Wenn man zusätzlich das Ereignisprotokoll der Maschine überprüfen möchte.

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

Wird als root ausgeführt

Linux #2

root@kitploit:~
lsof | grep log4j-core

Schwachstellen mitigieren

Das Flussdiagramm "Mind map #3" gibt einen Überblick über die Mitigationsmöglichkeiten.

Flussdiagramm für Mitigationen für Log4j

Erstellt von Loïc Castel. Von GitHub übernommen.

Unten haben wir einige Ressourcen zur Durchführung der Mitigationen aufgelistet.

#1 Patch

Java 8

Aktualisieren Sie Log4j auf v 2.17.0

Java 7

Aktualisieren Sie Log4j auf v 2.12.2 ACHTUNG mitigiert CVE-2021-45105 nicht

#4 Mitigate #1: Variable setzen

⚠️ Diese Methode wird nicht länger als vollwertige Lösung angesehen, da sie nicht alle Schwachstellen in allen Situationen mitigiert.

Windows

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

HINWEIS: Erfordert einen Neustart

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

JVM-Flags setzen

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

Kommandozeilenbeispiel:

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

Oder mit einem -Xmx-Wert:

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

Systemd-Konfigurationsbeispiel:

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

Oder mit einem -Xmx-Wert:

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

Dies wird beim Neustart der Anwendung geladen Von https://github.com/ConsenSys/teku/security/advisories/GHSA-mwfw-vm54-g3p7

#4 Mitigate #2: Javaklasse löschen Löschen Sie JndiLookup.class in der Jar-Datei von log4j.

Eine Jar-Datei ist ein Archiv (Zip-Datei) und kann geöffnet werden. Dateien können dann entfernt werden. Dies kann manuell mit Werkzeugen wie 7-Zip (siehe Bild) oder mithilfe von Skripten durchgeführt werden.

Erfordert einen Neustart der Anwendung

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

Entfernen von jndilookup.class

Windows

root@kitploit:~
[Reflection.Assembly]:https://raw.githubusercontent.com/helsecert/cve-2021-44228/main/: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

Listen über betroffene Software

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

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

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

Tool herunterladen