Полный список обманок (fooling) в zapret2
🔹 IP/IPv4 модификации
-
ip_ttl=N- установить TTL (Time To Live) в IPv4 заголовке- Пример:
ip_ttl=5
- Пример:
-
ip_autottl=delta,min-max- автоматическое определение TTL- Формат:
delta,min-max(например:-1,3-20) - Автоматически вычисляет оптимальный TTL на основе входящих пакетов
- Формат:
🔹 IPv6 модификации
-
ip6_ttl=N- установить Hop Limit в IPv6 заголовке (аналог TTL)- Пример:
ip6_ttl=3
- Пример:
-
ip6_autottl=delta,min-max- автоматическое определение Hop Limit для IPv6- Формат:
delta,min-max
- Формат:
🔹 IPv6 Extension Headers (расширенные заголовки)
-
ip6_hopbyhop[=hex]- добавить Hop-by-Hop заголовок- Размер данных: 6+N×8 байт
- По умолчанию:
\x00\x00\x00\x00\x00\x00
-
ip6_hopbyhop2[=hex]- добавить второй Hop-by-Hop заголовок- Размер данных: 6+N×8 байт
-
ip6_destopt[=hex]- добавить Destination Options заголовок (unfragmentable part)- Размер данных: 6+N×8 байт
-
ip6_destopt2[=hex]- добавить второй Destination Options заголовок (fragmentable part)- Размер данных: 6+N×8 байт
-
ip6_routing[=hex]- добавить Routing заголовок- Размер данных: 6+N×8 байт
-
ip6_ah[=hex]- добавить Authentication Header (усеченный)- Размер данных: 6+N×4 байт
- По умолчанию:
\x00\x00+ 4 случайных байта
🔹 TCP модификации
-
tcp_seq=N- добавить N к TCP sequence number- Пример:
tcp_seq=10000 - Используется для “badseq” обманки
- Пример:
-
tcp_ack=N- добавить N к TCP acknowledgment number- Пример:
tcp_ack=-66000 - Используется для “badack” обманки (обычно отрицательное значение)
- Пример:
-
tcp_ts=N- добавить N к TCP timestamp value- Модифицирует TCP опцию timestamp
-
tcp_md5[=hex]- добавить TCP MD5 опцию (RFC 2385)- Размер: 16 байт
- По умолчанию: случайные данные
- Пример:
tcp_md5илиtcp_md5=0x00112233445566778899aabbccddeeff
-
tcp_flags_set=<список>- установить TCP флаги- Список через запятую:
FIN,SYN,RST,PSH,ACK,URG,ECE,CWR - Пример:
tcp_flags_set=PSH,URG
- Список через запятую:
-
tcp_flags_unset=<список>- снять TCP флаги- Пример:
tcp_flags_unset=ACK(для “datanoack” обманки)
- Пример:
-
tcp_ts_up- переместить TCP timestamp опцию в начало- Без параметров
- Workaround для Linux: позволяет отбрасывать пакеты с badack без badseq
🔹 Дополнительные опции
-
badsum- сделать контрольную сумму L4 невалидной- Без параметров
- Относится к reconstruct options
-
fool=функция- вызвать пользовательскую функцию обманки- Формат:
fool_func(dis, fooling_options) - Для создания собственных обманок
- Формат:
📋 Популярные комбинации (из nfqws1)
В старой версии (nfqws1) были готовые комбинации:
md5sig→tcp_md5badseq→tcp_seq=-10000(для SYN) илиtcp_ack=-66000(для обычных пакетов)badack→tcp_ack=-66000datanoack→tcp_flags_unset=ACK
💡 Примеры использования
# Простой TTL
--lua-desync=fake:ip_ttl=5
# Автоматический TTL
--lua-desync=fake:ip_autottl=-1,3-20
# TCP MD5 signature (обманка для DPI)
--lua-desync=fake:tcp_md5
# Badseq + badack (классическая обманка)
--lua-desync=fakedsplit:tcp_seq=-10000:tcp_ack=-66000:tcp_ts_up
# IPv6 extension headers
--lua-desync=fake:ip6_hopbyhop:ip6_destopt
# Снять ACK флаг (datanoack)
--lua-desync=fake:tcp_flags_unset=ACK
# Комбинация нескольких обманок
--lua-desync=fake:ip_ttl=1:tcp_md5:tcp_ack=-66000Все эти обманки применяются функцией apply_fooling() из библиотеки zapret-lib.lua и используются для обхода DPI систем путем создания пакетов, которые проходят через DPI, но отбрасываются целевым сервером или наоборот.