Linux версия работает на Debian (Ubuntu, Debian, Mint) и Redhat (Fedora, CentOS) системах. Для запуска необходимо добавить разрешения chmod +x freebrowser_v102 и запускать как скрипт ./freebrowser_v102
Windows версия тестировалась на Win 7, 10 и 11. Запускается от имени администратора по умолчанию.
Состоит из связки последнего браузера Chrome (скачивается если не установлен) и локального прокси, которое редактирует запросы (запускается на порту 8888)
Использует несколько подходов (любой, который сработает первым):
DNS-over-HTTPs + запрос без изменений
DNS-over-HTTPs + пустой SNI
DNS-over-HTTPs + фейковый SNI
Domain fronting через CDN
Любые отзывы по работающему\не работающему обходу блокировок и производительности приветствуются! Вопросы тоже.
Linux version is working for Debian (Ubuntu, Debian, Mint) and Redhat based (Fedora, CentOS) systems. To run, just chmod +x freebrowser_v102 and run as script ./freebrowser_v102
Windows version was tested on Win 7, 10 и 11. Runs as administrator by default.
Package consists of latest Chrome browser (downloaded if not installed) and localhost proxy which applies request modifications (launched on port 8888).
Uses several methods of circumvention, whichever returns first:
DNS-over-HTTPs + No request modifications
DNS-over-HTTPs + Empty SNI
DNS-over-HTTPs + Fake SNI
Domain fronting via CDN
Any feedback on circumvention success/failures and performance is appreciated! Questions welcomed too.
Package consists of latest Chrome browser (downloaded if not installed) and localhost proxy which applies request modifications (launched on port 8888).
As I understand, the Chrome browser is not included and must be installed manually by the user, and this 6.8 Mb is the proxy that implements the functionality described in the post.
Yes correct, browser isn’t included, but installation is triggered by the executable itself if it is not available @CRACKen@sbq-e Moreover, Chrome download is proxied to so works in case Google’s download web page is blocked (China case).
Unfortunately we don’t release source code in case of Freebrowser. Main reason is it has information about access to our backend (for domain fronting), which we can’t allow to leak…
В целом domain fronting реализован вполне буквально (Domain fronting - Wikipedia) - подмена SNI и HTTP заголовков (в данном случае прокси делает как раз это).
Вот тут (это наш другой, опен сорсный инструмент) https://github.com/greatfire/envoy/blob/master/native/README.md#examples есть пример который показывает какие заголовки подменяются и конфигурация бекенда (на NGINX) который этот запрос преобразовывает в оригинальный вид и посылает дальше. Логика в Freebrowser та же.
Спасибо за фидбек по безопасности! Действительно, первую версию мы даже не обфусцировали и не убрали дебаг символы, это зря.
Попробуйте, пожалуйста, деобфусцировать вот этот билд: freebrowser_v101 (6.6 MB)
Апдейты:
добавлена обфускация и убраны дебаг символы
исправлен TLS fingerprint, теперь тоже мимикрирует Chrome
исправлен баг с HTTPS на нестандартные порты
По шифрованной конфигурации, действительно мы делаем шифрование конфигурации + whitebox + обфускация. Да, в продакшене ещё добавляется скачивание свежих конфигов, но нам нужен рабочий конфиг out of the box, для случая если скачивание новых заблокировано. Поэтому иных вариантов, кроме как максимально осложнить вытаскивание базового конфига из билда нет. Понятно, что любые обфускации теоретически ломаются, поэтому главное их просто осложнить. Предложите лучший подход, мы им воспользуемся.
Уточните, DRM и TPM это digital rights management и trusted platform module? (ну, помимо shit)
И да, цензору нужны бекенды, мы знаем по опыту. Весь смысл domain fronting’a в том, что адреса и SNI блокировать нельзя, потому что они используются для других сервисов (ну, можно конечно, но это вызывает collateral damage, в этом вся логика). Поэтому иронии по поводу делать сложней пользователям, а не цензору, не понял.
Пробегал тут кабанчиком от нечего делать. Идею в общих чертах понял, поподробнее бы. Но на деле не получилось. Сижу на хромиум браузере, гугл хром устанавливать как то совсем не хочется. Сомневаюсь, что юзеры хрома вообще есть на этом сайте. Ну так к чему это я 1) добавить поддержку хотя бы не только гугла, а хромиума в целом. Вообще если я правильно понял эту тему к любому браузеру можно прилепить, удачи в развитии
В Тм не подключается.win8.
“Error occured, please tru again.” В консоли разраб. - ошибка 505.
Если зайти в настройки браузера сразу выходит сообщение “настройки браузера были изменены посторонней программой.Браузер восстановил знначения по умолчанию.”, до запуска chrome уже был установлен.