







РЕШАЮ ВСЕ ПРОБЛЕМЫ С ХАМАЧИ КАК ПРАВИЛЬНО НАСТРОИТЬ Hamachi КАК ИГРАТЬ В МАЙНКРАФТ ПО СЕТИ С ДРУГОМ
При попытке просмотра в реальном времени устройства Hikvision, которое поддерживает доступ к платформе Hik-Connect, появляется сообщение об ошибке «поток зашифрован».
[Причина]
Включена функция шифрования потока.
[Решение]
Вы должны ввести пароль по следующему пути в iVMS-4200 и перезапустить режим просмотра в реальном времени:
- Управление устройствами -> Группа -> Выберите устройство -> Изменить -> Введите ключ
- На веб-интерфейсе устройства:
- Настройки -> Локальные -> Ключ шифрования -> Введите ключ
- Ключ шифрования — это код подтверждения устройства, который вы можете найти на устройстве. Если устройство не имеет кода подтверждения, пароль по умолчанию — ABCDEF.
Вы можете изменить пароль или отключить функцию шифрования потока через веб-клиент Ezviz или мобильное приложение Hik-Connect.
Как отключить функцию шифрования потока через учетную запись Ezviz:
- посетите сайт www.ezvizlife.com и войдите в свою учетную запись
- Перейдите по следующему пути: Управление системой-> Управление устройствами-> Мое устройство. Перейдите в настройки устройства и отключите шифрование потока.
- Код для отключения функции будет отправлен на ваш телефон или по электронной почте.
- Введите полученный код, чтобы отключить шифрование потока.
Как отключить функцию шифрования потока через приложение Hik-Connect либо Ezviz:
- Запустите приложение Hik-Connect и войдите в свою учетную запись.
- Ваше устройство-> щелкните на устройстве-> Конфигурация-> отключить шифрование потока.
- Код для отключения функции будет отправлен на ваш телефон или по электронной почте.
- Введите полученный код, чтобы отключить шифрование потока.
Источник: adminotes.ru
КАК зайти на ХАЙПИКСЕЛЬ через TLAUNCHER
Разбор шифрования в Minecraft
Привет. Знаете про Minecraft? Да-да это та самая нашумевшая игра из 2014 про кубики, дракона и злых школьников, которые объединились в невероятной амальгаме. В игре есть как singleplayer, так и multiplayer. Но что шифровать в одиночке? (Хотя защитить свою карту паролем, чтобы негодяи не убили вашего верного пса, довольно заманчива).
Сегодня я расскажу про то, как работает шифрование в многопользовательском режиме. Но сначала нужно определиться с инструментарием.
Вот что я буду использовать:
- MCWP MITM прокси для исследования протокола майнкрафт.
- yggdrasil-server Сервер авторизации, похожий на тот что использует mojang для лицензионных аккаунтов. И да, все команды приведены для Windows.
Протокол майнкрафт
Мультиплеер майнкрафт построен на клиент-серверной архитектуре поверх tcp. По официальным данным начиная с версии 1 (до этого были еще альфа и бета) сетевая подсистема игры построена на фреймворке Netty (Java).
Если сильно упростить, то роли клиента и сервера сведены к выполнению в цикле этих действий:
Для клиента
- Подключается к серверу
- Подтверждает свой юзернейм (если сервер отправит Encryption Request)
- Загружает и рисует карту
- Перемещается по карте и отправляет свою позицию
- Взаимодействует с остальными миром и отправляет события на сервер
- Получает и проигрывает события от сервера
Для сервера
- Принимает игроков
- Проверяет их юзернеймы (если online-mode: true)
- Генерирует карту и отправляет клиентам
- Получает события и позицию от игроков и передает другим игрокам
Как устроены аккаунты в Minecraft
Майнкрафт — платная игра. И основной причиной использования криптографии в ней была именно аутентификация, то есть определение лицензионных игроков и подтверждение их доступа. А шифрование было уже бонусом.
И хотя игра может работать без лицензии (изначально этот режим создавался для игры без доступа к сети интернет, когда нельзя проверить подлинность игрока, и называется в файлах конфигурации online-mode: false) без аутентификации пользователя шифрование не включается.
Кстати, сам Notch (создатель игры) говорил про пиратов так: «Качайте пиратку. Если она все также будет нравиться Вам в будущем, когда Вы сможете позволить ее себе, тогда и купите. Также не забудьте почувствовать себя плохо;)».
Лицензионной копией считается та, которая была куплена на сайте разработчика и имеет аккаунт Mojang (или Microsoft). А также привязанный к этому аккаунту uuid. UUID — это уникальный идентификатор каждого из игроков майнкрафт. Он не меняется даже после смены никнейма в игре.
Процесс обмена информацией с реестром аккаунтов (сервером аутентификации и авторизации) начинается еще задолго до подключения к серверу.
Рассмотрим поэтапно:
- Игрок заходит в лаунчер(программа для запуска игры)
- Игрок вводит пароль и логин от аккаунта
- Лаунчер отправляет их на сервер и если они верны получает токен
- Лаунчер хранит и обновляет токен при каждом входе в игру
Могу я украсть ваш аккаунт?
Уже заметили? Лаунчер отправляет логин и пароль игрока на сервер. Да, через https, но что нам мешает узнать логин и пароль подменив сервер авторизации? Так и поступим.
Разворачиваем yggdrasil-server:
Потребуется Python 3.8+
// Клонируем репозиторий git clone https://gitlab.com/seeklay/yggdrasil-server.git cd yggdrasil-server/
// Разрешаем и устанавливаем зависимости python3 -m pip install -r requirements.txt
// Запускаем свой сервер авторизации + сервер сессий sanic —cert x509/fullchain.crt —key x509/cert.key -d -p 443 server.app
Теперь нужно заставить лаунчер жертвы доверять нашему tls сертификату.
Раньше, лаунчер был, как и сама игра просто .jar файлом и заполучить его доверие можно было так же просто, как и клиента игры, но теперь лаунчер это нативная .exe программа которая использует корневые сертификаты системы. Углубляться в то, как креативно можно заставить жертву по нажимать пару неизвестных кнопок не будем, но посчитаем что этот этап уже пройден. Тогда остается направить запросы на наш сервер. Например, изменя ip домена authserver.mojang.com на ip собственного сервера в файле hosts.
Теперь, когда жертва захочет зайти в игру, она разлогинится в лаунчере, так как сессия не зарегистрирована на нашем сервере. И клиенту придется ввести логин и пароль от его аккаунта. Когда это произойдет, в консоли сервера авторизации мы увидим это:
[DEBUG] AuthenticateRequest( agent=AuthenticateRequestAgent(name=’Minecraft’, version=’1′), username=’habr’, password=’newjersey’, clientToken=’4feb4d1fe82446d2aa4eb3d20f8c9ffd’, requestUser=’true’) [INFO] attempt to authenticate as habr but user not exists
В дебаг логе видно данные учетной записи. Атака удалась. А игрок так и не смог войти в лаунчер, так как такого пользователя на нашем сервере не было.
Да, это выглядит интересно, но как заставить игрока установить корневой сертификат и отредактировать hosts?
Игроки майнкрафт в основном — дети и обмануть их проще всего. Хочешь скачать новый мод на слона в майнкрафт? Скачай наш .exe нажми два раза и при запросе прав администратора нажми — да, и все слон — твой, а точнее кот в мешке.
Но да, это по сути глупость ведь попадя на компьютер пользователя и получив права администратора можно сделать гораздо ‘больше’.
Я никого не призываю кого-либо взламывать или обманывать таким или любым другим способом. Вся ответственность за интерпретацию этого текста как побуждения к действию лежит на вас.
Могу я узнать местоположение ваших алмазов?
Хорошо, мы узнали, что можно подменить сервер авторизации. Но что, если подменить сервер аутентификации (сервер сессий) который отвечает за подтверждение того, что игрок с конкретным uuid и никнеймом входит на сервер?
Для этого потребуется локальный игровой сервер, но его установку я показывать не буду. Также потребуется лицензионный аккаунт (ну да), или «локальный» на yggdrasil-server.
Чтобы увидеть, какими пакетами обмениваются сервер и клиент, воспользуемся mcwp.
Python 3.7+
// Устанавливаем MCRP python3 -m pip install MCRP
// Запускаем MTIM прокси mcwp -v -c examplesconf_blacklist.yaml
Заходим на порт прокси, и видим в консоли такую картину:
Что мы видим? Сервер посылает запрос на включение шифрования, и клиент на него отвечает, а затем они оба включают симметричное шифрование AES.
После включения шифрования mcwp уже не показывает дальнейший обмен пакетами, так как не может их расшифровать, ведь не знает ключ.
Но так у меня нет лицензионного аккаунта майнкрафт, и аккаунт m7 зарегистрирован локально на сервере yggdrasil-server и сервер тоже использует этот сервер аутентификации, мы можем расшифровать это соединение загрузив в mcwp модуль для локальной дешифровки.
Попробуем еще раз:
// Запускаем с модулем дешифровки (требуется версия mcwp >= 0.1.7-pre1) mcwp -c examplesconf_blacklist.yaml -v -d md -ll
И сразу видим отличия в логе инициализации:
[02/24/2023 02:22:30 PM] [INFO] MCRP: Running MCRP v0.1.7-pre1 (cubelib version 1.0.4-pre1) [02/24/2023 02:22:30 PM] [INFO] MCRP: Proxying config is: 127.0.0.1:25565 -> 127.0.0.1:25575 [02/24/2023 02:22:30 PM] [INFO] MCRP: Using protocol decryptor: Yggdrasil-Server-DecMod/v0.1 [02/24/2023 02:22:30 PM] [DEBUG] MCRP/CRYPTO: Generating 1024 RSA key. [02/24/2023 02:22:30 PM] [INFO] MCRP: Registred direct handlers list[1]: [02/24/2023 02:22:30 PM] [INFO] MCRP: [02/24/2023 02:22:31 PM] [INFO] MCRP: Registred relative handlers list[0]: [02/24/2023 02:22:31 PM] [DEBUG] MCRP: Entering mainloop [02/24/2023 02:22:31 PM] [INFO] MCRP: Waiting for client connection.
Видно что используется дешифратор протокола и был сгенирирован ключ RSA.
Подключаемся еще раз и смотрим в консоль:
Теперь мы видим все пакеты, которые передаются между клиентом и сервером (локальным сервером, который использует наш ‘игрушечный’ сервер авторизации).
Видя все пакеты, теперь мы можем отслеживать местоположение игрока и узнать где его дом. (ну и забрать алмазы конечно)
Разбор шифрования в Minecraft
Как работает шифрование в майнкрафт и как его можно расшифровать.
У протокола майнкрафт есть 3 состояния: Рукопожатие, Вход в игру, Игра.
Рассмотрим поближе что и кому отсылают сервер и клиент во время входа в игру:
- Client -> Server: ClassicLogin.LoginStart(Username=’m7′) # Клиент передает юзернейм, с которым хочет войти
- Client
- Client -> SessionServer: SessionJoin(accessToken: str, selectedProfile: dict, serverId: str) # Клиент передает на сервер сессий информацию о сервере к которому собирается подключится.
Клиент фактически говорит: у меня есть действительный токен 123 связанный с юзернеймом m7 и я хочу зайти на сервер с sha1(публичным ключем 456 и общим секретом 789)
- Client -> Server: ClassicLogin.EncryptionResponse(SharedSecret=b», VerifyToken=b») Клиент отвечает зашифрованными публичным ключем сервера, симметричным ключем и токеном проверки
Разбор дешифрования
- Когда сервер запрашивает у клиента авторизацию, он посылает ему свой публичный ключ RSA и данные проверки, которые клиент должен зашифровать ключем сервера.
- Когда прокси видит этот пакет, он подменяет ключ и/или данные проверки на собственные. Это нужно, что-бы когда клиент ответит общим симметричным ключем, зашифрованным публичным ключем сервера, мы могли его расшифровать и сохранить для расшифровки последющих сообщений.
- Затем клиент отвечает общим симметричным ключем и рандомными данными, которые отправил сервер, но зашифрованными публичным ключем сервера. Но перед тем как ответить, клиент делает запрос на sessionserver.mojang.com и отправляет туда свой токен, полученный при авторизации, и хеш sha1(shared_secret + public_key). Это нужно для защиты от человека по середине, который подменит публичный ключ.
- Когда прокси получает ответ от клиента, он обращается к серверу авторизации и дает команду подменить sha1(shared_secret + proxy_public_key) на sha1(shared_secret + server_public_key).
- Когда сервер получает ответ от прокси, он обращается к серверу авторизации по адресу session/minecraft/hasJoined?serverId=-ca65db73b3f1b81bdc337f7cc70b433703a0e98&username=m7 с serverId, равному полученному от клиента общему секрету и ключу сервера, но так как прокси его подменил, у сервера не возникает вопросов, и шифрование устанавливается.
Еще по теме (англ)
- https://wiki.vg/Protocol_Encryption#Authentication
- https://wiki.vg/Legacy_Mojang_Authentication#Authenticate
Источник: savepearlharbor.com
Решаем проблему с туннелем в Хамачи
Если у вас имеются проблемы с туннелем в Hamachi, данная инструкция поможет их исправить. Это может служить ощутимым препятствием в соединении с вашими друзьями, которые также участвуют в сети. При этом прямой канал (туннель) между всеми участниками сети не устанавливается. Причиной является блокировка какой-либо стороны, неверная клиентская настройка с подключением блокирующих (антивирусных) средств.
Решение проблемы с туннелем в Hamachi
Для начала настройте параметры адаптера Hamachi в сети
Создайте щелчок на панели задач по значку сети и нажмите на «Сетевые параметры». В отношении Wi-Fi настройки будут несколько иными.
Перед вами откроется окно, в котором нужно будет нажать на надпись «Настройка параметров адаптера».
После выбора адаптера «Hamachi» нужно будет щелкнуть по нему правой кнопкой мыши, после чего открыть «Свойства».
В данном окне потребуется выбрать «IP версии 4», как на скриншоте, после чего осуществить нажатие на кнопку «Свойства». Здесь потребуется нажать на кнопку «Дополнительно».
Обратите внимание параметры, представленные дополнительно, и удалите шлюз, который прописан. Для этого следует выбрать шлюз, после чего нажать на кнопку «Удалить». В метрике интерфейса прописывается «10» и нажимается «ОК».
Вышеперечисленных действий достаточно для устранения проблем.
Если программа так и не исчезнет, потребуется открыть окно с настройками при помощи меню «Система», затем «Параметры» и «Параметры». Сжатие и шифрование маркируется значением «любой».
Далее потребуется открыть «Дополнительные настройки»:
Перед вами откроется список, где в секции под названием «Подключение к серверу» потребуется сделать выбор опции «Использовать прокси-сервер». Данную опцию следует отключить и установить переключатель на значение «Нет».
Секция «Соединения с одноранговым узлом» требует переключения опции «Включить разрешение имён по протоколу mDNS» в режим «Да». Значение, называемое «Разрешить всё» предназначается для опции «Фильтрация трафика».
Значение 2 следует установить в секции под названием «Присутствие в сети» в рамках акции «Включить», а затем «Да». По окончания этих действия нужно нажать кнопку «ОК».
После того, как вы осуществите все вышеприведенные настройки, потребуется перезапустить Hamachi, нажав на кнопку включения.
Создание прямого туннеля Hamachi может быть помехой и ошибкой под названием «Статус VPN».
Для исправления следует ознакомиться с определённой инструкцией.
Следует отключить антивирус и брандмауэр Windows
после чего перезапустить Hamachi. При разрешении проблемы потребуется добавить систему в исключения брандмауэра (firewall) или антивирусного ПО.
Если проблема по-прежнему не разрешена и не помогает ни один из выше приведённых способов, а Hamachi упорно продолжает сообщать о проблемах с туннелем, поделитесь своим мнением.
Источник: hamachivpn.ru