mirror of
https://github.com/Av0idD4rk/packmate.git
synced 2026-10-23 14:31:01 +00:00
80 lines
4.7 KiB
Markdown
80 lines
4.7 KiB
Markdown
<div align="center">
|
||
|
||
# Packmate
|
||
</div>
|
||
|
||
### [[EN](README_EN.md) | RU]
|
||
Утилита перехвата и анализа трафика для CTF.
|
||
|
||
#### Фичи:
|
||
* Поддерживает перехват живого трафика и обработку pcap файлов
|
||
* Поддерживает текстовые и бинарные сервисы
|
||
* Умеет отображать совпадения паттернов в пакетах цветом
|
||
* Подстрока
|
||
* Регулярное выражение
|
||
* Бинарная подстрока
|
||
* Показывает IPv4/IPv6 адреса отправителя и получателя для каждого пакета
|
||
* Умеет автоматически удалять стримы с определенным контентом, которые не нужно отображать
|
||
* Умеет сохранять стримы в избранное и отображать только избранные стримы
|
||
* Работает с несколькими сервисами на разных портах, может отображать стримы для конкретных сервисов и паттернов
|
||
* Поддерживает навигацию по стримам с помощью горячих клавиш
|
||
* Позволяет копировать содержимое пакета в нужном формате
|
||
* Конкатенирует смежные пакеты
|
||
* Автоматически проводит urldecode
|
||
* Разархивирует GZIP в HTTP на лету
|
||
* Разархивирует сжатые WebSockets
|
||
* Расшифровывает TLS на RSA при наличии приватного ключа
|
||
|
||

|
||
|
||
## Изменения этого форка
|
||
|
||
IP-адреса сохраняются вместе с пакетами, возвращаются API и отображаются в
|
||
карточке как `source → destination`.
|
||
|
||
Старые записи не содержат IP-адресов, поскольку исходная версия их не сохраняла.
|
||
Для восстановления адресов нужно повторно импортировать исходный PCAP.
|
||
Подробности и описание API находятся в
|
||
[docs/IP_ADDRESSES.md](docs/IP_ADDRESSES.md).
|
||
|
||
В [docs/ARCHITECTURE_REVIEW_RU.md](docs/ARCHITECTURE_REVIEW_RU.md) находится
|
||
ревью готовности к крупным Attack/Defense соревнованиям. Проверочный скрипт для
|
||
неограниченной распаковки GZIP HTTP находится в
|
||
[poc/http_gzip_expansion.py](poc/http_gzip_expansion.py).
|
||
|
||
Для `LIVE` режима добавлена возобновляемая очистка старого трафика с настраиваемым retention,
|
||
ограниченными транзакциями и отдельным stress test. Настройки и результаты проверки описаны в
|
||
[docs/CLEANUP.md](docs/CLEANUP.md).
|
||
|
||
Для агентов доступен отдельный MCP-сервис: поиск по трафику и IP, чтение пакетов, избранное,
|
||
создание сервисов и паттернов с отображением в UI, Lookback. У всех инструментов единый доступ
|
||
по токену. Подключение и ограничения: [docs/MCP.md](docs/MCP.md).
|
||
Пошаговое подключение клиента и инструкция для агента: [inst.md](inst.md).
|
||
|
||
## Быстрый запуск
|
||
|
||
Нужны Docker Engine и плагин Docker Compose. Репозиторий уже содержит исходники backend и frontend,
|
||
поэтому достаточно обычного клонирования без git submodules:
|
||
|
||
```bash
|
||
git clone https://github.com/Av0idD4rk/packmate.git
|
||
cd packmate
|
||
cp .env.example .env
|
||
${EDITOR:-nano} .env
|
||
docker compose up --build -d
|
||
```
|
||
|
||
В `.env` обязательно укажите `PACKMATE_INTERFACE` и `PACKMATE_LOCAL_IP` для режима `LIVE`, а также
|
||
смените пароли. Описание всех режимов и настроек находится в [docs/SETUP.md](docs/SETUP.md).
|
||
|
||
При успешном запуске Packmate будет видно с любого хоста на порту `65000`.
|
||
БД будет слушать на порту 65001, но будет разрешать подключения только с localhost.
|
||
|
||
## Использование
|
||
[Инструкция](docs/USAGE.md)
|
||
|
||
<div align="right">
|
||
|
||
*desu~*
|
||
</div>
|