From 065960dba1d67dfaa691b2947e14a6c0c0d38036 Mon Sep 17 00:00:00 2001 From: serega6531 Date: Fri, 13 Mar 2020 01:48:38 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B2=D0=BE=D0=B4=20RE?= =?UTF-8?q?ADME=20=D0=BD=D0=B0=20=D0=B0=D0=BD=D0=B3=D0=BB=D0=B8=D0=B9?= =?UTF-8?q?=D1=81=D0=BA=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +- README_EN.md | 118 +++++++++--------- Screenshot.png => screenshots/Screenshot.png | Bin .../Screenshot_Settings.png | Bin 4 files changed, 65 insertions(+), 62 deletions(-) rename Screenshot.png => screenshots/Screenshot.png (100%) rename Screenshot_Settings.png => screenshots/Screenshot_Settings.png (100%) diff --git a/README.md b/README.md index 15328b4..6fbb7cb 100644 --- a/README.md +++ b/README.md @@ -12,14 +12,15 @@ * Подстрока * Регулярное выражение * Бинарная подстрока -* Умеет сохранять пакеты в избранное и отображать только избранные пакеты -* Работает с несколькими сервисами на разных портах +* Умеет сохранять стримы в избранное и отображать только избранные стримы +* Работает с несколькими сервисами на разных портах, может отображать стримы для конкретных сервисов и паттернов * Поддерживает навигацию по стримам с помощью горячих клавиш +* Позволяет копировать содержимое пакета в нужном формате * Конкатенирует смежные пакеты * Автоматически проводит urldecode * Разархивирует GZIP в HTTP на лету -![Скриншот главного окна](Screenshot.png) +![Скриншот главного окна](screenshots/Screenshot.png) ## Клонирование Поскольку этот репозиторий содержит фронтенд как git submodule, его необходимо клонировать так: ```bash @@ -69,7 +70,7 @@ sudo docker-compose up --build -d После успешного входа необходимо открыть настройки кликом по шестеренкам в правом верхнем углу, затем ввести логин и пароль API, указанный при входе. -![Скриншот настроек](Screenshot_Settings.png) +![Скриншот настроек](screenshots/Screenshot_Settings.png) Все настройки сохраняются в local storage и теряются только при смене IP-адреса или порта сервера. diff --git a/README_EN.md b/README_EN.md index 76572d0..6904dca 100644 --- a/README_EN.md +++ b/README_EN.md @@ -4,93 +4,95 @@ ### [EN | [RU](README.md)] -Утилита перехвата и анализа трафика для CTF. +Advanced network traffic flow analyzer for A/D CTFs. -#### Фичи: -* Поддерживает текстовые и бинарные сервисы -* Умеет отображать совпадения паттернов в пакетах цветом - * Подстрока - * Регулярное выражение - * Бинарная подстрока (WIP) -* Умеет сохранять пакеты в избранное и отображать только избранные пакеты -* Работает с несколькими сервисами на разных портах -* Поддерживает навигацию по стримам с помощью горячих клавиш -* Конкатенирует смежные пакеты -* Разархивирует GZIP в HTTP на лету +#### Features: +* Supports binary and textual services +* Can highlight found patterns in packets + * Substring + * Regular expression + * Binary substring +* Can make certain streams favorite and show only favorite streams +* Supports several simultaneous services, can show streams for a specific service or pattern +* Allows to navigate streams using shortcuts +* Has the option to copy packet content in the required format +* Can concatenate adjacent packets +* Can urldecode text automatically +* Can automatically decode GZIPed HTTP -![Скриншот главного окна](Screenshot.png) -## Клонирование -Поскольку этот репозиторий содержит фронтенд как git submodule, его необходимо клонировать так: +![Main window](screenshots/Screenshot.png) +## Cloning +As this repository contains frontend part as git submodule, it has to be cloned like this: ```bash git clone --recurse-submodules https://gitlab.com/binarybears_ctf/Packmate.git -# Или, на старых версиях git +# Or if you have older git git clone --recursive https://gitlab.com/binarybears_ctf/Packmate.git ``` -Если репозиторий уже был склонирован без подмодулей, необходимо выполнить: +If the repository was already cloned without submodule, just run: ```bash -git pull # Забираем свежую версию мастер-репы из gitlab +git pull git submodule update --init --recursive ``` -## Подготовка -В этом ПО используется Docker и docker-compose. В образ `packmate-app` пробрасывается -сетевой интерфейс хоста, его название указывается переменной окружения (об этом ниже). +## Preparation +This program uses Docker and docker-compose. -`packmate-db` настроен на прослушивание порта 65001 с локальным IP. -При этом файлы БД не монтируются как volume, поэтому при пересоздании контейнера все стримы теряются. +`packmate-db` will listen port 65001 at localhost. +Database files do not mount as volume, so upon container recreation all data will be lost. -### Настройка -Программа берет основные настройки из переменных окружения, поэтому для удобства -можно создать env-файл. -Он должен называться `.env` и лежать в корневой директоии проекта. +### Settings +This program retreives settings from environment variables, +so it would be convenient to create env file; +It must be called `.env` and located at the root of the project. -В файле необходимо прописать: +Contents of the file: ```bash -PACKMATE_INTERFACE=wlan0 # Интерфейс, на котором производится перехват трафика -PACKMATE_LOCAL_IP=192.168.1.124 # Локальный IP сервера на указанном интерфейсе -PACKMATE_WEB_LOGIN=SomeUser # Имя пользователя для web-авторизации -PACKMATE_WEB_PASSWORD=SomeSecurePassword # Пароль для web-авторизации +PACKMATE_INTERFACE=wlan0 # Interface to capture on +PACKMATE_LOCAL_IP=192.168.1.124 # Local ip on said interface to tell incoming packets from outgoing +PACKMATE_WEB_LOGIN=SomeUser # Username for web interface +PACKMATE_WEB_PASSWORD=SomeSecurePassword # Password for web interface ``` -### Запуск -После указания нужных настроек в env-файле, можно запустить приложение: +### Launch +After filling in env file you can launch the app: ```bash sudo docker-compose up --build -d ``` -При успешном запуске Packmate будет видно с любого хоста на порту `65000`. +If everything went fine, Packmate will be available on port `65000` from any host -### Начало работы -При попытке зайти в web-интерфейс впервые, браузер спросит логин и пароль, -который указывался в env-файле. -После успешного входа необходимо открыть настройки кликом по шестеренкам в правом -верхнем углу, затем ввести логин и пароль API, указанный при входе. +### Accessing web interface +When you open web interface for the first time, you will be asked for login and password +you specified in the env file. +After entering the credentials, open the settings by clicking on the cogs +in the top right corner and enter login and password again. -![Скриншот настроек](Screenshot_Settings.png) +![Settings](screenshots/Screenshot_Settings.png) -Все настройки сохраняются в local storage и теряются только при смене IP-адреса или порта сервера. +All settings are saved in the local storage and will be +lost only upon changing server ip or port. -## Использование -Сначала нужно создать сервисы, находящиеся в игре. -Для этого вызывается диалоговое окно по нажатию кнопки `+` в навбаре, -где можно указать название и порт сервиса, а также дополнительные опции. +## Usage +First of all you should create game services. +To do that click `+` in the navbar, +then fill in service name, port and optimization to perform. -Система начнет автоматически захватывать стримы и отображать их в сайдбаре. -При нажатии на стрим в главном контейнере выводится список пакетов; -между бинарным и текстовым представлением можно переключиться по кнопке в сайдбаре. +System will start automatically capture streams and show them in a sidebar. +Click at stream to view a list of packets; +you can click a button in the sidebar to switch between binary and text views. -Для удобного отлова флагов в приложении существует система паттернов. -Чтобы создать паттерн, нужно открыть выпадающее меню `Patterns` и нажать кнопку `+`, -затем указать нужный тип поиска, сам паттерн, цвет подсветки в тексте и прочее. +For a simple monitoring of flags there is a system of patterns. +To create a pattern open `Patterns` dropdown menu, press `+`, then +specify the type of pattern, the pattern itself, highlight color and other things. -### Горячие клавиши -Для быстрой навигации по стримам можно использовать следующие горячие клавиши: -* `Ctrl+Up` -- переместиться на один стрим выше -* `Ctrl+Down` -- переместиться на один стрим ниже -* `Ctrl+Home` -- перейти на последний стрим -* `Ctrl+End` -- перейти на первый стрим +### Shortcuts +To quickly navigate streams you can use the following shortcuts: +* `Ctrl+Up` -- go to next stream +* `Ctrl+Down` -- go to previous stream +* `Ctrl+Home` -- go to latest stream +* `Ctrl+End` -- go to first stream
diff --git a/Screenshot.png b/screenshots/Screenshot.png similarity index 100% rename from Screenshot.png rename to screenshots/Screenshot.png diff --git a/Screenshot_Settings.png b/screenshots/Screenshot_Settings.png similarity index 100% rename from Screenshot_Settings.png rename to screenshots/Screenshot_Settings.png