
FreeSWITCH 向けのスキャンおよびエクスプロイトツールキットで、CVE-2021-37624 と CVE-2021-41157 に対応しています。
FreeSWITCHに特化したCVE-2021-37624およびCVE-2021-41157用のスキャンおよびエクスプロイトツールキットです。
関連ブログ: https://0xinfection.github.io/posts/analyzing-freeswitch-vulns/
ツールのヘルプステートメントは以下の通りです。
$ ./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")
デフォルトでは、ツールは両方の脆弱性をスキャンします。特定の脆弱性のみをテストしたい場合は、-cveフラグを使用して指定できます。
例:
./pewswitch -cve 'cve-2021-37624' -exts 1000 freeserver.voip.com
内線番号を指定するには、以下のいずれかの方法を選択できます。
-exts引数を使用して、内線番号のカンマ区切りリストを指定します。
例:
./pewswitch -exts 1000,1001 freeserver.voip.com freeserver1.voip.com:5060
これにより、各内線番号と各ホストのペアの組み合わせがテストされます。上記のコマンドでテストされる最終ターゲットは、[email protected]、[email protected]、[email protected]:5060、[email protected]:5060です。
内線番号を含むファイルを指定します。ファイルを使用する場合、ユーザーとホストの両方を指定する必要があることに注意してください。これは、特定のサーバーで特定の内線番号をテストする必要がある場合に特に便利です。このようなファイルの例(例: extensions-sample.txt)は次のようになります。
[email protected]
[email protected]:5060
[email protected]:5660
...
例:
./pewswitch -ext-file extensions-sample.txt
ホストにポートが指定されていない場合、デフォルトの宛先ポートとしてポート5060が使用されることに注意してください。
ツールはJSONとCSVの2つの異なる形式で出力できます。デフォルトの出力形式はJSONです。出力形式は-out-formatスイッチを使用して変更できます。
例:
./pewswitch -exts 1000 -out-format csv freeserver.voip.com
./pewswitch-results/ディレクトリには、json形式とcsv形式のレポートサンプルがあります。
出力先ディレクトリは-out-dir引数で変更できます。デフォルトの出力ディレクトリは./pewswitch-results/で、ツール実行時にカレントワーキングディレクトリに作成されます。
例:
./pewswitch -ext-file extensions-sample.txt -out-dir /tmp
脆弱性の検証/エクスプロイト中にリクエストをカスタマイズできる、追加のパケット固有の設定があります。
サーバーがCVE-2021-37624に対して脆弱であると判明した場合、デフォルトでは、名前FBI、番号022-324-3000のサンプルメッセージがターゲットの内線番号に送信されます。メッセージの内容はFBI here. Open your door!のようになります。
この動作は、-msg-file引数を使用して変更できます。これは、送信者の名前、電話番号、そして送信するメッセージの内容を含むCSVファイルを受け入れます。このようなファイルの例は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!
例:
./pewswitch -cve 'cve-2021-27624' -msg-file messages-sample.csv -exts 1000 freeserver.voip.com
デフォルトでは、ツールはExpiresヘッダーを60秒に設定したSUBSCRIBEリクエストを送信します。その同じ時間枠で、ツールはサーバーからのNOTIFYメッセージをリッスンし続けます。この値は-expiresフラグを使用して変更できます。
例:
./pewswitch -expires 600 -ext-file extensions-sample.txt
ツールはまた、すべてのイベントにサブスクライブすることでNOTIFYメッセージを監視します。すべてのイベントのリストは以下の通りです。
talkholdconferenceas-feature-eventdialogline-seizecall-infoslainclude-session-descriptionpresencepresence.winfomessage-summaryreferこの動作は、監視するイベントのカンマ区切りリストを受け取る-eventsフラグで変更できます。例:
./pewswitch -cve 'cve-2021-41157' -events message-summary,presence -exts 1000,1002 freeserver.voip.com
Releasesセクションのビルド済みバイナリを使用できます。または、自分でコードをコンパイルしたい場合は、Go 1.13以降が必要です。ツールをビルドするには、go buildを実行するとバイナリが生成されます。
このツールはMITライセンスの下で利用可能です。ご自由にお使いください。
現在、PewSWITCHはv0.1です。
新しいリクエストや機能の提案は、イシューまたはプルリクエストを作成してください。
何か議論したいことがあれば、プロフィールのTwitterまたはメールで連絡してください。
♡ を込めて Pinaki によって作成されました。