Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
PANO — Plataforma de investigación OSINT basada en grafos con análisis de línea de tiempo, gestión de entidades y transformaciones impulsadas por IA para descubrir conexiones ocultas entre correos electrónicos, nombres de usuario, imágenes y ubicaciones. | Kitploit
Herramientas/GitHubGitHub/alw1ez/pano
OSINT (Inteligencia de Fuentes Abiertas)ReconocimientoRecopilación de InformaciónSeguridad de IA
GitHubalw1ez/pano

PANO

Plataforma de investigación OSINT basada en grafos con análisis de línea de tiempo, gestión de entidades y transformaciones impulsadas por IA para descubrir conexiones ocultas entre correos electrónicos, nombres de usuario, imágenes y ubicaciones.

Ver Repositorio
5626853hace 6 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

PANO - Plataforma para Análisis y Operaciones de Red

PANO Logo

License: CC BY-NC Python 3.11+ PySide6 Platform

PANO es una potente plataforma de investigación OSINT que combina visualización de grafos, análisis de líneas de tiempo y herramientas impulsadas por IA para ayudarte a descubrir conexiones y patrones ocultos en tus datos.

Inicio Rápido • Características • Documentación • Contribuciones


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

🚀 Inicio Rápido

  1. Clona el repositorio:

    root@kitploit:~
    git clone https://github.com/ALW1EZ/PANO.git
    cd PANO
    
  2. Ejecuta la aplicación:

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

El script de inicio hará automáticamente:

  • Verificar actualizaciones
  • Configurar el entorno Python
  • Instalar dependencias
  • Lanzar PANO

Para usar la transformación de Búsqueda de Correo Electrónico, necesitas iniciar sesión con GHunt primero. Después de iniciar PANO mediante los scripts de inicio;

  1. Selecciona el entorno virtual manualmente
    • Linux: source venv/bin/activate
    • Windows: call venv\Scripts\activate
  2. Consulta cómo iniciar sesión aquí

💡 Guía de Inicio Rápido

  1. Crear Investigación: Inicia una nueva investigación o carga una existente
  2. Agregar Entidades: Arrastra entidades desde la barra lateral al grafo
  3. Descubrir Conexiones: Usa transformaciones para encontrar relaciones automáticamente
  4. Analizar: Usa las vistas de línea de tiempo y mapa para entender patrones
  5. Guardar: Exporta tu investigación para usarla más tarde

🔍 Características

🕸️ Funcionalidad Principal

  • Visualización de Grafos Interactiva

    • Creación de entidades mediante arrastrar y soltar
    • Múltiples algoritmos de diseño (Circular, Jerárquico, Radial, Dirigido por Fuerza)
    • Mapeo dinámico de relaciones
    • Estilo visual de nodos y aristas
  • Análisis de Línea de Tiempo

    • Visualización cronológica de eventos
    • Navegación interactiva en la línea de tiempo
    • Filtrado y agrupación de eventos
    • Análisis de relaciones temporales
  • Integración de Mapas

    • Visualización de datos geográficos
    • Análisis basado en ubicaciones
    • Funciones de mapeo interactivo
    • Trazado y seguimiento de coordenadas

🎯 Gestión de Entidades

  • Tipos de Entidad Soportados
    • 📧 Direcciones de correo electrónico
    • 👤 Nombres de usuario
    • 🌐 Sitios web
    • 🖼️ Imágenes
    • 📍 Ubicaciones
    • ⏰ Eventos
    • 📝 Contenido de texto
    • 🔧 Tipos de entidad personalizados

🔄 Sistema de Transformaciones

  • Análisis de Correo Electrónico

    • Investigación de cuentas de Google
    • Extracción de eventos del calendario
    • Análisis del historial de ubicaciones
    • Descubrimiento de servicios conectados
  • Análisis de Nombres de Usuario

    • Búsqueda multiplataforma de nombres de usuario
    • Descubrimiento de perfiles en redes sociales
    • Correlación entre plataformas
    • Análisis de presencia web
  • Análisis de Imágenes

    • Búsqueda inversa de imágenes
    • Análisis de contenido visual
    • Extracción de metadatos
    • Descubrimiento de imágenes relacionadas

🤖 Integración de IA

  • PANAI
    • Asistente de investigación en lenguaje natural
    • Extracción automática de entidades y mapeo de relaciones
    • Reconocimiento de patrones y detección de anomalías
    • Soporte multilingüe
    • Sugerencias sensibles al contexto
    • Análisis de línea de tiempo y grafos

🧩 Componentes Principales

📦 Entidades

Las entidades son los componentes fundamentales de PANO. Representan piezas distintas de información que pueden ser conectadas y analizadas:

  • Tipos Incorporados

    • 📧 Correo electrónico: Direcciones de correo con detección de servicio
    • 👤 Usuario: Nombres de usuario en redes sociales y plataformas
    • 🌐 Sitio web: Páginas web con metadatos
    • 🖼️ Imagen: Imágenes con EXIF y análisis
    • 📍 Ubicación: Coordenadas geográficas y direcciones
    • ⏰ Evento: Ocurrencias basadas en tiempo
    • 📝 Texto: Contenido textual genérico
  • Sistema de Propiedades

    • Validación de propiedades con tipo seguro
    • Obtenedores automáticos de propiedades
    • Actualizaciones dinámicas de propiedades
    • Tipos de propiedades personalizadas
    • Soporte de metadatos

⚡ Transformaciones

Las transformaciones son operaciones automatizadas que procesan entidades para descubrir nueva información y relaciones:

  • Tipos de Operación

    • 🔍 Descubrimiento: Encontrar nuevas entidades a partir de existentes
    • 🔗 Correlación: Conectar entidades relacionadas
    • 📊 Análisis: Extraer información de los datos de entidades
    • 🌐 OSINT: Recopilar inteligencia de fuentes abiertas
    • 🔄 Enriquecimiento: Agregar datos a entidades existentes
  • Características

    • Soporte de operaciones asíncronas
    • Seguimiento de progreso
    • Manejo de errores
    • Limitación de velocidad
    • Validación de resultados

🛠️ Ayudantes

Los ayudantes son herramientas especializadas con interfaces de usuario dedicadas para tareas de investigación específicas:

  • Ayudantes Disponibles

    • 🔍 Interrogatorio Cruzado: Analizar declaraciones y testimonios
    • 👤 Creador de Retratos: Generar composites faciales
    • 📸 Analizador de Medios: Procesamiento y análisis avanzado de imágenes
    • 🔍 Buscador de Base: Buscar cerca de lugares de interés
    • 🔄 Traductor: Traducir texto entre idiomas
  • Características de los Ayudantes

    • Interfaces Qt personalizadas
    • Actualizaciones en tiempo real
    • Integración con el grafo
    • Visualización de datos
    • Capacidades de exportación

👥 Contribuciones

¡Aceptamos contribuciones! Para contribuir a PANO:

  1. Haz un fork del repositorio en https://github.com/ALW1EZ/PANO/
  2. Realiza tus cambios en tu fork
  3. Prueba tus cambios a fondo
  4. Crea un Pull Request a nuestra rama principal
  5. En la descripción de tu PR, incluye:
    • Qué hacen los cambios
    • Por qué realizaste estos cambios
    • Cualquier prueba que hayas realizado
    • Capturas de pantalla si corresponde

Nota: Usamos una única rama main para el desarrollo. Todos los pull requests deben hacerse directamente a main.

📖 Guía de Desarrollo

Haz clic para expandir la documentación de desarrollo

Requisitos del Sistema

  • Sistema Operativo: Windows o Linux
  • Python 3.11+
  • PySide6 para la interfaz gráfica
  • Conexión a Internet para funciones en línea

Entidades Personalizadas

Las entidades son las estructuras de datos centrales en PANO. Cada entidad representa una pieza de información con propiedades y comportamientos específicos. Para crear una entidad personalizada:

  1. Crea un nuevo archivo en la carpeta entities (por ejemplo, entities/phone_number.py)
  2. Implementa tu clase de entidad:
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"])

📄 Licencia

Este proyecto está licenciado bajo la Licencia Creative Commons Atribución-NoComercial (CC BY-NC).

Eres libre de:

  • ✅ Compartir: Copiar y redistribuir el material
  • ✅ Adaptar: Mezclar, transformar y construir sobre el material

Bajo los siguientes términos:

  • ℹ️ Atribución: Debes dar el crédito apropiado
  • 🚫 NoComercial: No se permite el uso comercial
  • 🔓 Sin restricciones adicionales

🙏 Agradecimientos

Un agradecimiento especial a todos los autores de bibliotecas y colaboradores que hicieron posible este proyecto.

👨‍💻 Autor

Creado por ALW1EZ con IA ❤️

Descargar herramienta

Transformaciones Personalizadas

Las transformaciones son operaciones que procesan entidades y generan nuevos conocimientos o relaciones. Para crear una transformación personalizada:

  1. Crea un nuevo archivo en la carpeta transforms (por ejemplo, transforms/phone_lookup.py)
  2. Implementa tu clase de transformación:
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)

Ayudantes Personalizados

Los ayudantes son herramientas especializadas que proporcionan capacidades de investigación adicionales a través de una interfaz de usuario dedicada. Para crear un ayudante personalizado:

  1. Crea un nuevo archivo en la carpeta helpers (por ejemplo, helpers/data_analyzer.py)
  2. Implementa tu clase de ayudante:
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)