Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PANO — Plateforme d'enquête OSINT basée sur des graphes avec analyse chronologique, gestion d'entités et transformations basées sur l'IA pour découvrir des connexions cachées entre e-mails, noms d'utilisateur, images et lieux. | Kitploit
Outils/GitHubGitHub/alw1ez/pano
OSINT (Renseignement de Sources Ouvertes)ReconnaissanceCollecte d'InformationsSécurité de l'IA
GitHubalw1ez/pano

PANO

Plateforme d'enquête OSINT basée sur des graphes avec analyse chronologique, gestion d'entités et transformations basées sur l'IA pour découvrir des connexions cachées entre e-mails, noms d'utilisateur, images et lieux.

Voir le dépôt
5626832il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

PANO - Plateforme d'Analyse et d'Opérations Réseau

Logo PANO

License: CC BY-NC Python 3.11+ PySide6 Platform

PANO est une puissante plateforme d'investigation OSINT qui combine la visualisation de graphes, l'analyse chronologique et des outils alimentés par l'IA pour vous aider à découvrir des connexions et des motifs cachés dans vos données.

Démarrage • Fonctionnalités • Documentation • Contribuer


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

🚀 Démarrage

  1. Clonez le dépôt :

    root@kitploit:~
    git clone https://github.com/ALW1EZ/PANO.git
    cd PANO
    
  2. Lancez l'application :

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

Le script de démarrage va automatiquement :

  • Vérifier les mises à jour
  • Configurer l'environnement Python
  • Installer les dépendances
  • Lancer PANO

Pour utiliser la transformation Email Lookup, vous devez d'abord vous connecter avec GHunt. Après avoir lancé PANO via les scripts de démarrage ;

  1. Sélectionnez manuellement l'environnement virtuel
    • Linux : source venv/bin/activate
    • Windows : call venv\Scripts\activate
  2. Voir comment se connecter ici

💡 Guide de démarrage rapide

  1. Créer une investigation : Lancez une nouvelle investigation ou chargez-en une existante
  2. Ajouter des entités : Faites glisser des entités depuis la barre latérale vers le graphe
  3. Découvrir des connexions : Utilisez les transformations pour trouver automatiquement des relations
  4. Analyser : Utilisez les vues chronologique et cartographique pour comprendre les motifs
  5. Sauvegarder : Exportez votre investigation pour une utilisation ultérieure

🔍 Fonctionnalités

🕸️ Fonctionnalités principales

  • Visualisation interactive de graphes

    • Création d'entités par glisser-déposer
    • Multiples algorithmes de disposition (Circulaire, Hiérarchique, Radial, Force-Directed)
    • Cartographie dynamique des relations
    • Styles visuels pour nœuds et arêtes
  • Analyse chronologique

    • Visualisation chronologique des événements
    • Navigation interactive dans le temps
    • Filtrage et regroupement des événements
    • Analyse des relations temporelles
  • Intégration cartographique

    • Visualisation des données géographiques
    • Analyse basée sur la localisation
    • Fonctionnalités cartographiques interactives
    • Traçage et suivi de coordonnées

🎯 Gestion des entités

  • Types d'entités pris en charge
    • 📧 Adresses email
    • 👤 Noms d'utilisateur
    • 🌐 Sites web
    • 🖼️ Images
    • 📍 Localisations
    • ⏰ Événements
    • 📝 Contenu textuel
    • 🔧 Types d'entités personnalisés

🔄 Système de transformations

  • Analyse d'email

    • Investigation de compte Google
    • Extraction d'événements de calendrier
    • Analyse de l'historique de localisation
    • Découverte de services connectés
  • Analyse de nom d'utilisateur

    • Recherche multiplateforme de noms d'utilisateur
    • Découverte de profils sur les réseaux sociaux
    • Corrélation entre plateformes
    • Analyse de présence web
  • Analyse d'image

    • Recherche inversée d'images
    • Analyse de contenu visuel
    • Extraction de métadonnées
    • Découverte d'images connexes

🤖 Intégration IA

  • PANAI
    • Assistant d'investigation en langage naturel
    • Extraction automatisée d'entités et cartographie des relations
    • Reconnaissance de motifs et détection d'anomalies
    • Support multilingue
    • Suggestions contextuelles
    • Analyse chronologique et de graphe

🧩 Composants principaux

📦 Entités

Les entités sont les éléments de base de PANO. Elles représentent des informations distinctes qui peuvent être connectées et analysées :

  • Types intégrés

    • 📧 Email : Adresses email avec détection de service
    • 👤 Nom d'utilisateur : Noms d'utilisateur sur les réseaux sociaux et plateformes
    • 🌐 Site web : Pages web avec métadonnées
    • 🖼️ Image : Images avec EXIF et analyse
    • 📍 Localisation : Coordonnées géographiques et adresses
    • ⏰ Événement : Occurrences temporelles
    • 📝 Texte : Contenu textuel générique
  • Système de propriétés

    • Validation de propriétés typée
    • Accesseurs automatiques de propriétés
    • Mises à jour dynamiques de propriétés
    • Types de propriétés personnalisées
    • Support des métadonnées

⚡ Transformations

Les transformations sont des opérations automatisées qui traitent les entités pour découvrir de nouvelles informations et relations :

  • Types d'opérations

    • 🔍 Découverte : Trouver de nouvelles entités à partir d'entités existantes
    • 🔗 Corrélation : Connecter des entités apparentées
    • 📊 Analyse : Extraire des informations des données d'entités
    • 🌐 OSINT : Récupérer des renseignements en sources ouvertes
    • 🔄 Enrichissement : Ajouter des données aux entités existantes
  • Fonctionnalités

    • Support des opérations asynchrones
    • Suivi de la progression
    • Gestion des erreurs
    • Limitation de débit
    • Validation des résultats

🛠️ Aides

Les aides sont des outils spécialisés avec des interfaces utilisateur dédiées pour des tâches d'investigation spécifiques :

  • Aides disponibles

    • 🔍 Contre-examen : Analyser des déclarations et témoignages
    • 👤 Création de portrait : Générer des composites faciaux
    • 📸 Analyseur multimédia : Traitement et analyse avancés d'images
    • 🔍 Recherche de base : Chercher près de lieux d'intérêt
    • 🔄 Traducteur : Traduire du texte entre langues
  • Fonctionnalités des aides

    • Interfaces Qt personnalisées
    • Mises à jour en temps réel
    • Intégration avec le graphe
    • Visualisation de données
    • Capacités d'exportation

👥 Contribuer

Nous accueillons les contributions ! Pour contribuer à PANO :

  1. Forkez le dépôt sur https://github.com/ALW1EZ/PANO/
  2. Effectuez vos modifications dans votre fork
  3. Testez minutieusement vos modifications
  4. Créez une Pull Request vers notre branche main
  5. Dans la description de votre PR, incluez :
    • Ce que font les modifications
    • Pourquoi vous avez effectué ces modifications
    • Les tests que vous avez réalisés
    • Des captures d'écran si applicable

Note : Nous utilisons une seule branche main pour le développement. Toutes les pull requests doivent être faites directement sur main.

📖 Guide de développement

Cliquez pour développer la documentation de développement

Configuration système requise

  • Système d'exploitation : Windows ou Linux
  • Python 3.11+
  • PySide6 pour l'interface graphique
  • Connexion Internet pour les fonctionnalités en ligne

Entités personnalisées

Les entités sont les structures de données fondamentales dans PANO. Chaque entité représente une information avec des propriétés et comportements spécifiques. Pour créer une entité personnalisée :

  1. Créez un nouveau fichier dans le dossier entities (par exemple, entities/phone_number.py)
  2. Implémentez votre classe d'entité :
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"])

📄 Licence

Ce projet est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale (CC BY-NC).

Vous êtes libre de :

  • ✅ Partager : Copier et redistribuer le matériel
  • ✅ Adapter : Remixer, transformer et construire à partir du matériel

Selon les conditions suivantes :

  • ℹ️ Attribution : Vous devez créditer l'œuvre de manière appropriée
  • 🚫 Pas d'Utilisation Commerciale : Aucune utilisation commerciale
  • 🔓 Aucune restriction supplémentaire

🙏 Remerciements

Remerciements particuliers à tous les auteurs de bibliothèques et contributeurs qui ont rendu ce projet possible.

👨‍💻 Auteur

Créé par ALW1EZ avec IA ❤️

Télécharger l’outil

Transformations personnalisées

Les transformations sont des opérations qui traitent les entités et génèrent de nouvelles informations ou relations. Pour créer une transformation personnalisée :

  1. Créez un nouveau fichier dans le dossier transforms (par exemple, transforms/phone_lookup.py)
  2. Implémentez votre classe de transformation :
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)

Aides personnalisées

Les aides sont des outils spécialisés qui offrent des capacités d'investigation supplémentaires via une interface utilisateur dédiée. Pour créer une aide personnalisée :

  1. Créez un nouveau fichier dans le dossier helpers (par exemple, helpers/data_analyzer.py)
  2. Implémentez votre classe d'aide :
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)