Skip to content

Latest commit

 

History

History
212 lines (166 loc) · 14.8 KB

File metadata and controls

212 lines (166 loc) · 14.8 KB

WebGhost – Traffic Imitator

WebGhost — это программа (утилита), которая создаёт многостраничный корпоративный сайт и имитирует вокруг него реалистичную посещаемость.

Зачем это нужно: чтобы ваш HTTPS-прокси трафик было невозможно отличить от обычного корпоративного сайта. WebGhost подходит для маскировки прокси-серверов, работающих через HTTPS на 443 порту: NaiveProxy, Hysteria (с HTTP-маскировкой), Xray (VLESS+XTLS), Trojan и других.

✨ Что делает WebGhost

  • Генерирует полноценный сайт — блог, раздел «О компании», контакты, карта сайта, robots.txt, sitemap.xml и все необходимые ресурсы (CSS, JS, изображения, шрифты)
  • Имитирует реальных посетителей — разные браузеры (Chrome, Firefox, Safari, Edge), паузы чтения, переходы по ссылкам, отправка форм, UTM-метки
  • Добавляет фоновый шум — запросы от поисковых ботов, сканеров безопасности, попытки доступа к несуществующим страницам
  • Поддерживает взаимную имитацию — два сервера могут генерировать трафик друг для друга
  • Обновляется одной командойwebghost update

🎨 Уникальный дизайн для каждого домена

WebGhost не создаёт одинаковые сайты. При генерации используется доменное имя как источник энтропии, поэтому каждый домен получает:

  • Уникальный логотип — название компании в верхнем регистре
  • Индивидуальную цветовую схему — оттенки акцентного цвета, градиенты и прозрачности слегка отличаются от сайта к сайту
  • Персональные контакты — email и телефон привязаны к вашему домену

Визуально все сайты выглядят в едином корпоративном стиле, но повторная установка на другом домене создаст похожий, но не идентичный дизайн. Это усложняет создание сигнатур DPI на основе внешнего вида сайта.

🚀 Быстрая установка

⚠️ Замените exmple.com на свой собственный домен.

wget https://github.com/krdn-dev/webghost/releases/latest/download/webghost-linux-amd64 -O /usr/local/bin/webghost
chmod +x /usr/local/bin/webghost
webghost example.com install

или

wget -O /usr/local/bin/webghost https://github.com/krdn-dev/webghost/releases/latest/download/webghost-linux-amd64 && chmod +x /usr/local/bin/webghost && webghost example.com install

📲 Примеры использования

Базовая установка

webghost example.com install

После выполнения:

  • В /var/www/html сгенерируется полноценный корпоративный сайт.
  • Настроится systemd‑таймер, запускающий имитацию трафика.
  • Сразу выполнится первый прогон симуляции, чтобы лог начал наполняться.

Установка с контактной формой

webghost example.com install --post

Тихий режим

webghost example.com install --quiet
webghost example.com install --post --quiet

Этот режим полезен при автоматической установке через скрипты – консоль остаётся чистой, а WebGhost продолжает работать в фоне.

Взаимная имитация с другим сервером

webghost my-site.com partner-site.com install

WebGhost будет слать запросы к my-site.com, а также к partner-site.com, имитируя взаимные визиты.

Просмотр логов

cat /var/log/webghost-activity.log

В логе вы увидите посещения страниц (HTTP 200, 304, 404), загрузку ресурсов, смену User-Agent и фоновый шум, отвлечения, аналитика Google и т.д.

Удаление только таймера

webghost uninstall

Таймер и скрипт автоматического запуска будут удалены. Сайт останется нетронутым.

Полное удаление

webghost uninstall-all

Удаляются: systemd‑таймер, сгенерированный сайт /var/www/html, бинарник /usr/local/bin/webghost и лог‑файл /var/log/webghost-activity.log.

Обновление до последней версии

webghost update

📬 Контактная форма (опционально)

По умолчанию, без флага --post, WebGhost не добавляет форму обратной связи на главную страницу.

Почему: POST-запросы обрабатывает не WebGhost, а веб-сервер (Caddy, Nginx, Apache). WebGhost генерирует статические HTML-страницы, но не может управлять тем, как веб-сервер отвечает на POST-запросы. Если форма есть, а веб-сервер не настроен на приём POST, он вернёт ошибку 405 Method Not Allowed. Любые ошибки в логах привлекают внимание DPI и могут демаскировать прокси-трафик. Поэтому по умолчанию форма отключена — WebGhost не должен ничего создавать, что могло бы сгенерировать подозрительный ответ сервера.

Если вы хотите добавить работающую форму, используйте флаг --post

webghost example.com install --post 

и дополнительно настройте веб-сервер (примеры настройки приведены ниже).

Что произойдёт:

  • На главной странице появится форма с полями: имя, email, сообщение
  • Будет создана страница благодарности /contact/thank-you.html
  • POST-запросы к /contact будут возвращать 302 с редиректом на страницу благодарности

Требования к веб-серверу:

Для корректной работы формы необходимо настроить ваш веб-сервер (Caddy, Nginx) на обработку POST-запросов к /contact с редиректом на /contact/thank-you.html.

Пример настройки для Caddy:

@post method POST
handle @post {
    handle /contact* {
        header Location "/contact/thank-you.html"
        respond "" 302
    }
}

Пример настройки для Nginx:

location /contact {
    if ($request_method = POST) {
        return 302 /contact/thank-you.html;
    }
    try_files $uri $uri/ =404;
}

❓ Часто задаваемые вопросы

Можно ли узнать подробности о сигнатурах, которые WebGhost использует для имитации трафика?

Эта информация намеренно не раскрывается. Чем меньше деталей о внутренних алгоритмах и шаблонах попадает в открытый доступ, тем сложнее разработчикам систем глубокого анализа трафика (DPI) разработать контрмеры. Разработчики на «той стороне» тоже читают документацию, поэтому самые эффективные настройки остаются внутри кода.

А что, DPI не видит, что трафик идёт с локального сервера, а не от реальных посетителей из интернета?

DPI провайдера видит общий поток данных, проходящий через сервер. Он анализирует метаданные (IP, объём, тайминги), но не всегда может определить точный источник запроса внутри сети. WebGhost смешивает имитированный трафик с реальным, усложняя выделение настоящих прокси-соединений на общем фоне. Однако некоторые продвинутые DPI могут анализировать задержки или сетевые потоки (NetFlow) и заметить, что часть запросов исходит с локального хоста. Именно поэтому мы рекомендуем использовать WebGhost в режиме взаимной имитации — когда два сервера обмениваются трафиком, создавая двустороннюю картину, которую значительно сложнее отличить от реальной.

Как распределяется имитация трафика в разных режимах?

WebGhost поддерживает два режима работы:

  • Локальный режим — имитация посетителей только на вашем сервере. Используется по умолчанию, создаёт полноценную картину активного сайта.

  • Режим взаимной имитации — оба сервера обмениваются трафиком. Ваш сервер создаёт облегчённую имитацию для себя и полноценную для удалённого. Это делает трафик двусторонним и ещё более естественным для DPI.

Точные параметры (количество сессий, вероятность всплесков) не раскрываются по соображениям безопасности — они являются частью стратегии обхода DPI.

Как убедиться, что WebGhost работает и имитация трафика активна?

Вся активность записывается в лог /var/log/webghost-activity.log. Чтобы просмотреть накопленные записи, выполните команду в терминале: cat /var/log/webghost-activity.log.

В логе вы увидите: посещения страниц (HTTP 200), запросы к ресурсам (favicon.ico, style.css, картинки), смену User‑Agent и эмуляцию разных браузеров, фоновый шум (редкие запросы к несуществующим страницам) и многое другое.

Обязательно ли на удалённом сервере должен стоять WebGhost?

Для максимальной реалистичности — да. WebGhost при взаимной имитации запрашивает те же страницы, которые генерирует при setup-site. Если на удалённом сервере нет такого сайта, он будет отвечать ошибками 404, что неестественно для корпоративного портала и может привлечь внимание DPI.

Нужен ли веб‑сервер для работы WebGhost?

Да, веб‑сервер обязателен. WebGhost создаёт сайт и имитирует трафик, но сам не обрабатывает входящие HTTPS‑запросы. Веб‑сервер (Caddy, Nginx и т.д.) должен быть установлен и настроен отдельно, чтобы сайт был доступен из интернета. Если вы используете NaiveProxy Manager, веб‑сервер устанавливается автоматически.

🛠️ Системные требования

  • Linux (amd64 или arm64)
  • Домен, привязанный к серверу (A-запись должна указывать на ваш IP)
  • Доступ к порту 443 (HTTPS)
  • Права root (для записи в /var/www/html и /usr/local/bin)
  • Работающий веб‑сервер, отвечающий по HTTPS на вашем домене (Caddy, Nginx и т.д.)

📄 Лицензия

Проект распространяется под проприетарной лицензией License
Все права защищены.

Разрешено:

  • Свободное использование бинарника в личных и коммерческих целях
  • Копирование и распространение бинарника с сохранением авторства

Запрещено:

  • Модификация, декомпиляция и reverse engineering
  • Публикация исходного кода или его производных

💰 Поддержать проект

Если хотите поддержать развитие проекта, можете отправить небольшое пожертвование

Bitcoin bc1p4ttkpfrgzpm7nyymyzdgyd2y6z04s62nxpygk38yylcp3t47m98qwnuhen

❤️ Спасибо за поддержку!
⭐ Поставьте звезду репозиторию, если скрипт вам помог!