Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
PANO — Платформа OSINT-расследований на основе графов с анализом временной шкалы, управлением сущностями и преобразованиями на базе ИИ для выявления скрытых связей между электронными письмами, именами пользователей, изображениями и местоположениями. | Kitploit
Инструменты/GitHubGitHub/alw1ez/pano
OSINT (Разведка открытых источников)РазведкаСбор информацииБезопасность ИИ
GitHubalw1ez/pano

PANO

Платформа OSINT-расследований на основе графов с анализом временной шкалы, управлением сущностями и преобразованиями на базе ИИ для выявления скрытых связей между электронными письмами, именами пользователей, изображениями и местоположениями.

Репозиторий
56268536 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

PANO - Платформа для анализа и сетевых операций

PANO Logo

License: CC BY-NC Python 3.11+ PySide6 Platform

PANO — это мощная 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, необходимо сначала войти в GHunt. После запуска PANO через стартовые сценарии:

  1. Выберите виртуальное окружение вручную
    • Linux: source venv/bin/activate
    • Windows: call venv\Scripts\activate
  2. Инструкции по входу здесь

💡 Краткое руководство

  1. Создайте расследование: Начните новое расследование или загрузите существующее
  2. Добавьте сущности: Перетащите сущности с боковой панели на граф
  3. Обнаружьте связи: Используйте трансформации для автоматического поиска взаимосвязей
  4. Анализируйте: Используйте временную шкалу и карту для понимания закономерностей
  5. Сохраните: Экспортируйте расследование для дальнейшего использования

🔍 Возможности

🕸️ Основная функциональность

  • Интерактивная визуализация графов

    • Создание сущностей перетаскиванием
    • Несколько алгоритмов компоновки (Круговой, Иерархический, Радиальный, Силовой)
    • Динамическое отображение связей
    • Визуальная настройка узлов и рёбер
  • Анализ временных шкал

    • Визуализация событий в хронологическом порядке
    • Интерактивная навигация по временной шкале
    • Фильтрация и группировка событий
    • Анализ временных взаимосвязей
  • Интеграция карт

    • Визуализация географических данных
    • Анализ на основе местоположения
    • Интерактивные картографические функции
    • Построение и отслеживание координат

🎯 Управление сущностями

  • Поддерживаемые типы сущностей
    • 📧 Адреса электронной почты
    • 👤 Имена пользователей
    • 🌐 Веб-сайты
    • 🖼️ Изображения
    • 📍 Местоположения
    • ⏰ События
    • 📝 Текстовое содержимое
    • 🔧 Пользовательские типы сущностей

🔄 Система трансформаций

  • Анализ электронной почты

    • Исследование учётных записей Google
    • Извлечение событий календаря
    • Анализ истории местоположений
    • Обнаружение подключённых сервисов
  • Анализ имён пользователей

    • Кроссплатформенный поиск имени пользователя
    • Обнаружение профилей в социальных сетях
    • Корреляция платформ
    • Анализ присутствия в сети
  • Анализ изображений

    • Обратный поиск изображений
    • Анализ визуального содержимого
    • Извлечение метаданных
    • Обнаружение связанных изображений

🤖 Интеграция ИИ

  • PANAI
    • Ассистент расследований на естественном языке
    • Автоматическое извлечение сущностей и построение связей
    • Распознавание образов и обнаружение аномалий
    • Многоязычная поддержка
    • Контекстные подсказки
    • Анализ временных шкал и графов

🧩 Основные компоненты

📦 Сущности

Сущности — это фундаментальные строительные блоки PANO. Они представляют собой отдельные фрагменты информации, которые можно связывать и анализировать:

  • Встроенные типы

    • 📧 Email: Адреса электронной почты с определением сервиса
    • 👤 Username: Имена пользователей в соцсетях и на платформах
    • 🌐 Website: Веб-страницы с метаданными
    • 🖼️ Image: Изображения с EXIF и анализом
    • 📍 Location: Географические координаты и адреса
    • ⏰ Event: События, привязанные ко времени
    • 📝 Text: Общее текстовое содержимое
  • Система свойств

    • Типобезопасная валидация свойств
    • Автоматические геттеры свойств
    • Динамическое обновление свойств
    • Пользовательские типы свойств
    • Поддержка метаданных

⚡ Трансформации

Трансформации — это автоматизированные операции, которые обрабатывают сущности для обнаружения новой информации и взаимосвязей:

  • Типы операций

    • 🔍 Поиск: Найдите новые сущности на основе существующих
    • 🔗 Корреляция: Свяжите связанные сущности
    • 📊 Анализ: Извлеките инсайты из данных сущностей
    • 🌐 OSINT: Соберите информацию из открытых источников
    • 🔄 Обогащение: Добавьте данные к существующим сущностям
  • Возможности

    • Поддержка асинхронных операций
    • Отслеживание прогресса
    • Обработка ошибок
    • Ограничение частоты запросов
    • Валидация результатов

🛠️ Помощники

Помощники — это специализированные инструменты с собственными интерфейсами для конкретных задач расследования:

  • Доступные помощники

    • 🔍 Перекрёстный допрос: Анализ утверждений и показаний
    • 👤 Создание портрета: Генерация фотороботов
    • 📸 Анализатор медиа: Продвинутая обработка и анализ изображений
    • 🔍 Поиск по базе: Поиск рядом с интересующими местами
    • 🔄 Переводчик: Перевод текста между языками
  • Возможности помощников

    • Пользовательские интерфейсы Qt
    • Обновления в реальном времени
    • Интеграция с графом
    • Визуализация данных
    • Возможность экспорта

👥 Участие

Мы приветствуем contributions! Чтобы внести вклад в PANO:

  1. Сделайте форк репозитория по адресу https://github.com/ALW1EZ/PANO/
  2. Внесите изменения в свой форк
  3. Тщательно протестируйте изменения
  4. Создайте Pull Request в нашу основную ветку
  5. В описании PR укажите:
    • Что делают изменения
    • Почему вы внесли эти изменения
    • Какое тестирование вы провели
    • Скриншоты, если применимо

Примечание: Мы используем единственную ветку main для разработки. Все pull request'ы должны направляться непосредственно в main.

📖 Руководство по разработке

Нажмите, чтобы развернуть документацию по разработке

Системные требования

  • Операционная система: Windows или Linux
  • Python 3.11+
  • PySide6 для GUI
  • Подключение к интернету для онлайн-функций

Пользовательские сущности

Сущности — это основные структуры данных в 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] = "Номер телефона"
    description: ClassVar[str] = "Сущность номера телефона с кодом страны и валидацией"
    
    def init_properties(self):
        """Инициализация свойств номера телефона"""
        self.setup_properties({
            "number": str,
            "country_code": str,
            "carrier": str,
            "type": str,  # mobile, landline, etc.
            "verified": bool
        })
    
    def update_label(self):
        """Обновление отображаемой метки"""
        self.label = self.format_label(["country_code", "number"])

📄 Лицензия

Этот проект лицензирован под Creative Commons Attribution-NonCommercial (CC BY-NC).

Вы можете:

  • ✅ Делиться: Копировать и распространять материал
  • ✅ Адаптировать: Изменять, преобразовывать и создавать на основе материала

При соблюдении следующих условий:

  • ℹ️ Атрибуция: Вы должны указать соответствующее авторство
  • 🚫 Некоммерческое использование: Запрещено коммерческое использование
  • 🔓 Без дополнительных ограничений

🙏 Благодарности

Особая благодарность всем авторам библиотек и участникам, сделавшим этот проект возможным.

👨‍💻 Автор

Создано ALW1EZ с ❤️ от ИИ

Скачать инструмент

Пользовательские трансформации

Трансформации — это операции, которые обрабатывают сущности и генерируют новые инсайты или связи. Чтобы создать пользовательскую трансформацию:

  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] = "Поиск номера телефона"
    description: ClassVar[str] = "Поиск деталей и местоположения номера телефона"
    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("Поиск телефона")
        
        try:
            # Здесь ваша логика поиска номера телефона
            # Пример: запрос к API для получения деталей номера
            location = Location(properties={
                "country": "Пример страны",
                "region": "Пример региона",
                "carrier": "Пример оператора",
                "source": "Трансформация PhoneLookup"
            })
            
            return [location]
            
        except Exception as e:
            status.set_text(f"Ошибка при поиске телефона: {str(e)}")
            return []
            
        finally:
            status.stop_loading(operation_id)

Пользовательские помощники

Помощники — это специализированные инструменты, предоставляющие дополнительные возможности расследования через собственный интерфейс. Чтобы создать пользовательского помощника:

  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):
    """Тестовый помощник"""
    
    name = "Тестовый помощник" 
    description = "Тестовый помощник"
    
    def setup_ui(self):
        """Инициализация пользовательского интерфейса помощника"""
        # Создание области ввода текста
        self.input_label = QLabel("Ввод:")
        self.input_text = QTextEdit()
        self.input_text.setPlaceholderText("Введите текст для обработки...")
        self.input_text.setMinimumHeight(100)
        
        # Создание селектора операции
        operation_layout = QHBoxLayout()
        self.operation_label = QLabel("Операция:")
        self.operation_combo = QComboBox()
        self.operation_combo.addItems(["Верхний регистр", "Нижний регистр", "С заглавной буквы"])
        operation_layout.addWidget(self.operation_label)
        operation_layout.addWidget(self.operation_combo)
        
        # Создание кнопки обработки
        self.process_btn = QPushButton("Обработать")
        self.process_btn.clicked.connect(self.process_text)
        
        # Создание области вывода текста
        self.output_label = QLabel("Вывод:")
        self.output_text = QTextEdit()
        self.output_text.setReadOnly(True)
        self.output_text.setMinimumHeight(100)
        
        # Добавление виджетов в основной макет
        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)
        
        # Установка размера диалога
        self.resize(400, 500)
        
    @asyncSlot()
    async def process_text(self):
        """Обработка введённого текста в зависимости от выбранной операции"""
        text = self.input_text.toPlainText()
        operation = self.operation_combo.currentText()
        
        if operation == "Верхний регистр":
            result = text.upper()
        elif operation == "Нижний регистр":
            result = text.lower()
        else:  # С заглавной буквы
            result = text.title()
            
        self.output_text.setPlainText(result)