Почему ваш «Windows» прокси палится как Linux: Глубокий разбор TCP Window Size, о котором молчат.

Zl0y

Client
Регистрация
19.04.2024
Сообщения
33
Благодарностей
22
Баллы
8
Ребят, всех категорически приветствую! На связи Злой.

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


Видеоверсия этого разбора доступна по ссылке:
Посмотрите, если хотите увидеть наглядные тесты в BrowserLeaks.
Давайте поговорим о TCP Window Size и о том, почему большинство современных средств подмены отпечатка (p0f) — это «Bugatti с мотором от Prius».

Что такое TCP Window Size?

Если супер кратко: Window Size — это отражение буфера обмена данными.

Когда вы устанавливаете соединение с сайтом, первым делом летит SYN-пакет. В нем ваша система сообщает серверу: «Эй, я могу принять вот столько данных за раз». Обычно это значение (суммарный буфер) составляет 64240 байт (или около того).

Это легко проверить на BrowserLeaks. Заходите, смотрите поле Window Size. Скорее всего, вы увидите там 64240.

В этом же пакете передается параметр Windows Scale (множитель). И вот тут начинается самое интересное.

Проблема «Фасада»: Почему старые методы не работают

Существующие на рынке решения для подмены OS Fingerprint (отпечатка операционной системы) в большинстве своем базируются на древних костылях. Самый известный пример — OSfooler-ng.
Это утилита, написанная на Python 2 (да-да, на языке мамонтов), которую не обновляли уже лет 6. Что она делает? Она подменяет только первый SYN-пакет.

Представьте, что вы берете корпус от Bugatti Veyron и втыкаете в него мотор от старенького Toyota Prius.
  • Выглядит как Bugatti? Да.
  • Поедет? Ну, чисто теоретически — покатится.
  • Будет ли она рычать и разгоняться как Bugatti? Точно нет.
Так работают нынешние «подмены». Они меняют «фасад» (первый пакет), чтобы BrowserLeaks показал вам Windows. Но как только соединение продолжается, вся магия рушится.

Что происходит в глубине соединения?

После первого пакета начинается реальная передача данных. И здесь значение Window Size начинает динамически меняться в зависимости от операционной системы. У каждой ОС свои паттерны поведения и свои множители.

На дистанции (после обмена хотя бы сотней пакетов) картина выглядит так:

  • Windows: Значение Window Size держится в районе 1024 (с учетом множителя).
  • Linux (и Android): Значение проседает до 512.
  • macOS: Держит планку в районе 2048.

Как это видит антифрод?

Антифрод видит, что в первом пакете вы представились как Windows (синтетический отпечаток), но дальше ваше соединение ведет себя как типичный Linux (потому что прокси-сервер, скорее всего, поднят на Linux).

Грубо говоря: На входе вы показываете паспорт гражданина США, но говорите с рязанским акцентом.

Наш эксперимент

Мы написали специальный тестовый стенд, чтобы наглядно показать эту уязвимость.

Инструмент для проверки: zl0ywindowcheck.top
(Если сайт недоступен — напишите нам, поднимем).

Суть теста:
Мы не просто смотрим на заголовок, мы «прогоняем» через соединение 100 КБ мусорной информации. Этого достаточно, чтобы заставить TCP-стек показать свое истинное лицо.

Результаты проверок популярных сервисов (Doppelganger, Detect Expert, Киберёж):
Мы взяли прокси, где заявлена подмена p0f под Windows.
  1. Первый пакет: Все красиво. Множитель 8, отпечаток Windows, BrowserLeaks доволен.
  2. Глубокий анализ: Пропускаем трафик, смотрим график изменения Window Size.
  3. Итог: Поведение чистого Linux (значения около 512).
На скринах в видео видно: заявлена Windows 10/11, а ведет себя соединение как Ubuntu. Любой продвинутый антифрод это детектит моментально.

Как антифрод-системы это вычисляют?

Им не нужно делать ничего сложного. Достаточно заставить ваш браузер загрузить картинку весом в 10-50 КБ или выполнить простейший скрипт.

Вот пример кода, который может встроить любой сайт для детекта:


JavaScript:
    function sendRandomData() {
        const size = 100 * 1024; // 100 KB (для теста хватит даже 10 KB)
        const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
        let result = '';
        // Генерируем мусорную строку
        for (let i = 0; i < size; i++) {
            result += chars.charAt(Math.floor(Math.random() * chars.length));
        }
        // Отправляем на сервер, сервер анализирует пакеты
        fetch('/analyze-tcp', {
            method: 'POST',
            body: result
        });
    }
    sendRandomData();
Как только этот объем данных улетает, сервер получает достаточно пакетов для анализа динамики Window Size. Если вы сидите на Linux-сервере (прокси), но маскируетесь под Windows — вас раскроют.

Как проверить самому?

Я не прошу верить мне на слово. Проверьте сами:

  1. Wireshark: Откройте анализатор пакетов на своем ПК (без VPN/прокси). Зайдите на любой сайт. Посмотрите, как меняется Window Size у вашей реальной ОС.
  2. Разные прокси: Возьмите прокси, которые не подменяют отпечаток (например, NSOCKS, где нет кнопки смены p0f). Если это Android-прокси, он будет вести себя как Linux/Android от начала и до конца. Это честно и не вызывает подозрений в «шизофрении» соединения.

Решение от нашей команды

Мы понимаем, что текущая ситуация на рынке прокси — это тупик. «Фасадные» подмены больше не работают против серьезных ребят.

Поэтому мы разрабатываем собственный софт на уровне ядра.
Мы написали свой сетевой стек, который позволяет контролировать соединение полностью, а не только первый пакет.

  • Нужен Windows? Мы будем эмулировать поведение Windows (1024) на протяжении всей сессии.
  • Нужен Mac? Будет 2048.

Мы можем тонко управлять этим процессом. Сейчас софт проходит тестирование. Мы готовы сотрудничать с прокси-мейкерами и предоставлять наше решение, чтобы вы могли давать клиентам действительно качественный продукт.

Ранее я уже упоминал эту тему вскользь в статье про Цифровых Двойников, советую ознакомиться.

Всех обнял, приподнял. Всем хорошего вечера и чистого коннекта!
 

Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 645
Благодарностей
945
Баллы
113
Ценник будет моё почтение)
 

i.stasik

Client
Регистрация
25.09.2023
Сообщения
394
Благодарностей
90
Баллы
28
интересно будет потестить на гугле ))
 
  • Спасибо
Реакции: alex1988

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)