Skip to content

T3pp31/HappyHackingTools.py_2022

Repository files navigation

HappyHackingTools

ネットワークセキュリティツールキットのデスクトップアプリケーションです。 ペネトレーションテストやCTFの学習・実践を目的として開発しています。

A desktop network security toolkit built with Rust + Tauri v2 and React/TypeScript frontend, designed for penetration testing and CTF practice.

インストール

Windows 利用者向け

GitHub Releases に添付される HappyHackingTools-bootstrapper.exe の利用を推奨します。
bootstrapper は Windows 用インストーラーを取得して起動します。

  • Npcap は初回必須ではありません
  • ARP Spoof など Npcap 依存機能を開く時にアプリ内でダウンロード導線を案内します
  • 上級者向けには Tauri が生成する Windows インストーラーも併せて配布します

開発者・Contributor 向け

開発環境のセットアップ手順は CONTRIBUTING.md を参照してください。

注意事項 / Disclaimer

ペネトレーション・CTF目的に作成しているので、第三者に対する攻撃に使用しないようにしてください。 本レポジトリ所有者はいかなる責任も負いません。

This tool is designed for penetration testing and CTF purposes only, and must not be used for attacks against third parties. The owner of this repository assumes no responsibility whatsoever.

技術スタック

カテゴリ 技術
バックエンド Rust (Edition 2021, MSRV 1.77.2)
フレームワーク Tauri v2
フロントエンド React 18 + TypeScript 5.6
ビルドツール Vite 5
ルーティング React Router v7
テスト Vitest + Testing Library + happy-dom / node:test
パケットキャプチャ pnet / pcap (Npcap SDK)
設定管理 TOML

機能一覧

機能 説明
LAN スキャン ARP を使用したローカルネットワーク内のホスト検出、ベンダー情報の取得
ポートスキャン 指定ホストのオープンポート検出
ARP スプーフィング ARP テーブルのポイズニングとパケットスニッフィング
バイナリビューア ファイルのバイナリ表示
CTF ツール CTF 向けユーティリティ
ネットワーク情報 ネットワークインターフェース情報の表示

ディレクトリ構成

HappyHackingTools.py_2022/
├── src/                          # フロントエンド (React/TypeScript)
│   ├── components/               # UI コンポーネント
│   │   ├── ArpSpoof/
│   │   ├── Binary/
│   │   ├── Ctf/
│   │   ├── LanScan/
│   │   ├── Layout/
│   │   ├── PortScan/
│   │   └── common/
│   ├── pages/                    # ページコンポーネント
│   ├── config/                   # フロントエンド設定 (defaults.ts)
│   ├── hooks/                    # カスタム React フック
│   ├── types/                    # TypeScript 型定義
│   └── styles/                   # スタイルシート
├── src-tauri/                    # バックエンド (Rust/Tauri)
│   ├── src/
│   │   ├── commands/             # Tauri コマンド (IPC ハンドラ)
│   │   ├── network/              # ネットワーク処理モジュール
│   │   ├── utils/                # ユーティリティ (バイナリ処理等)
│   │   ├── config.rs             # アプリケーション設定
│   │   ├── error.rs              # エラー型定義
│   │   ├── lib.rs                # Tauri アプリケーション初期化
│   │   └── main.rs               # エントリポイント
│   ├── config/
│   │   └── default.toml          # デフォルト設定ファイル
│   ├── capabilities/             # Tauri v2 権限設定
│   └── tauri.conf.json           # Tauri 設定
├── tests/                        # Vitest / node:test / 補助検証テスト
├── docs/                         # 補足ドキュメント
├── scripts/                      # ビルドスクリプト
│   └── setup-npcap-sdk.ps1       # Npcap SDK セットアップ
├── package.json
├── vite.config.ts
├── vitest.config.ts
└── tsconfig.json

動作環境

開発時の要件

  • Node.js (npm が利用可能であること)
  • Rust (Edition 2021, MSRV 1.77.2 以上)
  • Npcap (Windows でパケットキャプチャ機能を使用する場合)

Windows 版は wpcap.dll / Packet.dll を遅延ロードするため、Npcap ランタイムが未導入でもアプリ起動自体は可能です。Npcap 依存機能ではダウンロード導線を案内します。

Npcap SDK のセットアップ (Windows)

Npcap SDK は以下のいずれかの方法で配置してください。

  1. 環境変数 NPCAP_SDK_DIR に SDK ルートディレクトリを設定する
  2. 以下のいずれかのパスに配置する:
    • C:\npcap-sdk\Lib\x64
    • C:\Program Files\Npcap SDK\Lib\x64
    • %USERPROFILE%\.npcap-sdk\Lib\x64

または、付属のセットアップスクリプトを使用できます:

.\scripts\setup-npcap-sdk.ps1

対応 OS

  • Windows (アプリ起動は可能。ARP Spoof などの Npcap 依存機能には Npcap が必要)
  • Linux / macOS (libpcap が必要)

開発

npm cinpx tauri devnpx tauri build などの開発者向け手順は CONTRIBUTING.md に集約しています。
ビルド成果物は src-tauri/target/release/ に出力されます。

開発コマンド

コマンド 説明
npm run dev Vite 開発サーバーのみ起動 (フロントエンド単体)
npx tauri dev Tauri 開発モード (フロントエンド + バックエンド)
npx tauri build リリースビルド
npm run build フロントエンドのみビルド
npm run lint ESLint によるコード検査
npx vitest テスト実行
npx vitest --coverage カバレッジ付きテスト実行
node --test tests/buildRsConsistency.test.mjs build.rs の構造検証
node --test tests/readmeConsistency.test.mjs README 整合性チェック
node --test tests/buildDelayLoadConsistency.test.mjs 遅延ロード設定の回帰チェック
node --test tests/releaseWorkflowConsistency.test.mjs Release / Contributor 文書の整合性チェック
node --test tests/repoCleanupConsistency.test.mjs 不要生成物・旧資産の再混入防止チェック
cargo test --manifest-path tools/windows-bootstrapper/Cargo.toml Windows bootstrapper の単体テスト

設定

アプリケーションの設定は src-tauri/config/default.toml で管理されています。

セクション 設定項目 説明
[scan] arp_timeout_ms ARP 応答タイムアウト (ms)
[scan] arp_retry_count ARP リトライ回数
[scan] port_scan_timeout_ms ポートスキャンタイムアウト (ms)
[scan] port_scan_concurrency ポートスキャン同時接続数
[scan] sniff_timeout_sec スニッフィングタイムアウト (秒)
[scan] poison_interval_sec ARP ポイズニング間隔 (秒)
[scan] reset_packet_count ARP 停止時に送信する復旧パケット数
[scan] progress_report_interval 進捗イベント送信間隔
[scan] lan_scan_arp_retry_count LAN スキャン時の ARP リトライ回数
[vendor] api_url MAC ベンダー API の URL
[vendor] use_local_oui ローカル OUI データベースの使用
[vendor] api_timeout_ms MAC ベンダー API タイムアウト (ms)
[vendor] user_agent MAC ベンダー API 呼び出し時の User-Agent
[network] udp_probe_target ネットワーク情報取得時の UDP プローブ先
[network] enable_external_cli_fallback netsh / ip フォールバックの有効化
[feature_flags] prefer_rust_implementation Rust 実装を優先するか
[paths] pcap_output_dir キャプチャファイル出力先
[paths] pcap_filename キャプチャファイル名

セキュリティ設定変更後の確認手順

src-tauri/tauri.conf.jsonsrc-tauri/capabilities/default.json の権限を絞った後は、以下の手順で必要機能だけが動作することを確認してください。

  1. アプリを起動する。
    npx tauri dev
  2. Npcap が未インストールの環境で LAN Scan / ARP Spoof など Npcap 依存機能を開く。
  3. Npcap 案内ダイアログに表示される https://npcap.com/#download のリンクをクリックし、既定ブラウザで外部ページが開くことを確認する。
  4. バイナリビューアで「Select File」を実行し、ファイル選択ダイアログが開くことと、選択ファイルの読み取りが成功することを確認する。
  5. 上記以外の画面操作で、外部 URL を任意に開く導線が存在しないことを確認する。
  6. 開発者ツールの Console に CSP 違反エラーが継続的に出ていないことを確認する。

補足:

  • 現在の権限は core:defaultdialog:allow-openshell:allow-open のみを許可し、fs:default など広い権限は付与しない構成です。
  • 外部リンク導線は Npcap ダイアログに限定し、shell.openhttps://npcap.com/#download のみ許可する設定です。

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors