May 7

MORI VPN. Спасение или утка?

Долго думал, делать этот разбор или нет. Наркотрафик меня не особо интересует, но так как Мориарти — блогер с миллионной аудиторией, я просто не мог пройти мимо.
Триггером сработал ролик про РКН, который мне показался уж слишком плоским и заказным. А ведь так все хорошо начиналось, а сейчас что? Царь хороший — бояре плохие, импортозамещение и загнивающий запад. Это просто уныло!

Перед тем как приступить, сразу хочу зафиксировать, что сетевые настройки VPN MORI действительно защищены, а посему — стандартные инструменты сетевого сканирования не дали НИЧЕГО!

Я же парень упертый и полез в код, но начнем с самого начала. После перехода в Telegram-бот MORI VPN нас встречает политика конфиденциальности, в которой четко написано, что сервис собирает о вас данные.

Обратите внимание на пункт 1.2:

Из данного пункта сразу становится понятно, что MORI VPN ведет логи.

Дальше — пункт 2.3:

Если вам тоже странно видеть, как "наркодилер" собирает и обрабатывает данные в соответствии с законодательством РФ, то вы не одиноки в своем недоумении.

Ладно, скачиваем приложение. Не буду скатываться в обзор всех вкладок, но скажу, что выглядит действительно солидно — над фронтендом работали профессионалы. Этот проект явно серьезно финансируется и не выглядит как любительский пробный продукт. Однако, меня интересует вкладка пользователя.

А вот тут уже написано "Zero-Logs политика". Стоимость ежемесячной подписки в 250 рублей, при затратах на фронт — явно убыточна. Можно было бы сослаться на проявление альтруизма, если бы не предыдущий скам-проект Мориарти, который был направлен исключительно на получение прибыли.

Если коррелировать частоту выхода видео на канале "Мориарти" и его преемника "BAZA", то напрашивается вопрос, не происходила ли передача проектов в новые руки в период многомесячного простоя?

Думаю, код скажет нам больше, поэтому сразу открываю config.json:

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

Переходим к приему трафика от приложений:

Казалось бы, локальный порт, значит безопасно, но есть нюансы. Например "auth": "noauth", это значит, что любой процесс на компьютере может использовать 10808 порт как прокси без подтверждения, но это мелочь, ведь "sniffing": {"enabled": false} — такие запросы могут уйти напрямую, минуя тоннель, раскрывая провайдеру или локальной сети реальные DNS-запросы. Эта утечка обходит шифрование и пускает трафик по обычному IP-маршруту, про что я уже говорил в своем ролике по безопасности.

Движемся дальше и пытаемся понять, куда идет трафик:

Это главная часть конфига, сразу видим единственный российский IP 83.166.239.100, который является главным, через него проходит весь трафик. Примечательно, что домен не подменяется, а используется свой, конечно же российский "serverName": "api.chrysalisservice.store", "flow": "" — пустой, что также ослабляет обфускацию, также выставлен рандомный фингерпринт, что тоже ослабляет вашу маскировку.

Все вышеперечисленные косяки — это детский лепет, ведь админ отключил шифрование VLESS "encryption": "none", но самое опасное, что на MORI VPN использует в своем конфиге следующую строку "allowInsecure": true, которая полностью игнорирует проверку сертификатов и позволяет проводить атаки типа MITM.

А что? Очень удобно! Сначала ты ослабляешь VLESS, а затем перекладываешь шифрование на транспортный уровень и отключаешь проверку сертификатов, чтобы трафик перехватывался ТСПУ. При нормальной проверке сертификата клиент обнаружил бы подмену и разорвал соединение, но с "allowInsecure" : true — этого не происходит и трафик пользователя читается в открытом виде.

Хочу напомнить, что сейчас мы разбираем только config.json. Тут нет интересных DNS-запросов, вместо этого указаны Google DNS 8.8.8.8 и 8.8.4.4. Однако, реальная обработка DNS-трафика пользователя происходит в tun.json, к которому мы перейдем позже.

Сейчас же предлагаю обратить внимание на статистический сбор данных:

"statsUserUplink": true,"statsUserDownlink": true, "statsOutboundUplink": true и "statsOutboundDownlink": true — отслеживают объем входящего и исходящего трафика по каждому пользователю, что позволяет определить, когда вы обычно выходите в сеть, в какое время активны и другие данные, которые затем подвергаются корреляции.

Видите значение 0.0.0.0? Оно указывает с каких адресов принимать запросы к API, в нашем случае — с любых. Другими словами, API нарочно открыт наружу, и любой внешний хост может опросить StatsService и получить статистику трафика пользователей. Можно подумать, что это стандартные настройки, но я вижу тут многоуровневую систему сбора информации.

Переходим к tun.json и сразу натыкаемся на блок с обещанной DNS-архитектурой:

Нас сразу встречает публичный DNS-сервис Alibaba Group, который любезно хранит логи запросов для китайских регуляторов, которые идут по незашифрованному UDP. Второй же сервер Alibaba уже с шифрованием, но уходит туда же.

В конфиге Мориарти мы также видим CloudFlare, от которого осталось только название, ведь админы выключили динамические IP и пустили трафик через Москву.

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

Видно, что любой IP-запрос сначала смотрит в локальную таблицу. В режиме Global — DNS-запросы идут через московский прокси, а в режиме Direct напрямую через китайский DNS. Дальше видно, что заблокировали HTTPS и SVCB записи, которые нужны для ECH. Примечательно, что запросы к Google идут через московские адреса, как и любой зарубежный трафик, который не попадает под правила, исключение — китайские адреса.

Система выстроена таким образом, чтобы пропускать китайский и российский трафик напрямую, а западный возвращать обратно в Россию.

Дальше продолжать не буду, так как конфиги отражают то, что мы уже выяснили, а именно:

  1. Трафик логируется и акцентирует свое внимание на зарубежных ресурсах, которые мифическим образом всегда возвращаются в Россию.
  2. Шифрование не только ослаблено, но и отсутствует в большинстве случаев.
  3. Фронтенд стоит дорого, а бэкенд не содержит случайных ошибок, что говорит о технической осведомленности админов.
  4. В конфигурациях все идет через единый центральный сервер в Москве с сомнительной историей.
  5. Были обнаружены точки входа, которые позволяют вмешиваться в соединение пользователя удаленно.

В заключение скажу, что лично для меня проект явно имеет государственные корни. Для чего это было сделано? Ответ прост — ты делаешь кумиром молодежи человека, который якобы против системы и все это в изумительном качестве. На выходе мы получаем слежку за "неблагонадежным" слоем населения в глазах государства. MORI VPN — это самый опасный проект из тех, которые я разбирал, ведь его организовывали не дураки, а люди, которые обладают огромными ресурсами и компетенцией.

Поддержи автора - ТЫК

Переходи в Telegram канал - ТЫК