-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add TLS ClientHello fake packet generator #665
base: master
Are you sure you want to change the base?
Conversation
Не уверен, что наличие ECH extension по умолчанию — хорошая идея. Предлагаю убрать ECH, возможно сделав его опциональным дополнительным параметром. |
Все браузеры (chrome, yandex, edge) отправляют encrypted_client_hello. Если его не отправлять, то ркн сделает фильтр - если нет ech, то дропать. |
Он отправляется только в том случае, если сайт (домен) поддерживает ECH, коих совсем немного, относительно всех доменов в интернете. |
На сегодняшний день - типичный, популярная троица современных браузеров (Chrome, Edge, Firefox) отправляет ECH независимо от наличия в DNS-записи и на сервере, остальные браузеры не проверял. Если поддержки со стороны сайта нет - то данные в ECH лепятся от балды. Из статьи с Cloudflare:
|
Скомпилил, проверил, работает (ютуб и другие сайты).
на новый с
|
goodbyedpi.exe (x86_64) для желающих потестить. Скомпилено в windows с отключенной либой libssp. Хеши файла goodbyedpi.exe: |
@Decavoid Огромное спасибо! UPD: Работает отлично, проверил с разными доменами вместо гугла и на разных сайтах с TLS 1.2 |
@Decavoid спасибо! Работает, и кстати без дополнительных фейковых пакетов и флагов fake-gen. |
Проверил. У меня без --fake-gen 3 --fake-resend 2 ютуб отрубился ( А не, с фейком от гугла заработал. Парни, вы лучшие! Дай вам бог здоровья! |
У меня работает и без дополнительных фейковых пакетов, но субъективно в ними всё же лучше. Быстрее начинается воспроизведение роликов и первая подгрузка всего интерфейса сайта. |
Ещё можно напрямую скачать артефакты из автоматического билда, собираемого при каждом пуше и пулреквесте: https://github.com/ValdikSS/GoodbyeDPI/actions/runs/11042716687?pr=665 |
У меня тоже. Просто если в новом ключе указать адрес не гугла, а какой-нибудь другой - все другие сайты работают, видео на ютубе не работает ) С ввв.гугл.ком пашет все Если кто без реги на гитхабе и нужна версия х86 - то вот WinDivert обновлять не надо - он не менялся. |
Спасибо за PR, без него никакие параметры ранее не работали, как только запустил с такими параметрами заработало UPD: Работает только с отлюченым Kyber |
Confirmed. |
Странный он у вас какой-то ) |
@RknMustDie512 Можете еще добавить в стартовый лог вывод примененного SNI, например, под "Max payload size:"? |
Если ты такой же чайник как я и у тебя перестал работать ютуб:
|
Пункт 2. для тех, у кого 32-хбитная система. Разархив., потом заменяем в папке x86 файл goodbyedpi.exe тезкой из архива goodbyedpi_x86_0411a42 (рядом есть знак коробки) на странице https://github.com/ValdikSS/GoodbyeDPI/actions/runs/11042716687?pr=665 Без регистрации на гитхабе знака коробки не будет, берем архивы для обоих разрядностей из постов выше. |
у меня работает с --set-ttl 2 только 144 показывает, так 1080 будет ли работать если хекс не менять каждый раз - пока не знаю, на всякий пожарный до старт скопировала если надо будет вставлю вместо 16ричного числа %hex_value% и он больше никогда не сломается, я надеюсь......... но совсем без него не работает |
Спасибо! На МГТС Мск полёт нормальный с этими параметрами. |
так а причем тут fake-from-hex ? тут как раз версия обсуждается что БЕЗ него но с ключом --fake-with-sni www.google.com про случайную генерацию fake-from-hex уже всё обсудили в
set-ttl 2 при наличии домашнего роутера не знаю на каких провайдерах работает.
что-то многовато 20 фейковых пакетов. Вы пробовали --fake-gen 6 --fake-resend 2 ? |
--fake-with-sni www.google.com протянуло ровно 6 часов и перестало работать, затем снова сработало на 2 часа и теперь не работает вообще при запуске происходит "Нет подключения к Интернету" |
было такое , но сейчас работает. |
Это минимальный синтаксически правильный ClientHello с заданным, но пустым SNI. Полностью он выглядит так: |
Да думаю достаточно будет к --fake-with-sni <адрес> прилепить сбоку --fake-from-hex 00 - у многих такой вариант работает. Или банальный --fake-gen 1 |
Перепробовал все вышеупомянутые варианты, ютуб не видит подключения к интернету. Последний вариант (goodbyedpi.exe -f 1 -e 1 --set-ttl 4 --reverse-frag --max-payload --fake-with-sni www.google.com --fake-from-hex 00 --blacklist ..\russia-blacklist.txt --blacklist ..\russia-youtube.txt) Уточните, пожалуйста, есть какая-то рабочая версия или у меня параметры не верно указаны? На android только сегодня нашел рабочий вариант запуска byedpi (стандартный уже месяц не работает), там через команду -s1 -o1 -Atr -f8 -l':\x03\x16\x02\x01\x01\x87\x02\x00' -As ютуб завелся, можно что-то аналогичное в goodbyepdi установить? |
эта конфигурация больше не работает, по крайней мере у меня, больше нет: эта шляпа тоже больше не работает - goodbyedpi_x86_64_0411a42 у меня около 6 часов работала вчера вот эта абракадабра, сегодня с утра уже нет: |
Больше похоже на проблему со связностью сетей у самого провайдера, GoodbyeDPI в таком случае бесполезен. |
вполне возможно ибо они не смогли настроить принесённый им дешманский роутер TPLink новый из коробки когда затребовали зачем то принести им старый на срочную перепрошивку иначе интернет пропадёт )))) |
Да думаю достаточно будет к --fake-with-sni <адрес> прилепить сбоку --fake-from-hex 00 - у многих такой вариант работает. Или банальный --fake-gen 1
Ого, неужто какие-то дебилы решили блокнуть новый CH из фейка по неизменяемым полям? ;D Смените адрес на fonts.google.com например, не поможет? |
нет тоже не помогает |
да... наверное вы правы, нужно организовать впн и не трепать нервы не себе не людям, или сменить провайдера ) |
Ну, давайте путать DPI ) |
протестил... сработало, страница ютуба открылась почти мгновенно, но загрузка видео 26 секунд, короткого видео 3 минутного и видео в 480р на 40 секундах обрывается, после обновления страницы грузится 1 минуту но в 1080р, следующее видео 5 минутное уже не запустилось вообще ну хотя бы с такими костылями хоть что-то заработало, на сколько долго не знаю но )) спасибо |
Такое впечатление, что что-то мешает видео нормально грузиться. Какие расширения в браузере стоят? Нет каких нибудь фастпроксей, обходов блокировок ютуба/рунета, юбустов и подобного? Вся эта братия мешает GDPI нормально работать |
нечего нет, проверил-протестил в Firefox, Google Chrome, Yandex и ситуация практически одинаковая, Opera и Vivaldi не тестил... в Edge протестил и там вообще мёртвый ютуб с этим конфигом, в ТоR думаю не смысла ) |
А что делает эта новая рекомендация? будет сначала фейковый пакет с полезной TCP нагрузкой 00000000 и потом уже поддельный ClientHello сгенерированный по ключу fake-with-sni? или порядок пакетов зависит от порядка указания опций fake-with-sni и fake-from-hex? |
Чуточку меньше байт в фейковом пакете получится, но это экономия на спичках. И чуть более рискованно, т.к. 00 заблочить по содержимому возможно, а рандомный пакет - нет. Стратегия двух фейковых пакетов в том, что DPI почему-то анализирует первые 2, даже если SNI был встречен в первом (есть предположение, что так изначально сделали из-за Kyber, но могу и ошибаться). И только после двух успокаивается. |
@sansergs Это не придумалось, это на форуме программы в этой теме пользователем написалось ) А вот и он, кстати. Там же, ближе к концу написано, что сначала идет, что потом. В разных вариациях. Не нужны, уже несколько дней как. DPI научились этот мусор игнорить и искать SNI за его пределами. И находить. И блокировать. А SNI из --fake-with-sni они пока принимают за реальный, больше ничего не проверяют и пропускают пакет. Фейк-ген генерирует несколько байтов фейка, 00 - всего один байт. Некоторым этого бывает достаточно. Как уже написали выше - дело в кол-ве пакетов, предшествующих реальному, с реальным SNI (он идет последним в любом случае) |
Теперь у вас и форум должен открыться, сходите сюда, может скрипт вам рабочую стратегию подберет. |
спасибо ) |
что-то видимо постоянно исправляют на тспушах. Сейчас реально работает fake-from-hex 00 или fake-from-hex 160301 но НЕ работает рекомендованный фейковый ClientHello с fake-from-hex просто для информации (по порядку следования) также работает без fake-from-hex но с флагом --wrong-seq в этом случае повторно отправляется пакет сгенерированный на основе fake-with-sni но с TTL=128 и неправльным номером SEQ |
А такой? 16030100430100003f0303[...random 32 bytes...]00000000001700000013001100000e7777772e676f6f676c652e636f6d |
Не робит на РТ |
И не будет, читайте что ниже написано. Нужен еще фейк-пакет Добавьте --wrong-seq например |
На мтс работает |
Этот работает. Спасибо за еще один рабочий вариант.
а это вообще супер удобная вещь для автотестирования конфигураций. |
Не очень хороший конфиг, фейки прямо в сервер летают. Лучше думаю будет: |
повторюсь, но лучше все же работает --fake-from-hex 00 или --fake-from-hex 160301 вместо --fake-gen 1 |
@sansergs Одинаково оно работает. --fake-gen 1 просто добавляет рандомные данные, а предыдущие 2 - определенные Но если кажется, что лучше - можно и попробовать, почему бы и нет. |
У меня прекрасно работает spoof-dpi на дефолтных настройках. |
Сегодня ркн сел и в очередной раз сказал: "Сегодня выходные, давайте придумаем комбинацию, чтобы у всех опять не работало. Пусть пацаны посидят поперебирают, на выходных же заняться нечем..." Никакой из вышеперечисленных конфигов не сработал(( Провайдер: Дом.Ру |
Сейм, тоже не работает ничего |
На дом.ру работает с таким конфигом |
Добавил опцию
--fake-with-sni имя_домена
, позволяющую генерировать и отправлять фейковый пакет ClientHello с заданным в параметре SNI.Помогает пробивать некоторые сервера Гугла, если подставлять SNI от незаблокированного гуглового домена.
Избавляет от портянок
--fake-from-hex
, который некоторые велосипедисты уже даже через PowerShell зачем-то пытаются генерировать полностью случайными, не понимая исходного смысла от этого пакета.Генерируемый пакет аналогичен по структуре, наборам шифров и расширениям тому, что используется в Firefox 130, потому по фингерпринту заблочить его не получится, не сломав при этом Firefox, случайные поля внутри пакета (Session ID, ключи для DHE, фейковый ECH) генерируются случайно при каждом запуске GoodbyeDPI, не позволяя Роскомнадзору зафингерпринтить их.
С маскировкой под Chrome чуть сложнее, там TLS-расширения перетасовуются в случайном порядке, что усложнит код, потому пока что так.