diff --git a/README_EN.md b/README_EN.md new file mode 100644 index 0000000..76572d0 --- /dev/null +++ b/README_EN.md @@ -0,0 +1,98 @@ +
+ +# Packmate +
+ +### [EN | [RU](README.md)] +Утилита перехвата и анализа трафика для CTF. + +#### Фичи: +* Поддерживает текстовые и бинарные сервисы +* Умеет отображать совпадения паттернов в пакетах цветом + * Подстрока + * Регулярное выражение + * Бинарная подстрока (WIP) +* Умеет сохранять пакеты в избранное и отображать только избранные пакеты +* Работает с несколькими сервисами на разных портах +* Поддерживает навигацию по стримам с помощью горячих клавиш +* Конкатенирует смежные пакеты +* Разархивирует GZIP в HTTP на лету + +![Скриншот главного окна](Screenshot.png) +## Клонирование +Поскольку этот репозиторий содержит фронтенд как git submodule, его необходимо клонировать так: +```bash +git clone --recurse-submodules https://gitlab.com/binarybears_ctf/Packmate.git + +# Или, на старых версиях git +git clone --recursive https://gitlab.com/binarybears_ctf/Packmate.git +``` + +Если репозиторий уже был склонирован без подмодулей, необходимо выполнить: +```bash +git pull # Забираем свежую версию мастер-репы из gitlab +git submodule update --init --recursive +``` + +## Подготовка +В этом ПО используется Docker и docker-compose. В образ `packmate-app` пробрасывается +сетевой интерфейс хоста, его название указывается переменной окружения (об этом ниже). + +`packmate-db` настроен на прослушивание порта 65001 с локальным IP. +При этом файлы БД не монтируются как volume, поэтому при пересоздании контейнера все стримы теряются. + +### Настройка +Программа берет основные настройки из переменных окружения, поэтому для удобства +можно создать env-файл. +Он должен называться `.env` и лежать в корневой директоии проекта. + +В файле необходимо прописать: +```bash +PACKMATE_INTERFACE=wlan0 # Интерфейс, на котором производится перехват трафика +PACKMATE_LOCAL_IP=192.168.1.124 # Локальный IP сервера на указанном интерфейсе +PACKMATE_WEB_LOGIN=SomeUser # Имя пользователя для web-авторизации +PACKMATE_WEB_PASSWORD=SomeSecurePassword # Пароль для web-авторизации +``` + +### Запуск +После указания нужных настроек в env-файле, можно запустить приложение: +```bash +sudo docker-compose up --build -d +``` + +При успешном запуске Packmate будет видно с любого хоста на порту `65000`. + +### Начало работы +При попытке зайти в web-интерфейс впервые, браузер спросит логин и пароль, +который указывался в env-файле. +После успешного входа необходимо открыть настройки кликом по шестеренкам в правом +верхнем углу, затем ввести логин и пароль API, указанный при входе. + +![Скриншот настроек](Screenshot_Settings.png) + +Все настройки сохраняются в local storage и теряются только при смене IP-адреса или порта сервера. + +## Использование +Сначала нужно создать сервисы, находящиеся в игре. +Для этого вызывается диалоговое окно по нажатию кнопки `+` в навбаре, +где можно указать название и порт сервиса, а также дополнительные опции. + +Система начнет автоматически захватывать стримы и отображать их в сайдбаре. +При нажатии на стрим в главном контейнере выводится список пакетов; +между бинарным и текстовым представлением можно переключиться по кнопке в сайдбаре. + +Для удобного отлова флагов в приложении существует система паттернов. +Чтобы создать паттерн, нужно открыть выпадающее меню `Patterns` и нажать кнопку `+`, +затем указать нужный тип поиска, сам паттерн, цвет подсветки в тексте и прочее. + +### Горячие клавиши +Для быстрой навигации по стримам можно использовать следующие горячие клавиши: +* `Ctrl+Up` -- переместиться на один стрим выше +* `Ctrl+Down` -- переместиться на один стрим ниже +* `Ctrl+Home` -- перейти на последний стрим +* `Ctrl+End` -- перейти на первый стрим + +
+ +*desu~* +