
境界付きネットワーク偵察用のRust CLI:TCP/UDPポート探索、サービス識別、DNS/TLS/HTTPエビデンス収集、および公開ソースのユーザー名検索と相関分析。
偵察 & 証拠エンジン
Rustによる境界付き偵察と証拠相関。
RXScanは、ネットワーク偵察、公開ソース検索、調査、証拠相関を1つのCLIに統合します。
ホストとポートの検出、観測されたサービスの特定、境界付きのプロトコルおよびWeb証拠の収集、公開プロバイダーの検索、検出結果の相関、そして後での分析や比較のための結果の永続化が可能です。
RXScanは、報告内容について意図的に保守的です。ポート番号はサービスを特定するものではなく、HTTPの成功はそれ自体でアカウントを確認するものではなく、不完全なカバレッジは否定的な結果とは区別して扱われます。
リポジトリからビルドしてインストールします:
git clone https://github.com/DarkRX1/RXScan.git
cd RXScan
cargo install --path . --locked
インストールされたビルドを確認します:
rxscan --version
rxscan --help
通常の偵察スキャンを実行します:
rxscan example.test
公開ソースを検索する:
rxscan search --username exampleuser
公開されている調査結果を調査し、関連付ける:
rxscan investigate --username exampleuser
これらが3つの主要なエントリポイントです:
rxscan TARGET
rxscan search ...
rxscan investigate ...
デフォルトのスキャンでは、recon ワークフロー、レベル3、およびバランスの取れた実行設定が使用されます。
rxscan example.test
ポートを正確に選択したい場合は、ポートを指定してください:
rxscan example.test --ports 22,80,443
rxscan example.test --ports 1-1024
rxscan example.test --ports 22,80,443,8000-8100
TCP ポート範囲全体をスキャンします:
rxscan example.test --all-ports
UDPディスカバリは明示的です:
rxscan example.test --udp
有効なプランと追加の実行詳細を表示します:
rxscan example.test --explain
RXScanは以下をサポートしています:
rxscan example.test --scan-mode auto
rxscan example.test --scan-mode connect
rxscan example.test --scan-mode syn
TCP connect スキャンは、RXScan がサポート対象プラットフォーム上で現在使用しているポータブルなスキャン経路です。
Raw SYN スキャンは、必要なケーパビリティが利用可能な場合、Linux 上の IPv4 で利用できます。要求された SYN 経路を使用できない場合、RXScan は connect スキャンを SYN と偽って提示するのではなく、実際に適用されたフォールバックを報告します。
UDP スキャンは、上限付きのネイティブプローブを使用し、オプトインのままです。
現在のプロトコル対応 UDP ディスカバリには、DNS、NTP、SSDP などのサービス向けの小さなプローブが含まれます。
UDP の無応答は、ポートが開いている、または閉じている証拠として報告されません。RXScan は、結果として生じる open|filtered の不確実性を保持します。
OS 検出は明示的かつ証拠に基づくものであり、単一の手がかりからの推測ではありません:
rxscan example.test --os
--os は、スコープ内の各ホストに対して有界なプローブ計画を実行し(最大6回の通常のTCP/ICMPプローブで、スキャンが既に把握しているポートを再利用)、すべての候補について、一致した証拠、矛盾する証拠、利用できない証拠、カバレッジ、および来歴を説明します。rawパケット機能がない場合は、信頼度を下げた受動的証拠へと正直に縮退します。証拠が不十分な場合、Unknown は第一級の結果です。証拠モデル、制限事項、および現在のコーパスの実情については docs/OS_FINGERPRINTING.md を参照してください。
RXScan は、ポート番号のみからサービスを割り当てるのではなく、観測されたプロトコル動作からサービスを識別します。
現在のネイティブ識別は、以下を含む一般的なプロトコルをカバーしています:
プロトコルおよび利用可能な証拠に応じて、観測結果には製品/バージョン情報、バナー、HTTPエンドポイントとタイトル、TLS証明書の事実、SSH識別情報、および正規化された技術証拠が含まれる場合があります。
RXScan が識別するのに十分な証拠を持たない場合、未知のサービスは未知のままとなります。
これらの識別プローブには認証は不要です。
ユーザー名検索は以下を通じて利用できます:
rxscan search --username exampleuser
通常の出力は、すべてのネガティブなプロバイダー結果を表示するのではなく、有用なポジティブおよび不確実な検出結果に焦点を当てます。
検出結果は、観測されたプロファイル、別の観測されたリソース、および未確認の候補ロケーションを区別できます。
例えば:
FINDINGS
✓ provider / exampleuser
Profile https://example.test/exampleuser
high · 94% · public profile
? another-provider / exampleuser
Candidate https://example.test/u/exampleuser
low · 25% · weak evidence
ラベルは意図的に設定されています:
| ラベル | 意味 |
|---|---|
Profile | 観測された識別子固有の公開プロファイル |
Resource | 観測された識別子固有のリソース(必ずしも公開プロファイルではない) |
Candidate | 確認されていない識別子固有のロケーション |
汎用的なプロバイダーのホームページや API エンドポイントは、確認済みのプロファイル URL として提示されることはありません。
RXScan はまた、ブロック、レート制限、不明、エラー、未スキャンといったプロバイダーの結果を、偽陰性の結果に変換することなく、それぞれ区別して保持します。
完全な人間向け結果セットを表示するには:
rxscan search --username exampleuser --all
追加の実行および分類の詳細を表示するには:
rxscan search --username exampleuser --explain
公開されている調査結果は、RXScanの調査および相関パイプラインを通じて渡すことができます:
rxscan investigate --username exampleuser
デフォルトビューは、アカウント、有用なURL、信頼度、および意味のある関係に焦点を当てています。
静的JavaScript、スタイルシート、フォント、画像などの二次的なWebリソースは、基盤となる証拠に関連する場合には保持されますが、デフォルトの人間向けレポートを支配することはありません。
詳細ビューでは、収集された関係データのより多くを公開できます。
調査はデフォルトでパッシブのままです。公開証拠を通じてネットワークターゲットを発見しても、ネットワークスキャンが自動的に承認されたり、トリガーされたりすることはありません。
RXScanは観測結果を型付き証拠として保存し、レポート、調査、グラフ、履歴、および分析の各パスで使用します。
プロジェクト全体でいくつかのルールが意図的に適用されています:
200 だけでは公開アカウントが存在することを確立しない;観測と解釈のこの区別は、RXScanの設計の中核部分です。
確認されたWebサービスに対して、RXScanは以下のような範囲を限定したHTTP観測を収集できます:
robots.txtsitemap.xmlワークフローと証拠により、範囲を限定したクロール、ベースラインチェック、管理されたコンテンツディスカバリ、およびコンテキストに応じたGETクエリのフォローアップも許可される場合があります。
DNS観測は、以下を含む範囲を限定したレコード収集をサポートします:
TLS観測はハンドシェイクと証明書の証拠を記録します。これは網羅的なTLS暗号スイートスキャナーではありません。
ネットワークアクティビティはRXScanのスコープポリシーに従います。
追加の許可されたターゲットを明示的に指定できます:
rxscan example.test --scope example.test
ターゲットを除外することもできます:
rxscan example.test --exclude api.example.test
スコープ外の作業は、対応するネットワーク接続の前に拒否されます。
スコープの強制は偶発的な接続を減らします。ただし、認可を得るという 運用者の責任を置き換えるものではありません。
RXScan は、スケジューリング、並行性、リトライ、実行時間、ホスト展開、 証拠収集、フォローアップ活動などの作業に制限を設けます。
期限やその他の実行制限によって作業を実行できない場合、RXScan は 完了した証拠を保持し、実行を完全に完了したものとして提示する代わりに、 残りの作業を記録します。
これは部分的なネットワークスキャンにも適用されます。
人間向け出力は対話的な使用を目的としています:
rxscan example.test
ターミナルに適切な場合は色が自動的に適用され、次の方法で制御できます:
rxscan --color auto example.test
rxscan --color always example.test
rxscan --color never example.test
--explain は、通常の findings-first ビューから意図的に省略されているプランナー、ポリシー、アカウンティング、および推論に関する追加情報を表示します。
機械可読な出力は別途利用できます:
rxscan example.test --format jsonl
rxscan example.test --output scan.jsonl
マシン出力にはターミナルのANSIスタイルは含まれません。
スキャンではチェックポイントを書き込むこともできます:
rxscan example.test --checkpoint scan.rxscan
RXScanは、レポート作成、分析、比較、プロジェクトグラフ操作を含む、永続化された証拠とオフラインワークフローをサポートしています。
例:
rxscan report scan.rxscan
rxscan diff old.rxscan new.rxscan
履歴比較はカバレッジを考慮して行われます。後続のスキャンが同じターゲットや証拠の範囲をカバーしていない場合、単に存在しないことだけをもって削除が確認されたと解釈されることはありません。
RXScan は現在 Linux を対象としています。
Raw SYN スキャンは Linux/IPv4 固有の機能です。その他のスキャンパスやプロトコル機能には、それぞれ独自のケーパビリティ要件があります。
実行:
rxscan capabilities
現在のビルド/ランタイムで何が使用できるかを確認するためです。
既知の制限事項は以下のとおりです:
rxscan search providers および docs/PROVIDER_CONTRACT.md に記載されています;RXScan は若いプロジェクトです。長年確立されたネットワークスキャナが持つプロトコル カバレッジ、フィンガープリントコーパス、プラットフォームの広さ、運用実績を 備えているものとして扱うべきではありません。
RXScan は偵察ツールであり、エクスプロイトフレームワークではありません。
以下を自動的に提供することはありません:
ネットワークスキャンは、自身が所有するシステム、または評価を明示的に 許可されているシステムに対してのみ使用してください。