fi6s は、高速になるように設計された IPv6 ポート スキャナーです。これは、生のパケットを非同期に送信および処理することによって実現されます。デザインと目標は Masscan にかなり似ていますが、まだフル機能が備わっていません。
fi6s の構築は、Ubuntu などの最近の Linux システムではかなり簡単です。
# apt install gcc make git libpcap-dev
$ git clone https://github.com/sfan5/fi6s.git
$ cd fi6s
$ make BUILD_TYPE=release
スキャナーの実行可能ファイルは./fi6s
で準備が整います。
fi6s は Linux 上でのみ開発およびテストされていることに注意してください。他の UNIX のようなプラットフォームでも動作するはずですが、Windows での動作は期待しないでください。
使用方法は非常に簡単で、fi6s は送信元、ルーターの MAC アドレス、送信元 IP などの重要な技術的な詳細を自動検出しようとします。
# ./fi6s -p 80,8000-8100 --max-rate 170 2001:db8::/120
この例では次のことが行われます。
list
」形式で標準出力に出力しますスキャンするアドレス範囲を指定する方法は他にもあります。何が起こるかわからない場合は、 --print-summary
を指定して fi6s を実行してスキャンの概要を確認するか、 --print-hosts
指定して潜在的な IP をすべて出力してください。 。
より高度な機能については、 fi6s --help
の出力を参照してください。
新しい接続またはプローブ要求に応答してリモート ホストが送信するデータは、「バナー」と呼ばれます。 fi6s を使用すると、これらを簡単に収集できます。
必要なのは、 --banners
オプションを渡すことだけです。
# ./fi6s -p 22 --banners 2001:db8::xx
コマンドラインに--udp
フラグを追加します。
# ./fi6s -p 53 --banners --udp 2001:db8::xx
TCP とは異なり、fi6s によるプローブがサポートされているプロトコルのポートをスキャンした場合にのみ、有益な (または何らかの) 結果が得られることに注意してください。リストを表示するには、 fi6s --list-protocols
使用します。
fi6s は独自の最小限の TCP/IP スタックを導入しているため、オペレーティング システムが fi6s が使用しているのと同じポート上で TCP 通信を試行することを防止する必要があります。そうしないと、スキャン プロセスが中断されてしまいます。この場合、通常は RST フレームを送信します。
デフォルトでは、fi6s は OS に対して一時ポートを予約し、スキャン中にそれを使用するように要求します。これは Linux でのみ機能します。
これが機能しない場合、または別のプラットフォームを使用している場合は、静的送信元ポートを使用し、このポート上のトラフィックをドロップするようにファイアウォールを構成する必要があります。例:
# ip6tables -A INPUT -p tcp -m tcp --dport 12345 -j DROP
# ./fi6s -p 22 --banners --source-port 12345 2001:db8::xx
UDP はコネクションレスであるため、干渉を防ぐ必要はありませんが、OS が不必要な ICMPv6 到達不能応答を送信しないようにすることは依然として良い考えです (fi6s もデフォルトでこれを試みます)。