
境界付きネットワーク偵察用のRust CLI:TCP/UDPポート探索、サービス識別、DNS/TLS/HTTPエビデンス収集、および公開ソースのユーザー名検索と相関分析。
Raw Excess Scan
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の不確実性を保持します。
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
ラベルは意図的なものです:
| Label | Meaning |
|---|---|
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は、通常の検出結果優先ビューから意図的に省略されている追加のプランナ、ポリシー、アカウンティング、推論情報を公開します。
機械可読出力は別途利用できます:
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は若いプロジェクトです。長年確立されたネットワークスキャナが持つプロトコルカバレッジ、フィンガープリントコーパス、プラットフォームの広さ、運用履歴を持っているものとして扱うべきではありません。
RXScanは偵察ツールであり、エクスプロイトフレームワークではありません。
以下を自動的に提供しません:
ネットワークスキャンは、所有している、または明示的に評価を許可されているシステムに対してのみ使用してください。
要件:
ビルド:
cargo build --release --locked
実行:
./target/release/rxscan --help
テスト:
cargo test --locked
完全なプロジェクトチェック:
cargo fmt --check
cargo check --all-targets --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo test --locked
git diff --check
cargo run -- search lint
ネットワークテストは、公開インターネットサービスに依存するのではなく、決定論的なローカルフィクスチャを使用すべきです。
公開されたリリースとそのノートは、GitHub Releasesページで入手できます。
v1.0.0とv1.0.1タグは、誤った0.1.0のCargoパッケージメタデータで公開されました。これらの履歴タグは意図的に変更されずに残されています。
v1.0.2は、正しくバージョン付けされた最初の1.xリリースです。
masterでの開発には、最新の公開リリースより新しい変更が含まれる場合があります。
docs/ROADMAP.mdを参照してください。