mirror of
https://github.com/DanielLavrushin/b4.git
synced 2026-05-02 05:20:54 +00:00
Add Russian documentation for UDP handling, backup settings, core settings, discovery settings, geodata, payloads, security, and domain monitoring
- Created UDP documentation detailing traffic handling and filtering options. - Added backup settings documentation for configuration backup and restoration. - Introduced core settings documentation covering service management, packet processing, and logging. - Added discovery settings documentation for automatic configuration detection. - Created geodata documentation explaining GeoSite and GeoIP databases and their usage. - Added payloads documentation for generating and managing TLS payloads for faking. - Introduced security documentation for web interface authorization and HTTPS setup. - Added domain monitoring documentation for automatic detection of blocked domains and recovery processes. - Created footer and navbar localization files for Russian language support.
This commit is contained in:
parent
1df5909e62
commit
ef8bedd247
79 changed files with 3545 additions and 3133 deletions
|
|
@ -0,0 +1,210 @@
|
|||
---
|
||||
sidebar_position: 3
|
||||
title: Faking
|
||||
---
|
||||
|
||||
# Faking
|
||||
|
||||
Вкладка Faking содержит методы отправки ложных пакетов и модификации реальных пакетов для обмана DPI. Каждая секция - отдельный аккордеон в интерфейсе.
|
||||
|
||||
Подробнее о типах пэйлоадов и их генерации - в разделе [Пэйлоады](../../settings/payloads).
|
||||
|
||||
<!-- screenshot: подвкладка faking с раскрытыми секциями -->
|
||||
|
||||
## Фейковые SNI-пакеты
|
||||
|
||||
Отправляет пакеты с поддельным содержимым **до** настоящего ClientHello. DPI анализирует фейковый пакет, а настоящие данные проходят незамеченными. Фейковый пакет не доходит до сервера благодаря выбранной стратегии.
|
||||
|
||||
### Стратегия фейка
|
||||
|
||||
Определяет, **как** фейковый пакет станет необрабатываемым для сервера:
|
||||
|
||||
| Стратегия | Механизм |
|
||||
| --- | --- |
|
||||
| **TTL** | Заниженный TTL - пакет истекает на промежуточном узле и не доходит до сервера |
|
||||
| **Random Sequence** | Случайный TCP sequence number - сервер отбрасывает пакет с неожиданным seq |
|
||||
| **Past Sequence** | Прошедший sequence number - сервер уже обработал этот seq, повторный игнорирует |
|
||||
| **TCP Check** | Неверная контрольная сумма TCP - ядро сервера отбрасывает пакет до обработки |
|
||||
| **MD5 Sum** | TCP MD5-опция - сервер без настроенного MD5 отбрасывает пакет |
|
||||
| **TCP Timestamp** | Устаревший TCP timestamp - сервер отбрасывает пакет с timestamp в далёком прошлом |
|
||||
|
||||
### Тип пэйлоада
|
||||
|
||||
Содержимое фейкового пакета. Подробное описание всех типов - в разделе [Пэйлоады](../../settings/payloads#типы-пэйлоадов).
|
||||
|
||||
| Тип | Содержимое |
|
||||
| --- | --- |
|
||||
| Случайное | 1200 случайных байтов |
|
||||
| Пресет: Google | TLS ClientHello от имени Google |
|
||||
| Пресет: DuckDuckGo | TLS ClientHello от имени DuckDuckGo |
|
||||
| Сгенерированный payload | Оптимизированный ClientHello из раздела [Настройки → Пэйлоады](../../settings/payloads) |
|
||||
| Все нули | 1200 нулевых байтов |
|
||||
| Инвертированный оригинал | Побитовая инверсия реального TLS-пакета |
|
||||
|
||||
:::tip Сгенерированные пэйлоады
|
||||
Если в списке нет доступных пэйлоадов - сначала сгенерируйте их в [Настройки → Пэйлоады](../../settings/payloads).
|
||||
:::
|
||||
|
||||
### Параметры
|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| TTL фейка | TTL для фейковых пакетов. Должен быть достаточным, чтобы пакет дошёл до DPI, но истёк до сервера | 1–64 |
|
||||
| Смещение Sequence | Сдвиг TCP sequence number (для стратегий pastseq/randseq) | - |
|
||||
| Уменьшение Timestamp | Величина уменьшения TCP timestamp (для стратегии timestamp, по умолчанию 600000) | - |
|
||||
| Количество фейковых пакетов | Сколько фейковых пакетов отправить перед реальными данными | 1–20 |
|
||||
|
||||
:::tip Подбор TTL
|
||||
Правильный TTL зависит от количества сетевых узлов между вами и провайдерским DPI. Дискавери подбирает TTL автоматически. При ручной настройке начните с `3` и корректируйте.
|
||||
:::
|
||||
|
||||
### TLS-модификации фейковых пакетов
|
||||
|
||||
Если тип пэйлоада содержит TLS-структуру (не случайное и не нули), доступны дополнительные модификации фейкового ClientHello:
|
||||
|
||||
| Параметр | Описание |
|
||||
| --- | --- |
|
||||
| Рандомизация TLS Random | Заменяет 32-байтовое поле Random в фейковом ClientHello случайными байтами. Без этого DPI может заметить, что поле Random одинаковое в фейке и реальном пакете |
|
||||
| Дублировать Session ID | Копирует Session ID из реального ClientHello в фейковый. DPI может отслеживать Session ID для связки пакетов |
|
||||
|
||||
---
|
||||
|
||||
## Фейковые SYN-пакеты
|
||||
|
||||
Отправляет фейковые SYN-пакеты во время TCP-рукопожатия - **до** начала реального соединения. Запутывает DPI ещё до того, как соединение установлено.
|
||||
|
||||
:::warning
|
||||
Это агрессивная техника - фейковые SYN могут влиять на работу некоторых сетевых устройств.
|
||||
:::
|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| SYN MD5 Signature | Отправить фейковый SYN с опцией TCP MD5 перед реальным рукопожатием | - |
|
||||
| Длина payload | Размер данных в фейковом SYN. `0` = только заголовок, `>0` = добавить фейковый TLS payload | 0–1200 |
|
||||
| TTL | TTL для фейковых SYN-пакетов | 1–100 |
|
||||
|
||||
---
|
||||
|
||||
## TCP Desync
|
||||
|
||||
Десинхронизация внедряет фейковые TCP управляющие пакеты (RST/FIN/ACK) с повреждёнными контрольными суммами и низким TTL. Эти пакеты путают DPI с отслеживанием состояния, но отбрасываются реальным сервером.
|
||||
|
||||
### Режим Desync
|
||||
|
||||
| Режим | Что отправляет |
|
||||
| --- | --- |
|
||||
| **RST** | Фейковые RST-пакеты с неверными контрольными суммами - DPI считает соединение разорванным |
|
||||
| **FIN** | Фейковые FIN-пакеты с прошлыми sequence numbers - DPI считает соединение завершённым |
|
||||
| **ACK** | Фейковые ACK-пакеты со случайными будущими sequence/ack numbers - DPI теряет состояние |
|
||||
| **Combo** | Последовательность RST + FIN + ACK |
|
||||
| **Full** | Полная атака: фейковый SYN, перекрывающиеся RST, PSH и URG пакеты |
|
||||
|
||||
### Параметры Desync
|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| TTL Desync | Низкий TTL гарантирует истечение фейковых пакетов до сервера | 1–50 |
|
||||
| Количество пакетов | Количество фейковых пакетов на одну атаку десинхронизации | 1–20 |
|
||||
| Post-ClientHello RST | Отправить фейковый RST **после** ClientHello для удаления соединения из таблицы отслеживания DPI | - |
|
||||
|
||||
---
|
||||
|
||||
## Манипуляция окном
|
||||
|
||||
Отправляет фейковые ACK-пакеты с изменёнными размерами TCP-окна **перед** реальным пакетом. Фейки используют низкий TTL - они истекают до сервера, но путают DPI на промежуточных узлах.
|
||||
|
||||
| Режим | Описание |
|
||||
| --- | --- |
|
||||
| **Нулевое окно** | Фейковые пакеты: сначала window=0, затем window=65535 |
|
||||
| **Случайное** | 3–5 фейковых пакетов со случайными размерами окна из заданного списка |
|
||||
| **Осцилляция** | Циклический перебор пользовательских значений окна |
|
||||
| **Эскалация** | Постепенное увеличение: 0 → 100 → 500 → 1460 → 8192 → 32768 → 65535 |
|
||||
|
||||
При режимах **Случайное** и **Осцилляция** можно задать свой список значений окна (0–65535). Если список пуст - используются значения по умолчанию.
|
||||
|
||||
---
|
||||
|
||||
## Обход входящих ответов (Incoming)
|
||||
|
||||
Манипулирует **входящими ответами** сервера. Используется для обхода DPI, который дросселирует (замедляет) соединения после получения определённого объёма данных (~15–20 КБ). b4 вбрасывает фейковые пакеты к серверу, которые DPI видит, но они не доходят до назначения.
|
||||
|
||||
### Режим
|
||||
|
||||
| Режим | Описание |
|
||||
| --- | --- |
|
||||
| **Фейковые пакеты** | Внедрение повреждённых ACK-пакетов к серверу с низким TTL на каждый входящий пакет данных |
|
||||
| **Внедрение Reset** | Внедрение фейковых RST-пакетов при достижении порога входящих байтов |
|
||||
| **Внедрение FIN** | Внедрение фейковых FIN-пакетов при достижении порога |
|
||||
| **Desync Combo** | Внедрение RST+FIN+ACK combo при достижении порога |
|
||||
|
||||
### Стратегия повреждения
|
||||
|
||||
Определяет, как фейковый пакет станет необрабатываемым:
|
||||
|
||||
| Стратегия | Описание |
|
||||
| --- | --- |
|
||||
| **Bad Checksum** | Повреждение контрольной суммы TCP - пакеты отбрасываются ядром |
|
||||
| **Bad Sequence** | Повреждение sequence number - пакеты игнорируются TCP-стеком |
|
||||
| **Bad ACK** | Повреждение ACK number - пакеты игнорируются TCP-стеком |
|
||||
| **Random** | Случайный выбор метода для каждого пакета |
|
||||
| **All** | Все повреждения одновременно: bad seq + bad ack + bad checksum |
|
||||
|
||||
### Параметры Incoming
|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| TTL фейка | Низкий TTL гарантирует истечение фейков до сервера | 1–20 |
|
||||
| Количество фейков | Количество фейковых пакетов на одну инжекцию | 1–10 |
|
||||
| Порог мин. | Минимальный объём входящих данных для срабатывания (КБ) | 5–50 |
|
||||
| Порог макс. | Максимальный порог - рандомизируется между мин. и макс. для каждого соединения | 5–50 |
|
||||
|
||||
:::info Пороги и режим Fake
|
||||
В режиме **Фейковые пакеты** пороги не используются - фейки отправляются на каждый входящий пакет. Пороги работают только в режимах Reset, FIN и Desync Combo.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Мутация ClientHello
|
||||
|
||||
Изменение структуры TLS ClientHello **настоящего** пакета (не фейкового). Рандомизирует порядок расширений и добавляет шум - чтобы ClientHello не совпадал с известными DPI сигнатурами.
|
||||
|
||||
:::warning Мутация изменяет настоящий пакет
|
||||
В отличие от остальных секций на этой вкладке, мутация модифицирует **реальный** ClientHello, который дойдёт до сервера. Если сайт перестал работать после включения мутации - отключите её.
|
||||
:::
|
||||
|
||||
### Режим мутации
|
||||
|
||||
| Режим | Описание |
|
||||
| --- | --- |
|
||||
| **GREASE Extensions** | Вставить GREASE-расширения для обмана DPI |
|
||||
| **Padding** | Добавить расширение padding до целевого размера |
|
||||
| **Fake Extensions** | Вставить фейковые/неизвестные TLS-расширения |
|
||||
| **Fake SNIs** | Добавить дополнительные фейковые записи SNI |
|
||||
| **Random** | Рандомизировать порядок расширений и добавить шум |
|
||||
| **Advanced** | Комбинация нескольких техник мутации с ручной настройкой |
|
||||
|
||||
### Параметры по режимам
|
||||
|
||||
**GREASE:**
|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| Количество GREASE | Сколько GREASE-расширений вставить | 1–10 |
|
||||
|
||||
**Padding:**
|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| Размер Padding | Целевой размер ClientHello с padding | 256–16384 байт |
|
||||
|
||||
**Fake Extensions:**
|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| Количество Fake Extensions | Сколько фейковых TLS-расширений вставить | 1–15 |
|
||||
|
||||
**Fake SNIs:**
|
||||
|
||||
Добавляет дополнительные значения SNI в ClientHello. Введите домены (например, `ya.ru`, `vk.com`) - они будут внедрены в расширение SNI наряду с реальным доменом.
|
||||
|
||||
**Advanced** включает все параметры выше для ручной комбинации.
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
sidebar_position: 1
|
||||
title: Общее
|
||||
---
|
||||
|
||||
# Общее
|
||||
|
||||
Базовые параметры обработки TCP-трафика в сете.
|
||||
|
||||

|
||||
|
||||
## Лимит TCP пакетов соединения
|
||||
|
||||
Сколько пакетов в начале каждого соединения анализировать. После этого лимита пакеты проходят без модификации. TLS-рукопожатие (ClientHello) обычно происходит в первых 3–5 пакетах, поэтому обрабатывать всё соединение не нужно.
|
||||
|
||||
:::info
|
||||
Значение не может превышать глобальный лимит, заданный в [Настройки → Основные → Очередь](../../settings/core#очередь-и-обработка-пакетов). Если в сете указано больше - будет использован глобальный лимит.
|
||||
:::
|
||||
|
||||
## Задержка между пакетами (Seg2Delay)
|
||||
|
||||
Задержка (мс) между отправкой фрагментов. Задаётся как диапазон **мин–макс** - для каждого соединения b4 выбирает случайное значение из этого диапазона. Если мин и макс одинаковы - задержка фиксированная.
|
||||
|
||||
## Фильтр портов
|
||||
|
||||
Ограничивает, на каких портах назначения этот сет будет применяться. Формат iptables: `443` или `443,80`.
|
||||
|
||||
:::info
|
||||
На уровне фаервола b4 всегда перехватывает трафик на порт 443. Если в сетах указаны дополнительные порты - они добавляются к перехвату. Фильтр портов в сете сужает, к какому трафику **этот конкретный сет** будет применяться, а не то, что b4 обрабатывает глобально.
|
||||
:::
|
||||
|
||||
## Отбросить `SACK`
|
||||
|
||||
Удаляет опцию `Selective Acknowledgment` из TCP-пакетов. `SACK` помогает серверу и клиенту эффективно пересылать потерянные фрагменты - некоторые DPI-системы используют `SACK` для восстановления порядка фрагментов.
|
||||
|
||||
## Дублирование пакетов
|
||||
|
||||
Отправляет каждый пакет несколько раз (1–10 копий). Полезно, если провайдер отбрасывает часть пакетов при обнаружении аномалий.
|
||||

|
||||
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
sidebar_position: 2
|
||||
title: TCP
|
||||
---
|
||||
|
||||
# TCP
|
||||
|
||||
Вкладка TCP - основная часть настройки обхода DPI. Содержит три подвкладки, соответствующие трём аспектам обработки пакетов:
|
||||
|
||||
- [Общее](./general) - лимиты, задержки, дублирование
|
||||
- [Фрагментация](./splitting) - разбиение пакетов на части
|
||||
- [Faking](./faking) - отправка ложных пакетов, десинхронизация, мутация
|
||||
|
||||
<!-- screenshot: вкладка TCP с тремя подвкладками -->
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
sidebar_position: 5
|
||||
title: RST Protection
|
||||
---
|
||||
|
||||
# Защита от RST-инъекций
|
||||
|
||||
Некоторые DPI-системы обрывают соединения, отправляя поддельные TCP RST-пакеты от имени сервера. Браузер принимает такой пакет за настоящий и закрывает соединение.
|
||||
|
||||
Эта функция анализирует входящие RST-пакеты и отбрасывает те, которые выглядят как инъекции.
|
||||
|
||||
## Как работает
|
||||
|
||||
b4 применяет три независимых проверки к каждому RST-пакету:
|
||||
|
||||
| Проверка | Что отбрасывает |
|
||||
|---|---|
|
||||
| **RST до ответа сервера** | RST пришёл раньше, чем любой реальный ответ от сервера - характерный признак инъекции |
|
||||
| **Повторный RST** | Второй и последующие RST на одном соединении - легитимное соединение крайне редко отправляет больше одного |
|
||||
| **Несовпадение TTL** | TTL в RST-пакете значительно отличается от TTL первого реального ответа сервера - пакет пришёл с другого узла сети |
|
||||
|
||||
:::info
|
||||
Каждая проверка работает независимо. Пакет отбрасывается, если сработала **хотя бы одна** из них.
|
||||
:::
|
||||
|
||||
## Настройки
|
||||
|
||||
### Включить RST Protection
|
||||
|
||||
Переключатель активирует защиту для этого сета.
|
||||
|
||||
### TTL Tolerance
|
||||
|
||||
Допустимая разница в TTL между RST-пакетом и реальным ответом сервера. Диапазон: 1–20, по умолчанию **3**.
|
||||
|
||||
:::tip
|
||||
Значение 3 подходит для большинства сетей. Увеличьте, если b4 ложно отбрасывает легитимные RST (видно в логах).
|
||||
:::
|
||||
|
||||
## Логирование
|
||||
|
||||
Каждый отброшенный RST отображается в [логах](../../logs) с указанием причины: несовпадение TTL, RST до ответа сервера или повторный RST.
|
||||
|
|
@ -0,0 +1,206 @@
|
|||
---
|
||||
sidebar_position: 2
|
||||
title: Фрагментация
|
||||
---
|
||||
|
||||
# Фрагментация
|
||||
|
||||
Основной инструмент обхода DPI. Суть: разбить TCP-пакет на части так, чтобы DPI не смог собрать их и прочитать содержимое (в частности, поле SNI в TLS ClientHello).
|
||||
|
||||

|
||||
|
||||
## Метод фрагментации
|
||||
|
||||
| Метод | Описание |
|
||||
| --- | --- |
|
||||
| **tcp** | Разделение на уровне TCP-сегментов. Один пакет становится двумя TCP-сегментами |
|
||||
| **ip** | Разделение на уровне IP. Один IP-пакет разбивается на IP-фрагменты |
|
||||
| **tls** | Одна TLS-запись разбивается на несколько TLS-записей внутри одного TCP-пакета |
|
||||
| **oob** | Out-of-Band - вставка байта с TCP URG флагом, который сбивает DPI |
|
||||
| **combo** | Комбинация нескольких точек разделения с приманками, перемешиванием и фейками между фрагментами |
|
||||
| **hybrid** | Гибрид combo и disorder - комбинированные методы с изменённым порядком |
|
||||
| **disorder** | Фрагменты отправляются не по порядку со случайными задержками |
|
||||
| **extsplit** | Автоматическое разделение перед SNI-расширением в TLS ClientHello |
|
||||
| **firstbyte** | Отправка одного байта, пауза, затем остальное - атака по таймингу |
|
||||
| **none** | Без фрагментации (используйте, если нужен только faking) |
|
||||
|
||||
:::info Как выбрать метод
|
||||
Используйте [Дискавери](../../discovery) - он протестирует все методы и найдёт рабочий. Ручной подбор нужен, если дискавери не справился или вы хотите оптимизировать конкретный случай.
|
||||
:::
|
||||
|
||||
## Пул стратегий
|
||||
|
||||
Если включён пул, b4 случайным образом выбирает метод из пула для каждого нового соединения. Это затрудняет DPI адаптацию к конкретному методу - каждое соединение выглядит по-разному.
|
||||
|
||||
:::tip
|
||||
Выберите несколько стратегий, которые работают у вашего провайдера (через дискавери), и включите их в пул. Пул не используется, если он пуст - в этом случае используется метод, выбранный выше.
|
||||
:::
|
||||
|
||||
## Обратный порядок
|
||||
|
||||
Отправляет фрагменты в обратном порядке (последний фрагмент первым). DPI, ожидающий данные по порядку, не сможет собрать содержимое.
|
||||
|
||||
---
|
||||
|
||||
## TCP/IP Segmentation
|
||||
|
||||
Доступно при методе **tcp** или **ip**.
|
||||
|
||||
### Умное разделение SNI
|
||||
|
||||
Автоматически находит SNI-поле в TLS ClientHello и разделяет посередине имени хоста. Рекомендуемый вариант - не требует ручной настройки.
|
||||
|
||||
### Фиксированная позиция разделения
|
||||
|
||||
Ручное смещение точки разделения (0–50 байт от начала TLS payload). Используйте, если умное разделение не работает у вашего провайдера. Задаётся как диапазон **мин–макс** - для каждого соединения b4 выберет случайную позицию из диапазона.
|
||||
|
||||
:::info 3 сегмента
|
||||
Если включены оба варианта (умное SNI + фиксированная позиция) - пакет разделяется на **3 сегмента**: на фиксированной позиции и в середине SNI.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## Combo
|
||||
|
||||
Комбинирует несколько точек разделения с приманками и перемешиванием. Самый гибкий метод.
|
||||
|
||||
### Приманка (Decoy)
|
||||
|
||||
Отправляет фейковый ClientHello с разрешённым SNI перед реальным трафиком:
|
||||
|
||||
1. Фейковый пакет (с низким TTL) → DPI видит и анализирует, но пакет не доходит до сервера
|
||||
2. Реальный пакет (фрагментированный) → проходит мимо DPI и доставляется серверу
|
||||
|
||||
### Точки разделения
|
||||
|
||||

|
||||
|
||||
| Параметр | Описание |
|
||||
| --- | --- |
|
||||
| First Byte | Разделение после первого байта (десинхронизация по времени) |
|
||||
| Extension Split | Разделение перед SNI-расширением |
|
||||
| SNI Split | Разделение в середине имени хоста SNI |
|
||||
|
||||
Каждая включённая точка добавляет дополнительный сегмент. Интерфейс показывает количество активных разделений и результирующее число сегментов.
|
||||
|
||||
:::warning
|
||||
Должна быть включена хотя бы одна точка разделения, иначе combo отправит пакет одним сегментом.
|
||||
:::
|
||||
|
||||
### Режим перемешивания
|
||||
|
||||
| Режим | Описание |
|
||||
| --- | --- |
|
||||
| `middle` | Первый и последний сегменты остаются на месте, перемешиваются только средние |
|
||||
| `full` | Все сегменты случайно перемешиваются |
|
||||
| `reverse` | Сегменты отправляются в обратном порядке |
|
||||
|
||||
### Тайминги
|
||||
|
||||

|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| Задержка первого сегмента | Пауза после отправки первого сегмента | 10–500 мс |
|
||||
| Макс. джиттер | Случайная задержка между остальными сегментами | 100–10000 мкс |
|
||||
|
||||
### Фейк на сегмент (мультидисордер)
|
||||
|
||||
Отправляет фейковые перекрывающие пакеты перед **каждым** реальным сегментом, а не только перед первым. Засоряет реассемблер DPI мусором.
|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| Фейк на сегмент | Включить фейки между сегментами | - |
|
||||
| Фейков на сегмент | Количество фейковых пакетов перед каждым сегментом | 1–11 |
|
||||
|
||||
---
|
||||
|
||||
## Disorder
|
||||
|
||||
Отправляет реальные TCP-сегменты не по порядку со случайными задержками. В отличие от combo, disorder не использует фейковые пакеты (кроме мультидисордера) - он полагается на то, что DPI ожидает последовательные данные.
|
||||
|
||||
### Режим перемешивания
|
||||
|
||||
| Режим | Описание |
|
||||
| --- | --- |
|
||||
| `full` | Все сегменты случайно перемешиваются |
|
||||
| `reverse` | Сегменты отправляются в обратном порядке |
|
||||
|
||||
### Временной джиттер
|
||||
|
||||
Случайная задержка между сегментами. Задаётся как диапазон **мин–макс** (мкс).
|
||||
|
||||
:::info
|
||||
Джиттер используется, когда Seg2Delay (задержка между пакетами на вкладке [Общее](./general)) равен 0. Если Seg2Delay задан - он имеет приоритет.
|
||||
:::
|
||||
|
||||
:::warning
|
||||
Максимальный джиттер должен быть больше минимального.
|
||||
:::
|
||||
|
||||
### Перекрытие последовательности (seqovl)
|
||||
|
||||
Добавляет фейковые байты с уменьшённым TCP sequence number. DPI видит фейковый заголовок протокола, а сервер отбрасывает перекрытие (у него уже есть правильные данные).
|
||||
|
||||
| Паттерн | Что видит DPI |
|
||||
| --- | --- |
|
||||
| `tls12` | Заголовок TLS 1.2 |
|
||||
| `tls11` | Заголовок TLS 1.1 |
|
||||
| `tls10` | Заголовок TLS 1.0 |
|
||||
| `http_get` | HTTP GET-запрос |
|
||||
| `zeros` | Нулевые байты |
|
||||
| `custom` | Свои hex-байты |
|
||||
|
||||
### Мультидисордер
|
||||
|
||||
Аналогично combo - отправляет фейковые перекрывающие пакеты перед каждым реальным сегментом.
|
||||
|
||||
---
|
||||
|
||||
## Extension Split
|
||||
|
||||
Автоматически разделяет TLS ClientHello прямо перед расширением SNI. DPI видит неполный список расширений и не может распарсить SNI.
|
||||
|
||||
```text
|
||||
[TLS Header] [Handshake] [Ciphers] [Ext₁] [Ext₂] | [SNI: youtube.com] [Ext...]
|
||||
↑ разделение здесь
|
||||
```
|
||||
|
||||
:::info Настройка не требуется
|
||||
Extension Split работает автоматически. Используйте переключатель **Обратный порядок** и **Задержку между пакетами** (Seg2Delay) на вкладке [Общее](./general) для дополнительной настройки.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## First-Byte Desync
|
||||
|
||||
Атака по таймингу: отправляет один байт (`0x16` - тип TLS-записи), делает паузу, затем отправляет остальной ClientHello. DPI видит неполную TLS-запись и не может распарсить SNI до истечения таймаута.
|
||||
|
||||
```text
|
||||
[0x16] ──── пауза ──── [остальная часть TLS ClientHello...]
|
||||
```
|
||||
|
||||
:::info Настройка не требуется
|
||||
Задержка контролируется **Seg2Delay** на вкладке [Общее](./general). Минимум 100 мс применяется автоматически - если Seg2Delay меньше, b4 использует 100 мс.
|
||||
:::
|
||||
|
||||
---
|
||||
|
||||
## OOB (Out-of-Band)
|
||||
|
||||
Вставляет байт с TCP URG (urgent) флагом в поток данных. Сервер игнорирует OOB-данные (они обрабатываются отдельно от основного потока), но DPI с отслеживанием состояния путается - видит лишний байт, который смещает его парсинг.
|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| Позиция вставки | Сколько байтов до точки вставки OOB. Задаётся как диапазон мин–макс | 1–50 |
|
||||
| OOB байт | Байт, передаваемый через OOB (отображается символ + hex) | - |
|
||||
|
||||
---
|
||||
|
||||
## TLS Record Splitting
|
||||
|
||||
Разделяет ClientHello на несколько TLS-записей внутри одного TCP-пакета. DPI, ожидающий однозаписный хендшейк, не может сопоставить сигнатуру.
|
||||
|
||||
| Параметр | Описание | Диапазон |
|
||||
| --- | --- | --- |
|
||||
| Позиция разделения | Размер первой TLS-записи в байтах. Задаётся как диапазон мин–макс | 1–100 |
|
||||
Loading…
Add table
Add a link
Reference in a new issue