Zapret2: обсуждение

Express, но, думаю, это к теме отношения не имеет.

После какого-то обновления dvtws2 стал “ругаться” при запуске:

chdir: Permission denied

Запускается от: Running as UID=65534 GID=65534

До этого нобади не имея доступ от корня до бинарников запускался без ошибок, сейчас даже имея права

Summary

-rwxr-xr-x 1 nobody nobody 199640 Feb 14 12:15 dvtws2

ругается.

Пакет с ттл=1 до дпи дойти не может.
Предположения:
На роутере могут быть включены настройки, меняющие ттл при каких-то условиях: «Extend the TTL value», «Spoof LAN TTL value».
Дпи не понравилось увеличение значения поля ip.id (IPV4 Identification) на 2 (из-за недошедшего до дпи фейка), а не на 1.

Не видел таких настроек. За пределами машины с z2 трафик с TTL выглядит аналогично тому, что внутри.

Если посмотреть на скриншоты выше, то на 8 связи нет, на 9 уже приходит ошибка от удалённого хоста. Если ещё выше отмотать, то с помощью tcptraceroute видно, что хост находится на девятом хопе от машины с z2. ip.id при ttl=8 и ttl=9 не отличаются.

Но с IP.ID действительно есть какие-то различия:

Summary

без z2 ip.id идёт от 0x0000, а с от 0x0001.

с хостфакесплит тоже самое?

У меня на win11 с каждым исходящим пакетом ip.id последовательно увеличивается на 1 (z2 выкл).

Там со всем будет тоже самое. После прохода трафика через изделие фирмы Cxxxo почему то на пакетах дурения правится ttl, ну и соответственно ничего никуда не доходит:

до-после

Называется это evasion-protection.

ttl-evasion-protection

TTL evasion protection offered is enabled by default.
To disable the feature, use the no form of this command.
With TTL evasion protect, the maximum TTL for a connection is determined by the TTL in the initial packet. The TTL for subsequent packets can decrease, but it cannot increase. The system will reset the TTL to the lowest previously-seen TTL for that connection.

Да, в гадостях с ttl виновата она. Отключил, попробовал другой источник на ру впс - с установленной опцией ip_ttl до впс долетает только SYN, ACK. Остальные где-то стрянут. Хотя от роутера вылетели нормально. Что не очень понятно.

Работает

–lua-desync=fake:blob=0x00000000:ip_id=rnd
–payload=tls_client_hello
–lua-desync=multisplit:ip_id=zero

Не работает

–lua-desync=fake:blob=0x00000000:ip_id=rnd:ip_ttl=4
–payload=tls_client_hello
–lua-desync=multisplit:ip_id=zero

Приветствую. Есть ли готовый способ рандомизировать аргументы функций, например tcp_ts? Периодически перестает работать обход, простой перезапуск запрета не помогает, но если сменить значение tcp_ts то все начинает проходить нормально

Извиняюсь за ответ на сообщение. Не ту кнопку ткнул

А остановка службы windivert?

Linux роутер

math.random() в Lua, см. luaexec в мануале

Философия z2 предполагает, что такого рода мелочи пишутся lua кодом, а не реализуются в виде готовых функций. они слишком частные, чтобы их реализовывать.
Нужно хоть немного понимать что такое программирование.
1 оператор в luaexec, подстановка переменной через ‘%’ в параметре tcp_ts

Окей, спасибо, вроде понял. Выходит такое
–lua-desync=luaexec:code=‘desync.ts_rnd=math.random(10000,50000)’
–lua-desync=fake:blob=amd_blob:tls_mod=rnd,dupsid:tcp_ts=-%ts_rnd:repeats=11

Теперь второй вопрос, если я это в шаблон запихну, math.random будет вызываться при каждом срабатывании, или только при инициализации шаблона?

Возможно, есть смысл сделать типа такого, чтобы 11 разных ts генерировалось, а не 11 повторов одинакового (repeater объявлен в zapret-auto.lua):

--lua-desync=repeater:instances=2:repeats=11
--lua-desync=luaexec:code='desync.ts_rnd=math.random(10000,50000)'
--lua-desync=fake:blob=amd_blob:tls_mod=rnd,dupsid:tcp_ts=-%ts_rnd

Это не будет работать. Замещение через % и # не поддерживается в любых местах
Это не переменная для подстановки. Должно идти только в начале, выражения не поддерживаются.
Все выражения надо вычислять в lua, а подставляется только готовая переменная без шелл вариаций в виде “privet, $NAME, i’m home”
В текущем виде tcp_ts примет “-%ts_rnd” как есть и вывалится в error

@bolvan, а какой именно AI тебе больше понравился для поиска багов в C-коде?

ИИшки от claude отлично пишут даже низкий код вполне себе. у них другая проблема – они часто не видят весь код целиком из-за контекстного окна и начинают плодить узкие участки кода которые не согласованы с другим кодом.

так что баги приходится все равно ручками искать, а новые создавать они могут легко