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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sunsetscan — ローカルネットワークのセキュリティ監査:EOL、CVE、デバイス識別、HTMLレポート対応 | Kitploit
ツール/GitHubGitHub/nocoderrandom/sunsetscan
偵察脆弱性スキャナーIoTセキュリティパスワード攻撃構成監査情報収集ネットワークセキュリティ
GitHubnocoderrandom/sunsetscan

sunsetscan

ローカルネットワークのセキュリティ監査:EOL、CVE、デバイス識別、HTMLレポート対応

リポジトリを見る
32ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

SunsetScan

人間のためのネットワークセキュリティ監査 — nmap を基盤に、誰でも使えるように。

[Version] Python 3.9+ Platform License: MIT Hardware DB License: CC BY-NC 4.0 Requires: nmap CVE data: OSV.dev

Website: sunsetscan.com


SunsetScan は、家庭ネットワークの管理者や IT スタッフを対象としたローカルネットワークセキュリティ監査ツールです。nmap の深みを活かしながら、nmap の構文を覚える必要はありません。ネットワークを指定すると、アクティブなデバイスをすべて検出し、実行中のソフトウェアをフィンガープリントし、既知の脆弱性データベースやサポート終了情報と照合し、Web インターフェースの一般的な脆弱性を調査し、必要に応じてロックアウト耐性のある工場出荷時デフォルト認証情報の監査を実行し、平易な英語の説明と各発見事項を修正するための番号付き手順を含む、きれいな HTML レポートを生成します。完全に読み取り専用で非破壊的 — ネットワーク上のどのデバイスも変更されることはありません。


プラットフォームサポート

なぜ Linux なのか? SunsetScan は、raw ソケット (ARP スキャン、パッシブパケットキャプチャ)、Linux 固有の API (/proc、ip route)、権限チェック (os.geteuid()) に依存しており、これらはネイティブ Windows では利用できません。WSL2 は完全な Linux カーネルを提供するため、Windows ユーザーには推奨される方法です。


インストール

SunsetScan にはインストーラが付属しており、システムツール (nmap、masscan、git、python3-venv) のインストール、プロジェクトローカルの Python 仮想環境の作成、およびその内部へのすべての Python 依存関係のインストールを行います。root として pip install を実行する必要は一切ありません — これは現代の Debian/Pi OS では重要であり、以下の なぜ venv なのか? を参照してください。

ティア 1 プラットフォーム (完全テスト済み)

Debian、Ubuntu、Raspberry Pi OS (Bookworm 以降)、Linux Mint、Pop!_OS。

ティア 2 プラットフォーム (ベストエフォート、同じスクリプト)

Fedora、RHEL、CentOS、Rocky、Alma、Arch、Manjaro、openSUSE、macOS。

4 つのインストール方法 — いずれかを選択

1. Debian/Ubuntu パッケージ

Debian、Ubuntu、Raspberry Pi OS、Linux Mint、Pop!_OS に推奨:```bash curl -LO https://github.com/NoCoderRandom/sunsetscan/releases/download/v2.1.0/sunsetscan_2.1.0-1_all.deb curl -LO https://github.com/NoCoderRandom/sunsetscan/releases/download/v2.1.0/sunsetscan_2.1.0-1_all.deb.sha256 sha256sum -c sunsetscan_2.1.0-1_all.deb.sha256 sudo apt install ./sunsetscan_2.1.0-1_all.deb sunsetscan --version

root@kitploit:~
#### 2. ワンライナーブートストラップ

リポジトリを `~/sunsetscan` にクローンし、インストーラを実行します:```bash
curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash

別の場所にインストールしたいですか?INSTALL_DIRを設定してください:```bash INSTALL_DIR=/opt/sunsetscan curl -fsSL https://raw.githubusercontent.com/NoCoderRandom/sunsetscan/main/bootstrap.sh | bash

root@kitploit:~
> **`curl | bash`に関する注意**: 便利ですが、読んでいないスクリプトを実行することを意味します。事前に確認したい場合は、オプション3または4を使用してください。

#### 3. クローンしてインストール```bash
git clone https://github.com/NoCoderRandom/sunsetscan.git
cd sunsetscan
./install.sh

4. 手動インストール(完全制御、4つのコマンド)```bash

sudo apt install -y nmap masscan git python3 python3-venv python3-pip libpcap-dev build-essential avahi-utils git clone https://github.com/NoCoderRandom/sunsetscan.git && cd sunsetscan python3 -m venv venv && ./venv/bin/pip install -r requirements.txt ./sunsetscan --version

root@kitploit:~
(お使いのディストリビューションのパッケージマネージャーを `apt` — `dnf`、`pacman`、`zypper`、`brew` のいずれかに置き換えてください。avahi パッケージは、Fedora/RHEL では `avahi-tools`、Arch では `avahi`、openSUSE では `avahi-utils` となり、macOS では必要ありません。)

### インストール後 — 初回実行```bash
./sunsetscan --setup                 # download EOL/CVE/credential databases (once)
sudo ./sunsetscan --instant          # ARP-only inventory of your local subnet
sudo ./sunsetscan --full-assessment --target 192.168.1.0/24

The ./sunsetscan ランチャーは自動的に venv を有効化するため、source venv/bin/activate を実行する必要は一切ありません。raw ソケットを必要とするスキャンでは sudo を使用しますが、--setup、--download、--update-cache は通常ユーザーとして実行し、キャッシュファイルが TUI から書き込み可能な状態を維持します。

インストーラーフラグ

./install.sh の再実行は安全で冪等性があります — 既存のコンポーネントを検出して再利用します。

なぜ venv なのか?

最近の Debian ベースのディストリビューション (Debian Bookworm、Raspberry Pi OS Bookworm、Ubuntu 23.04+) には PEP 668 の強制が実装されています。これにより、システム Python に対して root として pip install を実行すると 失敗 します。``` error: externally-managed-environment × This environment is externally managed

root@kitploit:~
SunsetScanの依存関係(特に`pysnmp` v6)のうち2つは、aptリポジトリが提供するバージョンよりも新しいバージョンを必要とするため、aptのみでのインストールはできません。インストーラの解決策は標準的なものです:システムツール(nmap、masscan、libpcap、avahi-utils)はaptでインストールし、SunsetScanのPython依存関係はプロジェクトローカルの`./venv`ディレクトリに配置します。システム全体には何も触れないため、PEP 668は適用されず、SunsetScanのアンインストールは`rm -rf ~/sunsetscan`だけです。

### オプション:SunsetScanをバックグラウンドで実行し続ける

Raspberry Pi上の/24サブネットの完全な評価には10~30分かかることがあります。`tmux`または`screen`を使用して、SSHが切断されてもスキャンが継続されるようにします:```bash
sudo apt install -y tmux
tmux new -s sunsetscan
sudo ./sunsetscan --full-assessment --target 192.168.1.0/24
# Ctrl+B then D to detach. "tmux attach -t sunsetscan" to come back later.

SunsetScanの更新```bash

cd ~/sunsetscan git pull ./install.sh # idempotent — picks up any new dependencies

root@kitploit:~
### アンインストール```bash
rm -rf ~/sunsetscan
sudo rm -f /usr/local/bin/sunsetscan    # only if you used --symlink

Windows 上の WSL2

Windows は直接サポートされていません(SunsetScan は raw ソケット、/proc、os.geteuid を必要とします)が、WSL2 では問題なく動作します:```powershell wsl --install -d Ubuntu # in PowerShell, as Administrator

root@kitploit:~
再起動して、スタートメニューから **Ubuntu** を開き、上記の標準インストール手順に従ってください。WSL2 は仮想ネットワークアダプタを使用します — 自動検出が誤ったサブネットを選択する場合は、`--target` で実際のサブネットを指定してください。

---

## 必要条件

| 必要条件 | 最小バージョン | 備考 |
|---|---|---|
| **Python** | 3.9+ | 3.12 推奨 |
| **nmap** | 最新版 | システムの PATH に存在すること |
| **OS** | Linux (ネイティブまたは WSL2) | [対応プラットフォーム](#platform-support) を参照 |
| **masscan** | 任意 | オプション — より高速なポート探索 |
| **avahi-utils** | 任意 | オプション — `avahi-browse` を提供し、Apple / Bonjour / Sleep-Proxy デバイスの信頼性の高い mDNS 探索に使用。ない場合は Python の `zeroconf` にフォールバック。 |
| **git** | 任意 | オプション — `--setup` および `--update` で使用 |
| **権限** | 一般ユーザー | FULL、STEALTH、SMB プロファイル、ARP 検出、パッシブキャプチャには root/sudo が必要 |

---

## クイックスタート```bash
# Interactive mode (recommended for first-time users)
sudo python3 sunsetscan.py -i

# Full security assessment with HTML report
sudo python3 sunsetscan.py --full-assessment --target 192.168.1.0/24

# Quick scan of your network
python3 sunsetscan.py --target 192.168.1.0/24

# IoT device scan (cameras, routers, smart devices)
python3 sunsetscan.py --target 192.168.1.0/24 --profile IOT

# Quick device inventory (no security checks)
python3 sunsetscan.py --identify --target 192.168.1.0/24

# Download all data modules for extended detection
python3 sunsetscan.py --download all

特徴

ネットワーク検出

  • 高速pingスイープによるアクティブホストの検出
  • ホスト名の解決とベンダー/メーカー検索によるMACアドレスの検出
  • 柔軟なターゲット入力: CIDR、ワイルドカード、IP範囲、カンマ区切り、ホスト名
  • 大規模ネットワークでの高速ポート検出のためのオプションのmasscan統合
  • ハイブリッドスキャン: パッシブバックグラウンドキャプチャ(mDNS/SSDP/DHCP)とアクティブスキャンの組み合わせ

ポートおよびサービススキャン

  • 6つのスキャンプロファイル: QUICK、FULL、STEALTH、PING、IOT、SMB
  • フルアセスメントでは、まずアクティブホストを検出し、検出されたホストのみをサービススキャンします。ターゲットCIDR内のすべてのアドレスを盲目的にスキャンするわけではありません
  • すべてのオープンポートでの同時バナー取得(50スレッドプール)
  • 信頼度パーセンテージ付きOSフィンガープリント
  • 強化されたデバイス検出のためのNSE(Nmapスクリプトエンジン)統合
  • ルーター、カメラ、NASデバイス、プリンター、IoTを識別するHTTPフィンガープリント
  • 自動ルート権限フォールバック: sudoなしで実行した場合、FULL/STEALTHプロファイルは優雅に機能低下します
  • 低電力ホスト、Wi-Fi、WSL/NAT、検証実行のためのセーフモード: ワーカーを制限し、広範な全ポートmasscanスイープをスキップし、nmapポートセットを制限し、コマンドごとのスキャンタイムアウトを適用します
  • 並列セキュリティ分析 — すべてのホストごとのチェック(SSL、SSH、FTP、SMB、SNMP、Web)が、スレッドプールを使用してホスト間および各ホスト内で同時に実行されます
  • フェーズ7のセキュリティ分析は、ネットワークサイズに関係なく10秒未満で完了します
  • スキャン前の準備チェック — nmapが不足している場合、CVE/EOLデータベースが空の場合、またはデフォルトモジュールがインストールされていない場合に警告します。すべてのスキャンの前に実行されますが、スキャンをブロックしません。

セキュリティチェック

SunsetScanはフルアセスメント中に12のセキュリティチェッカーモジュールを実行します:

脆弱性インテリジェンス

  • CVE相関 — 検出されたサービスバージョンをOSV.devを使用して既知のCVEにマッピング
  • ソフトウェアEOLチェック — 150以上のソフトウェア製品のローカルキャッシュライフサイクルデータ
  • ハードウェアライフサイクルチェック — 拡張されたSunsetScanハードウェアEOLデータベース。64,245件のライフサイクルレコード、51,452件のモデルサマリー、122のベンダーをカバー。ルーター、スイッチ、NAS、カメラ、プリンター、アクセスポイント、産業用/OT機器、サービスプロバイダー機器を、確認されたサポート終了ステータスまたはレビューが必要なベンダーライフサイクルシグナルとともにフラグ付けします。
  • スマートハードウェアEOLプロファイル — ホームユーザーは小規模なhardware-eol-homeデフォルトプロファイルを使用し、オフィス、エンタープライズ、産業、サービスプロバイダー、フルプロファイルはより広範囲なスキャンで利用可能です。
  • JA3S TLSフィンガープリント — TLSハンドシェイク署名からサーバーソフトウェアを識別
  • スキャン中は完全オフライン — スキャン中に外部API呼び出しは行われません。ソフトウェアEOL、CVE、GitHubモジュールソースは--setup、--update-cache、--downloadでのみ接続されます。キャッシュが存在する限り、スキャンはインターネット接続なしでも動作します。
  • 毎週のCVE更新、毎月のEOL更新 — あなたが制御

デバイス識別

  • 14の証拠抽出器が、MAC OUI、nmap OS、HTTPフィンガープリント、TLS証明書、SSHバナー、UPnP、SNMP sysDescr、Wappalyzer、mDNS、JA3S TLSフィンガープリント、FTPバナー、ポートヒューリスティクス、nmapサービスフィールドを融合し、ホストごとの統合デバイスアイデンティティを生成
  • 信頼度スコアリング(複数の情報源が一致した場合のボーナス)でベンダー、モデル、ファームウェアバージョン、デバイスタイプを識別
  • 名前の正規化のための130以上のベンダーエイリアスをサポート
  • 結果は端末テーブルとHTMLレポートのデバイスインベントリに表示
  • クイックアセットインベントリモード: --identifyフラグでセキュリティチェックをスキップ
  • スキャン間での永続的なMAC対アイデンティティマッピング

モジュラーデータシステム

SunsetScanには、検出機能を拡張するダウンロード可能なデータモジュールとハードウェアEOLプロファイルが含まれています:

ハードウェアライフサイクルデータベースはスマートなダウンロード可能プロファイルに分割されました: hardware-eol-homeがデフォルトインストールで、hardware-eol-fullが完全なカバレッジを提供します。フルカノニカルビルドには現在122ベンダーにわたる64,245レコードが含まれていますが、ホームユーザーは小さなホームプロファイルのみが必要です。

root@kitploit:~
### 不正デバイス検出
- ネットワークのスナップショットを信頼できるベースラインとして保存
- 以降のスキャンでベースラインにない未知のMACアドレスを自動的にフラグ付け
- 予期しないIPアドレス上にある既知のデバイスを検出

### リスクスコアリング
各デバイスは、発見された項目の重大度と数に基づいてリスクスコア(0-100)を受け取ります:

| スコア | バンド |
|---|---|
| 0-10 | 最小リスク |
| 11-30 | 低リスク |
| 31-60 | 中リスク |
| 61-80 | 高リスク |
| 81-100 | 致命的リスク |

### レポート機能
- **プロフェッショナルなHTMLレポート** — 重大度ダッシュボード、ホストごとのセクション、平易な英語による説明付きの発見カード、優先順位付けされた推奨事項
- **JSONエクスポート** — 機械可読な構造化出力
- レポートは完全に自己完結型 — 1つのHTMLファイルで、外部依存関係なし
- SMBなどの狭いプロファイルでも、一致するサービスポートが開いていない場合でも、発見されたホストはレポートに表示されます
- DNS、UPnP、スキャン実行時間メモなどのネットワークレベルチェックは、デバイスごとの発見から分離されます。デバイスのリスクスコアは実際のホストに対してのみ表示されます
- すべての発見は色分け: Critical (致命的)、High (高)、Medium (中)、Low (低)、Info (情報)

### スキャン履歴と差分表示
- すべてのスキャンはgzip圧縮されたJSONスナップショットとして自動保存されます
- `--history` で過去のスキャンを表示
- `--diff` で任意の2つのスキャンを比較し、新しいホスト、閉じたポート、新規/解決済みの発見を確認
- `--diff --since N` でN日前のスキャンと比較
- 履歴はデフォルトで90日間保持

### ユーザーインターフェース
- ガイド付き**インタラクティブモード** (`-i`) — スキャン、分析、エクスポート、モジュールのための多階層メニュー
- **旧式メニュー** — 引数なしで実行すると起動
- 直接CLIモード — スクリプト化および自動化に適しています
- プログレスバー、スピナー、サマリーパネルを備えたリッチなカラー端末出力

---

## All CLI Flags

| Flag | Description | Root |
|---|---|---|
| `--target TARGET` | スキャンするIP、CIDR範囲、ホスト名、または範囲 | いいえ |
| `--profile PROFILE` | スキャンプロファイル: QUICK, FULL, STEALTH, PING, IOT, SMB (デフォルト: QUICK) | 異なる |
| `-i`, `--interactive` | ガイド付きインタラクティブモードを起動 | いいえ |
| `--full-assessment` | 完全な評価 + 自動HTMLエクスポート; 認証情報監査はオプトインのまま | いいえ |
| `--identify` | デバイス識別のみ実行(セキュリティチェックをスキップ) | いいえ |
| `--nse` | 拡張検出のためにNmap Scripting Engineを有効化 | いいえ |
| `--check-defaults` | ロックアウト安全な工場出荷時デフォルト認証情報監査をオプトイン(所有デバイスのみ) | いいえ |
| `--save-baseline` | 不正検出のための信頼できるデバイスベースラインとしてスキャンを保存 | いいえ |
| `--setup` | 初回セットアップウィザード(依存関係 + キャッシュダウンロード) | いいえ |
| `--update-cache` | CVEおよびEOLデータキャッシュを手動で更新 | いいえ |
| `--cache-status` | キャッシュの経過時間とエントリ数を表示して終了 | いいえ |
| `--modules` | ダウンロード可能なすべてのデータモジュールのステータスを表示 | いいえ |
| `--download MODULE` | データモジュール(または"all")をダウンロード | いいえ |
| `--db SIZE` | `--setup`用のEOLデータベースサイズ: mini, normal, large (デフォルト: normal) | いいえ |
| `--history` | スキャン履歴テーブルを表示して終了 | いいえ |
| `--diff` | 最後に保存された2つのスキャンの差分を表示して終了 | いいえ |
| `--since DAYS` | `--diff`と併用: 少なくともN日前のスキャンと比較 | いいえ |
| `--check-version` | GitHub上の新しいSunsetScanリリースを確認 | いいえ |
| `--update` | GitHubから最新コードを取得し、依存関係を再インストール | いいえ |
| `--verbose` | デバッグログを有効化 | いいえ |
| `--no-color` | カラー出力を無効化(ログファイルに便利) | いいえ |
| `--quiet` | プログレスバーを抑制(発見は引き続き表示) | いいえ |
| `--safe-mode` | より穏やかなスキャンを強制: nmapの範囲制限、masscanの使用量低減、ワーカー数削減、重量プローブスキップ | いいえ |
| `--no-safe-mode` | 自動セーフモードを無効化 | いいえ |
| `--version` | バージョン番号を表示して終了 | いいえ |

---

## Scan Profiles

| プロファイル | nmapフラグ | 速度 | ルート | 最適な用途 |
|---|---|---|---|---|
| **PING** | `-sn` | ~30s | いいえ | アクティブなデバイスを迅速に発見 |
| **QUICK** | `-T4 -F -sV --version-intensity 2` | 1-3分 | いいえ | ネットワークの最初の確認(軽いバージョン検出付き) |
| **FULL** | `-T4 -A -sV -O --osscan-guess` | 5-15分 | はい | 特定のホストの詳細な分析 |
| **STEALTH** | `-sS -T2 -sV` | 10-30分 | はい | 低ノイズスキャン |
| **IOT** | `-T4 -sV -p 23,80,443,8080,8443,554,1900,5000,5001,7547,49152 --open` | 1-3分 | いいえ | カメラ、ルーター、スマートデバイス |
| **SMB** | `-T4 -sV -p 135,139,445,137,138 --script smb-security-mode,smb2-security-mode,smb-vuln-ms17-010 --open` | 1-3分 | はい | Windows共有、EternalBlueチェック |

> **ヒント:** FULLおよびSTEALTHは、sudoなしで実行すると自動的に非ルートフラグにフォールバックします。OS検出は利用できなくなりますが、ポートスキャンとサービス検出は引き続き機能します。

### デフォルトパスワード監査の安全性

デフォルトパスワードのテストは自動的に有効になりません。CLIモードでは `--check-defaults` を追加し、ガイド付き `-i` モードでは、プロンプトが表示されたらデフォルトパスワード監査を選択します。SunsetScanはその後、控えめなポリシーを適用します:

- デフォルトでは一般的なユーザー名/パスワードのスプレー攻撃は行いません
- 検出されたベンダーとモデル/ファミリに一致する資格情報のみをテストします
- 多くのHPプリンタのような独自のラベル/PINデフォルトを持つデバイスはスキップします
- デフォルトではホストあたり最大2回、サービスあたり1回の試行に制限
- 資格情報を伴う試行の間に2秒待機
- デバイスがロックアウトまたはレート制限シグナルを返した場合、即座に停止

組み込みデータベースは意図的に小さく、ソースに基づいています。ダウンロードされた大規模な資格情報モジュールは参照データとして保持されますが、開発者が `Settings.auth_allow_module_credentials` を明示的に有効にしない限り、安全な監査ではそれらを使用しません。

### セーフモードと検証実行

セーフモードは、低電力ホスト、Pi-hole/ゲートウェイアプライアンスのように見えるホスト、およびWi-Fi egressで自動的に推奨されます。また、以下の方法で強制することもできます:```bash
python3 sunsetscan.py --full-assessment --target 192.168.1.0/24 --safe-mode

In safe mode SunsetScan:

  • 最初に生存ホストを発見し、完全評価中はそれらのホストのみをスキャンします
  • CLI、旧メニュー、ガイド付き -i モードと同じ安全なスキャナー動作を適用します
  • 広域スキャンからOSフィンガープリンティングを削除します
  • 広域STEALTH/FULLスキャンを高速/トップポート制限で制限します
  • ブロードプロファイルでは全ポートmasscanスイープをスキップします
  • ワーカー数を減らし、重いTLSプローブをスキップします
  • nmapごとのタイムアウトを適用して、1つのプロファイルが無限に停止しないようにします

For root-assisted regression testing across all modes, use the validation collector:```bash sudo bash scripts/sudo_network_validation.sh

root@kitploit:~
デフォルトでは、`192.168.1.0/24` を PING、QUICK、SMB、STEALTH、FULL 全体でテストし、生成された HTML レポートを検証ディレクトリにコピーし、`reports/` の下に圧縮アーカイブを作成します。レポート、ログ、pcap、アーカイブは git によって無視され、コミットされるべきではありません。

便利なオーバーライド:```bash
sudo SUNSETSCAN_TARGETS="192.168.1.0/24" bash scripts/sudo_network_validation.sh
sudo SUNSETSCAN_PROFILES="PING QUICK FULL" bash scripts/sudo_network_validation.sh
sudo SUNSETSCAN_COMMAND_TIMEOUT=1200 bash scripts/sudo_network_validation.sh

キャッシュ管理

SunsetScanはスキャン中に外部APIを呼び出すことはありません。すべてのデータはdata/cache/内のローカルキャッシュファイルから読み取られます。

root@kitploit:~
スキャンは、古いキャッシュやキャッシュがない場合でも正常に動作します — ただ、CVEデータが古くなっている可能性があります。

---

## 不正デバイスの検出```bash
# Step 1: Save baseline when all known devices are present
sudo python3 sunsetscan.py --target 192.168.1.0/24 --save-baseline

# Step 2: Future scans automatically compare against baseline
sudo python3 sunsetscan.py --target 192.168.1.0/24
発見深刻度意味
未知のデバイスを検出中MACがベースラインにない — 新規または不正なデバイス
デバイスのIP変更低既知のMACが異なるIPにある(通常は正常なDHCP)
以前に確認したデバイスがオフライン情報ベースラインデバイスが応答しない

注意: ベースラインでは、nmapによるMACアドレス検出にroot/sudoが必要です。


HTMLレポート

すべての --full-assessment は、自己完結型のHTMLレポートを生成します。内容は以下のとおりです。

  • 深刻度ダッシュボード — バッジカウント(Critical/High/Medium/Low/Info)、カラーバー、サマリー統計
  • リスクスコア — デバイスごとの0-100スコアとリスクバンドラベル
  • すべての結果テーブル — 全ホストにわたるすべての結果を深刻度順に並べ替え
  • ホストごとのセクション — デバイスごとに折りたたみ可能なセクション(結果カード、開放ポートテーブル、EOLステータス)
  • 結果カード — 深刻度バッジ、タイトル、「検出内容」、「意味」(平易な英語)、「対処法」(番号付きステップ)、証拠、CVE ID
  • 推奨事項 — 優先順位付けされたアクションリスト

レポートはインターネット接続不要で任意のブラウザで開けます。


デバイス識別

SunsetScanは、14の異なるソースからの証拠を組み合わせてネットワークデバイスを自動的に識別します。各ソースは、ベンダー、モデル、バージョン、またはデバイスタイプを信頼度スコアとともに提供します。融合アルゴリズムは、一致するソースを合計し(複数ソースの一致に対するボーナスあり)、矛盾する証拠にペナルティを課します。

クイック資産インベントリ

セキュリティチェックを実行せずにネットワーク上のデバイスを確認するには:```bash python3 sunsetscan.py --identify --target 192.168.1.0/24

root@kitploit:~
これはポートスキャンを実行し、バナーグラブを行い、デバイス識別テーブルを表示します。セキュリティ分析もレポートもなく、高速なインベントリ取得だけです。

### エビデンスソース

| ソース | 読み取る内容 | 信頼度 |
|--------|--------------|------------|
| MAC OUI | MACアドレスからのIEEEベンダープレフィックス | 0.40-0.45 |
| nmap OS | OSフィンガープリントの推測 | 変動 |
| HTTPフィンガープリント | Web UIからのデバイスタイプ、モデル、ファームウェア | 0.50+ |
| HTTPヘッダー | Server, X-Powered-By 応答ヘッダー | 0.20-0.50 |
| TLS証明書 | CN、発行者、組織フィールド | 0.35 |
| SSHバナー | SSHデーモンの識別文字列 | 0.10-0.70 |
| UPnP | SSDPの製造元、モデル、デバイスタイプ | 0.75 |
| SNMP sysDescr | SNMP MIBからのシステム説明 | 0.85 |
| Wappalyzer | CPE文字列とテクノロジーカテゴリ | 0.30-0.45 |
| mDNS/Zeroconf | サービスタイプのアドバタイズメント | 0.55 |
| JA3S | TLSハンドシェイクフィンガープリントデータベース | 0.50 |
| FTPバナー | FTPサーバーソフトウェアの識別 | 0.25-0.35 |
| ポートヒューリスティック | 開放ポートの組み合わせパターン | 0.10-0.70 |
| nmap services | サービスの製品とバージョンフィールド | 0.45 |

識別結果は以下に表示されます:
- 端末デバイスインベントリテーブル(スキャン中および `--identify` 経由)
- HTMLレポートのトポロジーカードとデバイスインベントリセクション
- JSONエクスポートの `device_identities` セクション
- 対話モードのメニューオプション [8] デバイスインベントリ

---

## 深刻度レベル

| レベル | 色 | CVSS範囲 | 意味 | 対応時期 |
|---|---|---|---|---|
| **CRITICAL** | 赤 | >= 9.0 | デフォルト認証情報、悪用可能なCVE、SSL 2.0 | 今日中 |
| **HIGH** | オレンジ | 7.0-8.9 | Telnet/FTP開放、証明書期限切れ、TLS 1.0、EOLソフトウェア | 今週中 |
| **MEDIUM** | 黄 | 4.0-6.9 | 自己署名証明書、UPnP露出、不正デバイス、HSTS欠如 | 修正予定を計画 |
| **LOW** | 青 | < 4.0 | EOL接近、X-Frame-Options欠如、デバイスIP変更 | 追跡と計画 |
| **INFO** | グレー | - | デバイス識別済み、証明書詳細、DNSチェック合格 | 処置不要 |

---

## プロジェクト構造```
sunsetscan/
├── sunsetscan.py                    # Entry point — CLI, scan pipeline, setup wizard
├── requirements.txt               # Python dependencies
├── install.sh                     # Automated installer for Linux/macOS
├── install.bat                    # Automated installer for Windows (basic)
├── README.md                      # This file
│
├── config/
│   └── settings.py                # All constants, timeouts, scan profiles, menu options
│
├── core/
│   ├── scanner.py                 # nmap wrapper (ScanResult, HostInfo, PortInfo)
│   ├── port_scanner.py            # Masscan pipeline + PortScanOrchestrator
│   ├── banner_grabber.py          # Concurrent raw socket banner grabbing
│   ├── http_fingerprinter.py      # HTTP device/firmware fingerprinting
│   ├── nse_scanner.py             # Nmap Scripting Engine integration
│   ├── auth_tester.py             # Default credential testing (HTTP, device-specific)
│   ├── input_parser.py            # Flexible target format parsing
│   ├── network_utils.py           # Subnet detection, IP helpers, WSL detection
│   ├── findings.py                # Finding dataclass, Severity enum, FindingRegistry
│   ├── risk_scorer.py             # Per-device risk scoring (0-100)
│   ├── cache_manager.py           # Unified CVE + EOL cache (data/cache/)
│   ├── cve_checker.py             # CVE lookup + CVECacheBuilder (OSV.dev)
│   ├── ssl_checker.py             # TLS certificate, cipher suite, JA3S fingerprinting
│   ├── ssh_checker.py             # SSH version, algorithms, KEXINIT analysis
│   ├── smb_checker.py             # SMBv1, EternalBlue, shares, NTLM disclosure
│   ├── ftp_checker.py             # Anonymous FTP, STARTTLS
│   ├── snmp_checker.py            # SNMP community strings, sysDescr (pysnmp v4+v7)
│   ├── web_checker.py             # HTTP headers, admin panels, Wappalyzer
│   ├── dns_checker.py             # DNS hijack and rebinding detection
│   ├── upnp_checker.py            # SSDP discovery, UPnP risk assessment
│   ├── mdns_checker.py            # mDNS/Zeroconf device discovery
│   ├── arp_checker.py             # ARP spoofing detection
│   ├── device_identifier.py       # 14-source device identification engine
│   ├── identity_fusion.py         # Multi-source identity fusion and scoring
│   ├── oui_lookup.py              # IEEE OUI MAC vendor resolution
│   ├── device_map.py              # Persistent MAC→identity mapping
│   ├── passive_sniffer.py         # Background mDNS/SSDP/DHCP packet capture
│   ├── packet_parsers.py          # Protocol-specific packet parsing
│   ├── instant_scan.py            # ARP sweep + passive capture quick scan
│   ├── hybrid_scanner.py          # Passive+active scan orchestrator
│   ├── baseline.py                # Rogue device baseline comparison
│   ├── hardware_eol.py            # Downloaded hardware lifecycle database lookup
│   ├── scan_history.py            # Scan snapshot persistence and diffing
│   ├── module_manager.py          # Downloadable data module system
│   └── update_manager.py          # Version check and self-update
│
├── eol/
│   ├── checker.py                 # EOL API queries and version comparison
│   ├── cache.py                   # Per-product JSON cache
│   └── product_map.py             # 150+ software name -> lifecycle cache slug mappings
│
├── ui/
│   ├── menu.py                    # Old-style numbered menu (no-args mode)
│   ├── display.py                 # Rich terminal tables, progress bars, banners
│   ├── export.py                  # JSON and HTML report generation
│   ├── interactive_controller.py  # Interactive mode (-i) with multi-level menus
│   └── templates/
│       └── report.html.j2         # Jinja2 HTML report template
│
└── data/
    ├── default_credentials.json   # Factory-default credentials database
    ├── device_map.json            # Persistent MAC→identity map
    ├── baseline.json              # Saved device baseline (--save-baseline)
    ├── cache/
    │   ├── cve_cache.json         # CVE data keyed by product:version
    │   ├── <product>.json         # EOL data keyed by product slug
    │   ├── hardware_eol/          # Downloaded hardware lifecycle database
    │   └── cache_meta.json        # Cache update timestamps
    ├── history/                   # Gzip scan snapshots (auto-saved)
    └── modules/                   # Downloaded data modules

トラブルシューティング

nmap が見つかりません```bash

Debian/Ubuntu

sudo apt install nmap

Fedora

sudo dnf install nmap

Arch

sudo pacman -S nmap

macOS

brew install nmap

root@kitploit:~
**権限が拒否されました / OS検出が機能していません**

FULL、STEALTH、SMBプロファイルは昇格された特権を必要とします。root権限がない場合、これらのプロファイルは自動的に非rootフラグにフォールバックします(OS検出とSYNスキャンは無効になりますが、ポート/バージョンスキャンは引き続き機能します)。```bash
# For full capabilities:
sudo python3 sunsetscan.py --target 192.168.1.0/24 --profile FULL

WSL2が誤ったネットワーク(172.x.x.x)を提案する

WSL2では、SunsetScanは仮想アダプタを検出して192.168.1.0/24にフォールバックします。ホームネットワークが異なるサブネットを使用している場合は、--targetで指定してください:```bash python3 sunsetscan.py --target 192.168.0.0/24

root@kitploit:~
**スキャン開始時のキャッシュ警告**```
WARNING: CVE data is 12 days old — run: python sunsetscan.py --update-cache

Scans work fine with stale data. Run --update-cache to refresh.

Permission denied while downloading modules

If module downloads fail with Permission denied: .../data/cache/..., the cache was probably created by sudo. Fix the ownership once, then run setup and module downloads as your normal user:

スキャンは古いデータでも正常に動作します。--update-cache を実行して更新してください。

モジュールのダウンロード中にPermission deniedエラー

モジュールのダウンロードが Permission denied: .../data/cache/... で失敗する場合、キャッシュはおそらく sudo で作成されました。所有権を一度修正してから、通常のユーザーとしてセットアップとモジュールのダウンロードを実行してください:```bash cd ~/sunsetscan sudo chown -R "$USER:$USER" data/cache ./sunsetscan --download all

root@kitploit:~
**SNMPチェックが機能しない**

SunsetScan は pysnmp v4(同期)と v7(非同期)の両方をサポートしています。インポートエラーが発生した場合は、pysnmp を更新してください:```bash
pip install --upgrade pysnmp

免責事項 — 許可された使用のみ

SunsetScanは、自分が所有する、またはテストする明示的な書面による許可を得たネットワークやデバイスでの使用を目的としたセキュリティ監査ツールです。

自分が所有していない、またはテストする許可を得ていないシステムに対してネットワークスキャンを実行することは、意図に関係なく違法となる可能性があります。著者は誤用に対する一切の責任を負いません。

SunsetScanは完全に非破壊的で読み取り専用です。脆弱性を悪用したり、ペイロードを配信したり、スキャンしたデバイスの構成を変更したりすることはありません。--check-defaultsクレデンシャルテストはオプトイン、制限付き、遅延、正確なモデル指向であり、ロックアウト/レート制限信号で停止します。これはブルートフォース機能ではありません。


ライセンス

SunsetScanリポジトリとアプリケーションコードはMITライセンスの下でライセンスされています — Copyright 2024 SunsetScan Contributors。

data/hardware_eol/以下のSunsetScanハードウェアEOLデータベースアーティファクトのみが別途ライセンスされています: このデータベースはCreative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0)の下でライセンスされています。data/hardware_eol/LICENSE.mdを参照してください。


謝辞

  • nmap — スキャンエンジン
  • python-nmap — Python nmapインターフェース
  • OSV.dev — 脆弱性データベース
  • Rich — 端末フォーマット
  • Jinja2 — HTMLレポートテンプレート
  • cryptography — TLS証明書検査
  • scapy — 生パケットキャプチャとARPスキャン
  • danielmiessler/SecLists — クレデンシャルとSNMPリスト
  • ihebski/DefaultCreds-cheat-sheet — ベンダークレデンシャル
  • enthec/webappanalyzer — Web技術検出
  • salesforce/ja3 — TLSフィンガープリンティング
  • many-passwords — カメラ/DVRクレデンシャル
ツールをダウンロード
プラットフォームサポートレベル備考
Linux (Debian, Ubuntu, Fedora, Arch など)完全サポート最高の体験 — すべての機能がネイティブに動作
WSL2 (Windows Subsystem for Linux)完全サポートWindows マシンで実行する場合の推奨方法
macOS部分サポートコアスキャンは動作しますが、一部の機能 (ARP、パッシブキャプチャ) は追加の設定が必要な場合があります
Windows (ネイティブ CMD/PowerShell)非サポートraw ソケット、os.geteuid()、/proc、ip route、termios がないため — 代わりに WSL2 を使用してください
フラグ効果
(フラグなし)デフォルトインストール: システムパッケージ + venv + Python依存関係 + セルフテスト
--forcevenv を削除して最初から再構築します (Python アップグレード後に使用)
--symlinkさらに /usr/local/bin/sunsetscan をインストールし、どこからでも sunsetscan を実行できるようにします
--no-systemapt/dnf/etc のステップをスキップします (システムツールが既にインストールされている場合に使用)
--helpすべてのオプションを表示
チェッカー検出内容
SSL/TLS期限切れ/自己署名証明書、弱い暗号、TLS 1.0/1.1、SSL 2.0/3.0、小さいRSA鍵
SSH弱い鍵交換、弱い暗号/MAC、SSHv1、小さいホスト鍵、生のKEXINIT分析
SMBSMBv1、EternalBlue (MS17-010)、匿名共有、SMB署名無効、NTLM開示
FTP匿名ログイン、平文資格情報、STARTTLS欠如
SNMPデフォルトコミュニティ文字列 (public/private)、SNMPv1、sysDescr抽出
Webセキュリティヘッダーの欠如、HTTP上のログインフォーム、ディレクトリリスティング、露出した管理パネル
DNSDNSハイジャック検出 (Cloudflare 1.1.1.1と比較)
UPnPSSDP検出、ルーター上のWANポートマッピング露出
mDNSZeroconf/Bonjourデバイス検出、ポートスキャンを回避するホストを発見
ARPARPスプーフィング検出、MACアドレス変更追跡 (ルート権限が必要)
Default credentialsオプトインの工場出荷時デフォルト監査。正確なデバイス/モデル一致、試行回数制限、遅延を使用
Insecure protocolsTelnet、FTP、TFTP、rsh、rlogin、rexecが重要度でフラグ付けされます
モジュールソース追加内容
credentials-minidanielmiessler/SecLists上位50のデフォルト資格情報(ダウンロード可能な参照データ。設定で明示的に有効にしない限り、安全監査では使用されません)
credentials-fullihebski/DefaultCreds-cheat-sheet2860以上のベンダー固有の資格情報(ダウンロード可能な参照データ。設定で明示的に有効にしない限り、安全監査では使用されません)
wappalyzer-minienthec/webappanalyzer上位500のウェブ技術(デフォルト)
wappalyzer-fullenthec/webappanalyzer全7515のウェブ技術
ja3-signaturessalesforce/ja3TLSフィンガープリントデータベース
snmp-communitydanielmiessler/SecLists拡張SNMPコミュニティ文字列
camera-credentialsmany-passwords/many-passwordsIPカメラ/DVR/NVRのデフォルト(ダウンロード可能な参照データ。設定で明示的に有効にしない限り、安全監査では使用されません)
mac-ouiIEEE Standards AssociationMACプレフィックスベンダーデータベース(デフォルト)
hardware-eol-homeNoCoderRandom/sunsetscanホーム/SOHOハードウェアライフサイクル/EOLプロファイル(デフォルト。データベースライセンス: CC BY-NC 4.0)
hardware-eol-officeNoCoderRandom/sunsetscanホームプラス小規模オフィスのハードウェアライフサイクル/EOLプロファイル
hardware-eol-enterpriseNoCoderRandom/sunsetscanホーム、オフィス、エンタープライズ/キャンパス/データセンターのハードウェアライフサイクル/EOLプロファイル
hardware-eol-industrialNoCoderRandom/sunsetscanホーム、オフィス、産業用/OTのハードウェアライフサイクル/EOLプロファイル
hardware-eol-service-providerNoCoderRandom/sunsetscanホーム、オフィス、エンタープライズ、サービスプロバイダーのハードウェアライフサイクル/EOLプロファイル
hardware-eol-fullNoCoderRandom/sunsetscan完全なスマートパックハードウェアライフサイクル/EOLプロファイル
hardware-eolNoCoderRandom/sunsetscanレガシーフルスプリットハードウェアライフサイクル/EOL互換性モジュール
sunsetscan --modules # Show module status
sunsetscan --download all # Download all modules, using the full hardware EOL smart profile
sunsetscan --download ja3-signatures # Download one data module
sunsetscan --download hardware-eol-home # Download a smaller hardware EOL profile
sunsetscan --download hardware-eol-full # Download every hardware EOL smart pack
ファイル内容更新間隔
data/cache/cve_cache.json製品:バージョンごとにキー付けされたCVEデータ7日ごと
data/cache/*.json150以上の製品のEOL日付、製品ごとに保存30日ごと
data/cache/hardware_eol/sunsetscan_hardware_eol_index.json および records/*.jsonハードウェアライフサイクル/EOLデータベース30日ごと
data/cache/hardware_eol/manifest.json、indexes/*.json、および records/<pack>/*.jsonスマートパックハードウェアライフサイクル/EOLプロファイル30日ごと
data/cache/cache_meta.json最終更新のタイムスタンプ自動
sunsetscan --cache-status # See current cache state
sunsetscan --update-cache # Refresh stale caches