2020-03-11 18:56:46 +03:00
2020-03-11 18:56:46 +03:00
2020-03-11 18:56:46 +03:00
2019-11-20 22:19:59 +03:00
2019-11-20 22:19:59 +03:00
2020-03-10 23:53:20 +03:00
2019-04-26 02:21:44 +03:00

Packmate

[EN | RU]

Утилита перехвата и анализа трафика для CTF.

Фичи:

  • Поддерживает текстовые и бинарные сервисы
  • Умеет отображать совпадения паттернов в пакетах цветом
    • Подстрока
    • Регулярное выражение
    • Бинарная подстрока (WIP)
  • Умеет сохранять пакеты в избранное и отображать только избранные пакеты
  • Работает с несколькими сервисами на разных портах
  • Поддерживает навигацию по стримам с помощью горячих клавиш
  • Конкатенирует смежные пакеты
  • Разархивирует GZIP в HTTP на лету

Скриншот главного окна

Клонирование

Поскольку этот репозиторий содержит фронтенд как git submodule, его необходимо клонировать так:

git clone --recurse-submodules https://gitlab.com/binarybears_ctf/Packmate.git

# Или, на старых версиях git
git clone --recursive https://gitlab.com/binarybears_ctf/Packmate.git

Если репозиторий уже был склонирован без подмодулей, необходимо выполнить:

git pull  # Забираем свежую версию мастер-репы из gitlab
git submodule update --init --recursive

Подготовка

В этом ПО используется Docker и docker-compose. В образ packmate-app пробрасывается сетевой интерфейс хоста, его название указывается переменной окружения (об этом ниже).

packmate-db настроен на прослушивание порта 65001 с локальным IP.
При этом файлы БД не монтируются как volume, поэтому при пересоздании контейнера все стримы теряются.

Настройка

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

В файле необходимо прописать:

PACKMATE_INTERFACE=wlan0  # Интерфейс, на котором производится перехват трафика
PACKMATE_LOCAL_IP=192.168.1.124  # Локальный IP сервера на указанном интерфейсе
PACKMATE_WEB_LOGIN=SomeUser  # Имя пользователя для web-авторизации
PACKMATE_WEB_PASSWORD=SomeSecurePassword  # Пароль для web-авторизации

Запуск

После указания нужных настроек в env-файле, можно запустить приложение:

sudo docker-compose up --build -d

При успешном запуске Packmate будет видно с любого хоста на порту 65000.

Начало работы

При попытке зайти в web-интерфейс впервые, браузер спросит логин и пароль, который указывался в env-файле.
После успешного входа необходимо открыть настройки кликом по шестеренкам в правом верхнем углу, затем ввести логин и пароль API, указанный при входе.

Скриншот настроек

Все настройки сохраняются в local storage и теряются только при смене IP-адреса или порта сервера.

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

Сначала нужно создать сервисы, находящиеся в игре.
Для этого вызывается диалоговое окно по нажатию кнопки + в навбаре, где можно указать название и порт сервиса, а также дополнительные опции.

Система начнет автоматически захватывать стримы и отображать их в сайдбаре.
При нажатии на стрим в главном контейнере выводится список пакетов; между бинарным и текстовым представлением можно переключиться по кнопке в сайдбаре.

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

Горячие клавиши

Для быстрой навигации по стримам можно использовать следующие горячие клавиши:

  • Ctrl+Up -- переместиться на один стрим выше
  • Ctrl+Down -- переместиться на один стрим ниже
  • Ctrl+Home -- перейти на последний стрим
  • Ctrl+End -- перейти на первый стрим

desu~

Description
0xb00b5 team fork of packmate. Just for fun:)
Readme MIT 3.6 MiB
Languages
Java 80.3%
Vue 15.8%
JavaScript 2%
CSS 1.8%
HTML 0.1%