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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PANO — グラフベースのOSINT調査プラットフォーム。タイムライン分析、エンティティ管理、AIを活用した変換機能により、メール、ユーザー名、画像、位置情報にわたる隠れた接続を明らかにします。 | Kitploit
ツール/GitHubGitHub/alw1ez/pano
OSINT (オープンソースインテリジェンス)偵察情報収集AIセキュリティ
GitHubalw1ez/pano

PANO

グラフベースのOSINT調査プラットフォーム。タイムライン分析、エンティティ管理、AIを活用した変換機能により、メール、ユーザー名、画像、位置情報にわたる隠れた接続を明らかにします。

リポジトリを見る
56268536ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

PANO - 分析とネットワーク運用のためのプラットフォーム

PANO Logo

License: CC BY-NC Python 3.11+ PySide6 Platform

PANO は、グラフ可視化、タイムライン分析、AI 駆動のツールを組み合わせ、データ内の隠れたつながりやパターンを明らかにする強力な OSINT 調査プラットフォームです。

はじめに • 機能 • ドキュメント • 貢献


https://github.com/user-attachments/assets/6b95e97a-ffdd-4056-b12b-f268d8e5d565

https://github.com/user-attachments/assets/af0c0f65-7b79-417c-a678-a789d42a6003

https://github.com/user-attachments/assets/568b4c28-be78-4559-a607-899fca2f9613

https://github.com/user-attachments/assets/6aa191eb-09de-41d5-b96f-4a2e32d6a0c2

https://github.com/user-attachments/assets/96377b80-e137-4eb4-9387-a0db4e49c2c1

https://github.com/user-attachments/assets/4228bda0-6c13-4ea9-bc07-d87abe367e10

🚀 はじめに

  1. リポジトリをクローン:

    root@kitploit:~
    git clone https://github.com/ALW1EZ/PANO.git
    cd PANO
    
  2. アプリケーションを実行:

    • Linux: ./start_pano.sh
    • Windows: start_pano.bat

起動スクリプトは自動的に:

  • 更新を確認
  • Python 環境をセットアップ
  • 依存関係をインストール
  • PANO を起動します

Email Lookup transform を使用するには、まず GHunt でログインする必要があります。 スタータースクリプトで pano を起動した後;

  1. venv を手動で選択
    • Linux: source venv/bin/activate
    • Windows: call venv\Scripts\activate
  2. ログイン方法はこちらを参照

💡 クイックスタートガイド

  1. 調査を作成: 新しい調査を開始するか、既存の調査を読み込む
  2. エンティティを追加: サイドバーからグラフにエンティティをドラッグ&ドロップ
  3. つながりを発見: トランスフォームを使用して関係を自動的に見つける
  4. 分析: タイムラインやマップビューでパターンを理解する
  5. 保存: 調査を後で使用するためにエクスポート

🔍 機能

🕸️ コア機能

  • インタラクティブなグラフ可視化

    • ドラッグ&ドロップによるエンティティ作成
    • 複数のレイアウトアルゴリズム(円形、階層、放射状、フォース指向)
    • 動的な関係マッピング
    • ノードとエッジのビジュアルスタイリング
  • タイムライン分析

    • 時系列イベントの可視化
    • インタラクティブなタイムラインナビゲーション
    • イベントのフィルタリングとグループ化
    • 時間的関係分析
  • マップ統合

    • 地理データの可視化
    • 位置情報に基づく分析
    • インタラクティブなマッピング機能
    • 座標のプロットと追跡

🎯 エンティティ管理

  • 対応エンティティタイプ
    • 📧 メールアドレス
    • 👤 ユーザー名
    • 🌐 ウェブサイト
    • 🖼️ 画像
    • 📍 場所
    • ⏰ イベント
    • 📝 テキストコンテンツ
    • 🔧 カスタムエンティティタイプ

🔄 トランスフォームシステム

  • メール分析

    • Google アカウント調査
    • カレンダーイベント抽出
    • 位置情報履歴分析
    • 接続サービスの発見
  • ユーザー名分析

    • クロスプラットフォームユーザー名検索
    • ソーシャルメディアプロフィール発見
    • プラットフォーム間の関連付け
    • Web 上の存在分析
  • 画像分析

    • 逆画像検索
    • ビジュアルコンテンツ分析
    • メタデータ抽出
    • 関連画像の発見

🤖 AI 統合

  • PANAI
    • 自然言語による調査アシスタント
    • 自動エンティティ抽出と関係マッピング
    • パターン認識と異常検出
    • 多言語対応
    • コンテキストを考慮した提案
    • タイムラインとグラフ分析

🧩 コアコンポーネント

📦 エンティティ

エンティティは PANO の基本的な構成要素です。接続と分析が可能な個別の情報を表します。

  • 組み込みタイプ

    • 📧 メール:サービス検出機能付きメールアドレス
    • 👤 ユーザー名:ソーシャルメディアやプラットフォームのユーザー名
    • 🌐 ウェブサイト:メタデータ付き Web ページ
    • 🖼️ 画像:EXIF と分析機能付き画像
    • 📍 場所:地理座標と住所
    • ⏰ イベント:時間ベースの事象
    • 📝 テキスト:一般的なテキストコンテンツ
  • プロパティシステム

    • 型安全なプロパティ検証
    • 自動プロパティゲッター
    • 動的プロパティ更新
    • カスタムプロパティタイプ
    • メタデータサポート

⚡ トランスフォーム

トランスフォームは、エンティティを処理して新しい情報や関係を発見する自動操作です。

  • 操作タイプ

    • 🔍 発見:既存のエンティティから新しいエンティティを見つける
    • 🔗 関連付け:関連するエンティティを接続する
    • 📊 分析:エンティティデータから洞察を抽出する
    • 🌐 OSINT:オープンソースインテリジェンスを収集する
    • 🔄 エンリッチメント:既存のエンティティにデータを追加する
  • 機能

    • 非同期操作サポート
    • 進捗追跡
    • エラーハンドリング
    • レート制限
    • 結果検証

🛠️ ヘルパー

ヘルパーは、特定の調査タスクに特化した専用 UI を備えたツールです。

  • 利用可能なヘルパー

    • 🔍 クロスエグザミネーション:発言や証言の分析
    • 👤 ポートレート作成:顔の合成画像の生成
    • 📸 メディアアナライザー:高度な画像処理と分析
    • 🔍 ベースサーチャー:注目地点付近の検索
    • 🔄 翻訳ツール:テキストの言語間翻訳
  • ヘルパーの機能

    • カスタム Qt インターフェース
    • リアルタイム更新
    • グラフ統合
    • データ可視化
    • エクスポート機能

👥 貢献

貢献を歓迎します!PANO に貢献するには:

  1. リポジトリをフォーク https://github.com/ALW1EZ/PANO/
  2. フォーク内で変更を行う
  3. 変更を徹底的にテストする
  4. main ブランチにプルリクエストを作成する
  5. プルリクエストの説明には以下を含めてください:
    • 変更内容
    • 変更理由
    • 実施したテスト
    • 該当する場合はスクリーンショット

注意: 開発には単一の main ブランチを使用しています。すべてのプルリクエストは直接 main に行ってください。

📖 開発ガイド

クリックして開発ドキュメントを展開

システム要件

  • オペレーティングシステム: Windows または Linux
  • Python 3.11+
  • GUI に PySide6
  • オンライン機能にインターネット接続

カスタムエンティティ

エンティティは PANO のコアデータ構造です。各エンティティは、特定のプロパティと動作を持つ情報を表します。カスタムエンティティを作成するには:

  1. entities フォルダに新しいファイルを作成 (例: entities/phone_number.py)
  2. エンティティクラスを実装:
root@kitploit:~
from dataclasses import dataclass
from typing import ClassVar, Dict, Any
from .base import Entity

@dataclass
class PhoneNumber(Entity):
    name: ClassVar[str] = "Phone Number"
    description: ClassVar[str] = "A phone number entity with country code and validation"
    
    def init_properties(self):
        """Initialize phone number properties"""
        self.setup_properties({
            "number": str,
            "country_code": str,
            "carrier": str,
            "type": str,  # mobile, landline, etc.
            "verified": bool
        })
    
    def update_label(self):
        """Update the display label"""
        self.label = self.format_label(["country_code", "number"])

カスタムトランスフォーム

📄 ライセンス

このプロジェクトは Creative Commons Attribution-NonCommercial (CC BY-NC) ライセンスの下で提供されています。

あなたは自由に:

  • ✅ 共有: 素材をコピーおよび再配布
  • ✅ 改変: リミックス、変形、および素材を基にした作品の作成

以下の条件に従って:

  • ℹ️ 帰属: 適切なクレジットを表示する必要があります
  • 🚫 非営利: 営利目的での使用はできません
  • 🔓 追加の制限はありません

🙏 謝辞

このプロジェクトを可能にしてくれたすべてのライブラリ作成者と貢献者に感謝します。

👨‍💻 著者

ALW1EZ が AI ❤️ とともに作成

ツールをダウンロード

トランスフォームは、エンティティを処理して新しい洞察や関係を生成する操作です。カスタムトランスフォームを作成するには:

  1. transforms フォルダに新しいファイルを作成 (例: transforms/phone_lookup.py)
  2. トランスフォームクラスを実装:
root@kitploit:~
from dataclasses import dataclass
from typing import ClassVar, List
from .base import Transform
from entities.base import Entity
from entities.phone_number import PhoneNumber
from entities.location import Location
from ui.managers.status_manager import StatusManager

@dataclass
class PhoneLookup(Transform):
    name: ClassVar[str] = "Phone Number Lookup"
    description: ClassVar[str] = "Lookup phone number details and location"
    input_types: ClassVar[List[str]] = ["PhoneNumber"]
    output_types: ClassVar[List[str]] = ["Location"]
    
    async def run(self, entity: PhoneNumber, graph) -> List[Entity]:
        if not isinstance(entity, PhoneNumber):
            return []
            
        status = StatusManager.get()
        operation_id = status.start_loading("Phone Lookup")
        
        try:
            # Your phone number lookup logic here
            # Example: query an API for phone number details
            location = Location(properties={
                "country": "Example Country",
                "region": "Example Region",
                "carrier": "Example Carrier",
                "source": "PhoneLookup transform"
            })
            
            return [location]
            
        except Exception as e:
            status.set_text(f"Error during phone lookup: {str(e)}")
            return []
            
        finally:
            status.stop_loading(operation_id)

カスタムヘルパー

ヘルパーは、専用の UI インターフェースを通じて追加の調査機能を提供する特殊なツールです。カスタムヘルパーを作成するには:

  1. helpers フォルダに新しいファイルを作成 (例: helpers/data_analyzer.py)
  2. ヘルパークラスを実装:
root@kitploit:~
from PySide6.QtWidgets import (
    QWidget, QVBoxLayout, QHBoxLayout, QPushButton,
    QTextEdit, QLabel, QComboBox
)
from .base import BaseHelper
from qasync import asyncSlot

class DummyHelper(BaseHelper):
    """A dummy helper for testing"""
    
    name = "Dummy Helper" 
    description = "A dummy helper for testing"
    
    def setup_ui(self):
        """Initialize the helper's user interface"""
        # Create input text area
        self.input_label = QLabel("Input:")
        self.input_text = QTextEdit()
        self.input_text.setPlaceholderText("Enter text to process...")
        self.input_text.setMinimumHeight(100)
        
        # Create operation selector
        operation_layout = QHBoxLayout()
        self.operation_label = QLabel("Operation:")
        self.operation_combo = QComboBox()
        self.operation_combo.addItems(["Uppercase", "Lowercase", "Title Case"])
        operation_layout.addWidget(self.operation_label)
        operation_layout.addWidget(self.operation_combo)
        
        # Create process button
        self.process_btn = QPushButton("Process")
        self.process_btn.clicked.connect(self.process_text)
        
        # Create output text area
        self.output_label = QLabel("Output:")
        self.output_text = QTextEdit()
        self.output_text.setReadOnly(True)
        self.output_text.setMinimumHeight(100)
        
        # Add widgets to main layout
        self.main_layout.addWidget(self.input_label)
        self.main_layout.addWidget(self.input_text)
        self.main_layout.addLayout(operation_layout)
        self.main_layout.addWidget(self.process_btn)
        self.main_layout.addWidget(self.output_label)
        self.main_layout.addWidget(self.output_text)
        
        # Set dialog size
        self.resize(400, 500)
        
    @asyncSlot()
    async def process_text(self):
        """Process the input text based on selected operation"""
        text = self.input_text.toPlainText()
        operation = self.operation_combo.currentText()
        
        if operation == "Uppercase":
            result = text.upper()
        elif operation == "Lowercase":
            result = text.lower()
        else:  # Title Case
            result = text.title()
            
        self.output_text.setPlainText(result)