Files
0xb00b5-packmate/docs/USAGE.md
2023-04-27 22:35:02 +02:00

10 KiB
Raw Permalink Blame History

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

Настройки

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

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

Создание сервисов

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

Скриншот окна создания сервиса

Параметры сервиса:

  1. Имя
  2. Порт (если сервис использует несколько портов, нужно создать по сервису на каждый порт)
  3. Chunked transfer encoding: автоматически раскодировать подобные http пакеты
  4. Urldecode: автоматически проводить urldecode пакетов. Стоит включать по умолчанию в http сервисах.
  5. Merge adjacent packets: автоматически склеивать соседние пакеты в одном направлении. Стоит включать по умолчанию в небинарных сервисах.
  6. Inflate WebSockets: автоматически разархивировать сжатые websocket-пакеты.
  7. Decrypt TLS: автоматически расшифровывать TLS-трафик (HTTPS). Работает только с типами шифрования TLS_RSA_WITH_AES_*, и при наличии приватного ключа, который использовался в сертификате сервера (как Wireshark).

Создание паттернов

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

Важно: паттерн начнет действовать только на стримы, захваченные после его создания. Но можно использовать Lookback, чтобы проанализировать и стримы в прошлом.

Скриншот окна создания паттерна

Параметры паттерна:

  1. Имя: оно отображается в списке на стримах, которые содержат этот паттерн.
  2. Паттерн: само содержимое паттерна. Может быть строкой, регулярным выражением или hex-строкой в зависимости от типа паттерна.
  3. Действие паттерна
    1. Highlight подсветит найденный паттерн. Пример: поиск флагов.
    2. Ignore удалит стрим, содержащий этот паттерн. Пример: вы запатчили сервис от определенной уязвимости и больше не хотите видеть определенный эксплоит в трафике. Можно добавить этот эксплоит как паттерн с типом IGNORE, и он больше не будет сохраняться.
  4. Цвет: этим цветом будут подсвечиваться паттерны с типом Highlight
  5. Метод поиска: подстрока, регулярное выражение, бинарная подстрока
  6. Направление поиска: везде, только в запросах, только в ответах
  7. Сервис: искать в трафике всех сервисов или в каком-то конкретном

Начало игры

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

Обзор навбара

Скриншот навбара

  1. Заголовок
  2. Счетчик SPM - Streams Per Minute, стримов в минуту
  3. Счетчик PPS - Packets Per Stream, среднее количество пакетов в стриме
  4. Кнопка открытия списка паттернов
  5. Список сервисов. В каждом сервисе:
    1. Название
    2. Порт
    3. Счетчик SPM сервиса - позволяет определить наиболее популярные сервисы
    4. Кнопка редактирования сервиса
  6. Кнопка добавления нового сервиса
  7. Кнопка открытия настроек

Обзор сайдбара

Скриншот сайдбара

В левой панели Packmate находятся стримы выбранного сервиса. Отображается номер стрима, протокол, TTL, сервис, время, хэш User-Agent (для http сервисов) и найденные паттерны.

Совет: иногда на CTF забывают перезаписать TTL пакетов внутри сети. В таком случае по TTL можно отличить запросы от чекеров и от других команд.

Совет #2: по User-Agent можно отличать запросы из разных источников. К примеру, можно предположить, что на скриншоте выше запросы 4 и 5 пришли из разных источников.

Совет #3: нажимайте на звездочку, чтобы добавить интересный стрим в избранное. Этот стрим будет выделен в списке, и появится в списке избранных стримов.

Управление просмотром

Панель управления
  1. Пауза: Остановить/возобновить показ новых стримов на экране. Не останавливает перехват стримов и показ другим пользователям! Полезно, если стримы летят слишком быстро.
  2. Избранные: показать только стримы, отмеченные как избранные
  3. Переключить текстовый/hexdump вид
  4. Начать анализ: появляется только при запуске в режиме FILE
  5. Промотать список стримов до самого нового

Обзор меню паттернов

Список паттернов

  1. Кнопка добавления паттерна
  2. Выбор всех стримов (убрать фильтрацию по паттерну)
  3. Список паттернов. В каждой строчке:
    1. Описание паттерна
    2. Кнопка Lookback - позволяет применить паттерн к стримам, обработанным до создания паттерна.
    3. Пауза - паттерн нельзя удалить, но можно поставить на паузу. После этого он не будет применяться к новым стримам.

Совет: создавайте отдельные паттерны для входящих и исходящих флагов. Так легче отличать чекер, кладущий флаги, от эксплоитов.

Совет #2: используйте Lookback для исследования найденных эксплоитов.

Пример: вы обнаружили, что сервис только что отдал флаг пользователю abc123 без видимых причин. Можно предположить, что атакующая команда создала этого пользователя и подготовила эксплоит в другом стриме. Но в игре слишком много трафика, чтобы найти этот стрим вручную. Тогда можно создать SUBSTRING паттерн со значением abc123 и активировать Lookback на несколько минут назад. После этого со включенным фильтром по паттерну будут отображаться только стримы, где упоминался этот пользователь.

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

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

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