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

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

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

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

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

Категории

Все категории
Loading categories
PacketPirate — Безголовый, скриптуемый MITM-прокси на основе командной строки, предназначенный для перехвата, анализа и модификации сетевого трафика в Windows-системах. | Kitploit
Инструменты/GitHubGitHub/d0rb/packetpirate
Сниффинг и анализ пакетовВеб-прокси и перехватСкриптинг и автоматизацияТестирование безопасности APIСбор информацииВеб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеАнализ Журналов
GitHubd0rb/packetpirate

PacketPirate

Безголовый, скриптуемый MITM-прокси на основе командной строки, предназначенный для перехвата, анализа и модификации сетевого трафика в Windows-системах.

8 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

PacketPirate

PacketPirate

Безголовый, скриптуемый MITM-прокси с интерфейсом командной строки, предназначенный для перехвата, анализа и модификации сетевого трафика в системах Windows. Он работает аналогично стандартным GUI-прокси, но оптимизирован для сред автоматизации, работы без графического интерфейса и интеграции с процессами разработки.

Примечание: Это автономный инструмент без зависимостей, реализованный на Node.js.

Обзор

  • PacketPirate — это инструмент перехвата сетевого трафика в масштабе всей системы. Используя настройки HTTP-прокси Windows, он может перехватывать трафик любого приложения, запущенного на вашем компьютере — включая веб-браузеры (Chrome, Edge), CLI-инструменты (curl, git) и настольные приложения (Spotify, VS Code, Discord).

  • Глобальный перехват на уровне системы: перехватывает HTTP/HTTPS-трафик любого процесса, использующего системный прокси.

  • Привязка к процессам: позволяет точно определить, какое приложение генерирует трафик.

  • Динамический движок правил: настраивается через JSON для выполнения конкретных действий с соответствующим трафиком (например, извлечение токенов, журналирование запросов).

  • Полное журналирование трафика: способен сохранять полные тела запросов и ответов (HTML, JSON, бинарные данные) для анализа.

  • Архитектура без графического интерфейса: полностью работает из CLI, подходит для фоновых служб и конвейеров автоматизированного тестирования.

  • Управление пользовательскими сертификатами: включает утилиты для генерации самозаверяющих корневых CA и добавления их в доверенные для расшифровки HTTPS.

Установка

Предварительные требования

  • Node.js (v14 или выше)
  • Windows 10/11 (требуется для функций автоматизации системного прокси)
  • PowerShell (для скриптов управления сертификатами)

Настройка

Клонируйте репозиторий и инициализируйте окружение:

root@kitploit:~
# 1. Generate local SSL certificates
npm run setup

# 2. Trust the generated Root CA
npm run trust
# Note: Requires administrative approval to add the certificate to the Trusted Root Store.

Использование

Запустите прокси-сервер:

root@kitploit:~
npm start

Это запускает стандартный CLI-интерфейс.

Работа с CLI

Интерактивное меню предоставляет следующие элементы управления:

  1. Сканирование процессов: выводит список активных процессов с установленными сетевыми соединениями. Позволяет фильтровать трафик по конкретному PID (например, отслеживать только code.exe).
  2. Переключение фильтров: включает/отключает конкретные подсистемы мониторинга:
    • Сканирование URL API: журналирует запрашиваемые конечные точки API.
    • Дамп заголовков: выводит полные заголовки запросов в консоль.
    • Поиск токенов: эвристическое обнаружение Bearer-токенов в заголовках Authorization.
    • Полный дамп трафика: сохраняет весь трафик (заголовки + полные тела) в структурированные jsonl-файлы журналов.
  3. Запуск прокси: привязывает сервер к первому доступному порту (по умолчанию 8080) и настраивает системный прокси Windows.
  4. Генерация правил: помощник для быстрого создания новых шаблонов перехвата.

Конфигурация

Логика перехвата определяется в config/rules.json. Этот файл позволяет сохранять настройки обработки трафика.

Схема:

root@kitploit:~
{
  "rules": [
    {
      "name": "Description of rule",
      "host": "hostname.match",
      "urlPattern": "regex_pattern",
      "action": "log | save_token",
      "outputFile": "path/to/output.txt",
      "tokenFilter": "regex_filter"
    }
  ]
}

Пример:

root@kitploit:~
{
    "rules": [
        {
            "name": "Test API",
            "host": "jsonplaceholder.typicode.com",
            "action": "save_token",
            "outputFile": "test_tokens.txt"
        }
    ]
}

Технические детали

Архитектура

Инструмент использует архитектуру с двумя серверами:

  1. Прокси-сервер: обрабатывает исходный запрос туннелирования CONNECT и выполняет фильтрацию хостов.
  2. MITM-сервер: расшифровывает HTTPS-трафик с помощью динамически генерируемого CA, проверяет полезную нагрузку через движок правил и пересылает запрос вышестоящему серверу.

Работа с сетью

  • Управление портами: автоматически обнаруживает ошибки EADDRINUSE и увеличивает номер порта, пока не найдёт свободный порт.
  • Системный прокси: использует прямое изменение реестра через PowerShell для применения настроек прокси на уровне всей системы.
  • Очистка: реализует обработчики SIGINT/SIGTERM для гарантированного отката настроек прокси при выходе, предотвращая проблемы с сетевым подключением.

Жизненный цикл сертификатов и безопасность

Инструмент использует модель с двумя сертификатами для перехвата HTTPS:

  1. Генерация корневого CA: npm run setup создает самозаверяющий корневой CA (PacketPirateRoot).
    • Логика: использует New-SelfSignedCertificate из PowerShell для генерации пары ключей сроком действия 5 лет.
    • Экспорт: ключ экспортируется в src/certs/server.pfx (формат PKCS#12) с паролем "headless".
  2. Установка доверия: npm run trust внедряет этот корневой CA в хранилище Windows CurrentUser\Root.
    • Область безопасности: нацеливаясь на CurrentUser, а не на LocalMachine, мы ограничиваем радиус доверия вашим профилем пользователя, снижая общесистемный риск.
    • Принятие браузерами: Chrome, Edge и IE наследуют это хранилище доверия. Для Firefox требуется отдельный переключатель (security.enterprise_roots.enabled), чтобы он учитывал хранилище доверия Windows.
  3. Удаление: npm run untrust обеспечивает корректное удаление.

🎓 Обучающий раздел: как мы это создали

Этот проект — практический пример системного программирования с использованием Node.js. Он выходит за рамки типичных веб-серверов и взаимодействует с операционной системой и сетевым стеком на более низком уровне.

Архитектура

root@kitploit:~
participant App as Application (VS Code)
participant OS as Windows OS
participant Proxy as Proxy Server
participant MITM as MITM Server
participant Web as Internet

Note over App,Proxy: 1. Plain HTTP Tunneling
App->>Proxy: CONNECT google.com:443
Proxy-->>App: 200 Connection Established

Note over Proxy,MITM: 2. The "Hand-Off" Trick
Proxy->>MITM: Pipe socket data (raw encrypted bytes)

Note over App,MITM: 3. TLS Handshake and Decryption
MITM-->>App: ServerHello (signed by local root CA)
App->>MITM: Encrypted request (GET /)

Note over MITM: 4. Interception Logic
MITM->>MITM: Decrypt → Inspect headers → Log

Note over MITM,Web: 5. Upstream Forwarding
MITM->>Web: New HTTPS request (GET /)
Web-->>MITM: Response
MITM-->>App: Response

Основные концепции

PacketPirate

1. Паттерн «двойной сервер»

Стандартный модуль http в Node.js не может легко обрабатывать метод CONNECT (используемый для HTTPS-туннелей) и обычный HTTPS-трафик на одном экземпляре сервера.

  • Сервер A (Net/HTTP): слушает порт 8080. Обрабатывает исходный запрос CONNECT. Выступает в роли простого TCP-канала.
  • Сервер B (HTTPS): существует только в памяти (или на случайном порту). Хранит закрытый ключ.
  • Трюк: когда сервер A получает соединение, он «передаёт» сокет серверу B. Сервер B считает, что получил новое соединение, и начинает SSL-рукопожатие. Это позволяет нам незаметно расшифровывать трафик.

2. Атрибуция процессов (трюк с netstat)

Откуда мы знаем, какое приложение отправляет трафик? Сами TCP-пакеты не содержат «наклейки» с идентификатором процесса.

  • Эфемерные порты: каждое исходящее соединение использует случайный порт с большим номером (например, 54321).
  • Сопоставление: мы вызываем netstat -ano, чтобы узнать, какому PID принадлежит порт 54321.
  • Оптимизация: делать это для каждого пакета медленно, поэтому мы кэшируем результаты или проверяем только при необходимости.

3. Разветвление потоков

Мы используем потоки Node.js для эффективной обработки данных. Вместо того чтобы ждать полной загрузки ответа размером 10 МБ перед его отображением, мы «разветвляем» поток:

  • Канал 1: идёт клиенту (чтобы приложение продолжало работать).
  • Канал 2: идёт в наш регистратор (чтобы мы могли сохранить его на диск). Это реализовано с помощью потоков PassThrough, что позволяет вести мониторинг в реальном времени с минимальной дополнительной задержкой.

Лицензия

GNU GPL v3.0

Скачать инструмент
  • Идентификация: скрипты находят сертификат по уникальному FriendlyName ("PacketPirateRoot"), что гарантирует, что мы никогда не затрагиваем другие сертификаты пользователя.
  • Проверка: после удаления выполняется проверка, чтобы подтвердить, что отпечаток сертификата больше не присутствует в реестре.