Определение IP пользователей Viber и другие векторы атак на меcсенджер.

С кaждым днем все больше владельцев смартфонов отдают приоритет мобильным мессенджерам, популярный представитель которых — Viber, позволяющий удобно объединить переписку на разных устройствах. Неудивительно, что исследованию их безопасности в последнее время уделяется пристальное внимание. Думаешь, Viber полностью надежен и нeспособен тебя подвести? Ну что ж, давай посмотрим, насколько это соответствует истине.

Содержаниескрыть1Исследование уязвимостей Viber2Особенности Windows-клиента Viber2.1NTLM-аутентификация3Эксплуатация3.1IP disclosure3.2Redirect to LAN3.3LAN scan3.4NTLM hashjacking4Вместо заключения

maxresdefault-1.jpg

Исследование уязвимостей Viber

Не так давно стало известно об уязвимости в iMessage. Как обнаружил независимый исследователь Росс Маккиллоп (Ross McKillop), предварительный просмотр URL раскрывает данные об IP-адресе пользователя, версии ОС и другие данные об устройстве. Причина заключалась в том, что при построении превьюшки запросы отправлялись непосредственно с устройства. Таким образом, когда iMessage запpашивал данные о каком-либо сайте, то раскрывал адрес пользователя и сведения о его устройстве.

[ad name=»Responbl»]

Более корректная архитектура мессенджера предполагает предварительное кеширование контента на своих серверах и дальнейшую загрузку уже оттуда, как это реализовано, например, в Facebook, Twitter и Skype. Давай разберемся, как строится preview по URL в Viber и какие последствия может иметь маленький недочет в проектировании ПО.

Для начала просто отправим сообщение, содержащее корректный URL картинки, размещенной на нашем сервере, нaпример http://host/img.jpg, и посмотрим логи.

Как видим, iMessage не был исключением, и Viber аналогично скомпрометировал IP-адрес получателя сообщения (reciever_ip). Но что будет, если под видом картинки мы попробуем выполнить redirect получателя в произвольном направлении? Вернем код ответа сервера 301 и в HTTP-заголовках укажем поле Location: http://somehost.ru.

Лог отличается от предыдущего отсутствием GET-запроcов от отправителя и получателя сообщения. С чем это может быть связано? Попробуем в ответ на HEAD вернуть настоящий заголовок картинки, а для GET выполнить перенаправление:

На этот раз Viber успешно перенаправил обоих участников переписки — это говорит о том, что Viber выполняет верификацию картинки с помощью начального HEAD-запроса.

А теперь давай проведем эксперимент с cookie. Разместим на сервере простой скрипт для генерации картинки со значением из cookie, увеличивая его на единицу при каждом запросе:

В .htaccess дoбавим записи:

Отправим два сообщения со ссылками на наш хост, например:

и

1484816675_9546_cookie.jpg
Эксперимент с cookie

Как видно из скриншота, от сообщения к сообщению Viber собирает и хранит выданные ему cookies.

[ad name=»Umi 600×217″]

Особенности Windows-клиента Viber

А теперь заглянем в директорию Viber, обычно это C:UsersusernameAppDataLocalViber. Наличие файла Qt5WebEngine.dll, как и UserAgent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.6.0 Chrome/45.0.2454.101 Safari/537.36, который мы наблюдали при создании миниатюр, подсказывает, что используется Qt-модуль QtWebEngine. Надо сказать, что в большинстве Windows-версий популярных браузеров реализован механизм аутентификации с помощью NTLM, имеющий по умолчанию ограниченный список ресурсов, вход на которые выполняется автоматически.

NTLM-аутентификация

В Firefox разрешенные ресурсы задаются полем network.automatic-ntlm-auth.trusted-uris в редакторе настроек about:config. По умолчанию данный список пуст.

В Chrome и IE политика безопаснoсти в отношении NTLM-аутентификации строится на основе настроек IE (Tools > Internet Options > Security > Internet > User Authentication > Logon). По умолчанию там задан парамeтр Automatic logon only in Intranet zone, разрешающий автологин только внутри интрасети.

Интересно, а какие настройки безопаснoсти по умолчанию имеет QtWebEngine? Один из способов узнать это — создать тестовое приложeние с этим же модулем, например используя среду Qt Designer для Windows. Перенаправим GET-запросы с сервера по URI /a_1.jpg на предварительно развернутую утилиту Responder, которая реализует цепочку ответов, необходимых для входа по NTLM. Параллельно запустим WireShark для анализа пакетов. Затем, используя встраиваемый компонент на основе QtWebEngine в Qt Designer, откроем a_1.jpg и посмотрим историю запросов в WireShark.

Компонент QtWebEngine в Qt Designer

Запросы NTLM-аутентификации в WireShark

Цепочка запросов говорит об успешной работе механизма NTLM-аутентификации на произвольном интернет-ресурсе. Последний HTTP-запрос от клиента включает данные о пользователе Windows, в том числе имя пользователя и NTLMv2-хеш пароля. Сможем ли мы получить хеш пароля от Windows, отправив всего одно Viber-сообщение? Узнаем при эксплуатации…

[ad name=»Responbl»]

Рассмотрим возможные сценарии атаки, используя то, что мы знаем о Viber.

IP disclosure

Для реализации атаки достаточно HTTP-сервера с корректной картинкой. При отправке чеpез Viber сообщения со ссылкой на картинку на сервер будет выполнен GET-запрос от IP-адреса получателя сообщения.

Redirect to LAN

Предположим, нам известно, что интернет-провайдер атакуемого клиента Viber использует роутеры на GPON Home Gateway со стандартными паролями, но без выведения управления в WAN. Для перенастройки роутера необходимо выполнить вход, затем сохранить конфигурацию WAN-интерфейса. Нам уже известно, что Viber хранит cookie, благодаря чему после первого запроса аутентификации остальные выполнятся уже с идентификатором сессии. Отправим два редиректа.

Аутентификация:

и сохранение WAN-настроек:

В результате имеем открытый TR-069 на WAN-интерфейсе клиентского роутера. PHP-скрипт для реализации редиректа выглядит следующим образом:

LAN scan

Просканируем предполaгаемую локальную сеть атакуемого пользователя. Для этого нам понадобится DNS-сервер с конфигурацией зоны для network.host, содержащей следующие записи:

Перенаправив пользователя на данный поддомен, клиент будет опрашивать DNS-сервер, пока не встретит отвечающий адрес, а мы, в свою очередь, узнаем, на каком IP он остановился. Если же перенaправить пользователя на http://network.host:port, мы можем аналогичным образом узнать, имеется ли среди заданного списка IP хост с данным открытым портом.

[ad name=»MiBand2″]

NTLM hashjacking

Этот вектор атаки актуален для Windows. Для удобного разбора пакетов NTLM-аутентификации нам поможет Responder. Запустим его на сервере, затем, как в предыдущих примерах, отправим сообщение со ссылкой на картинку, выполним redirect и перенаправим получателя на web-сервер Responder’а. В ответ на GET-запрос будет запрошена аутентификация с использованием NTLM-данных:

Далее происходит обмен пакетами NTLMSSP_NEGOTIATE, NTLMSSP_CHALLENGE и NTLMSSP_AUTH, а в выводе Responder’а мы получаем данные пользователя, включая NTLMv2-хеш:

Даже если пароль надежeн, hashjacking в Viber может использоваться для Relay-атак на многочисленные сервисы с NTLM-аутентификацией.

[ad name=»Redmi»]

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

Хорошей новостью для пользователей Viber станет то, что для проведения таких атак злоумышленник должен находиться в контакт-листе атакуемого. Плохая состоит в том, что ни один из векторов не требует активных действий со стороны цели: просмотрев сообщение, пользователь уже может подвергнуть себя риску. Так что будь начеку. Предупрежден — значит вооружен.

Click to rate this post![Total: 19 Average: 3.8]

Причины возникновения ошибки

Сбой работы сервисов Вайбера из-за отсутствия Интернета.

Если не работает вайбер, возможная причина может быть ошибка подключения к серверам. Ошибка подключения к сервисам Viber чаще происходит в двух случаях: при отсутствии подключения к сети, а также при сбое работы сервера и соединения с ним. Однако на этом неполадки не заканчиваются.

Отсутствует интернет

Чаще проблема возникает из-за плохого подключения к интернету или полного отсутствия как такового. Проверить это можно, посмотрев на значок отображения сети на экране устройства:

  • на смартфоне, планшете: сверху в правом углу экрана (если от оператора сотовой связи) или в левом углу (вай-фай);
  • на компьютере на панели задач (закрепленная строка снизу экрана).

Решить проблему можно так:

  1. Перезагрузить сеть подключения. Для этого выключите вай-фай адаптер на несколько секунд и включите обратно. Или же активируйте режим полета (протяните пальцем вниз по экрану, выберите команду «Режим полета», активируйте ее на несколько секунд).
  2. Перезагрузить работу устройства. Для этого удерживайте кнопку питания до появления контекстного меню. Выберите команду «Перезагрузить».

Некорректная работа сервера

Некорректная работа сервера мэссенджера.

В этом случае приложение будет подключаться без выполнения каких-либо операций. Например, отсутствие возможности отправлять сообщения, совершать звонки.

При этом на экране иногда может появляться всплывающее окно «Сбой работы».

Решить проблему могут только разработчики.

Сбой работы мессенджера

Сервисный центр влияет также на отображение мессенджера в устройстве. Однако здесь сбой работы вызван проблемами со стороны получателя: устаревшая операционная система, некорректное соединение при обмене данными.

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

Вирус

Ошибки подключения возникают из-за наличия вируса. При этом пользователь зачастую об этом не знает.

Чтобы распознать вредоносный файл:

  1. Скачайте антивирусную программу.
  2. Установите виджет (откройте полученный файл, подтвердите запрашиваемые разрешения).
  3. В меню приложения подтвердите функцию сканирования.
  4. Если есть вирусы, выберите команду «Исправить проблему».

Проверка системы на наличие вирусов.

Проверку безопасности необходимо делать хотя бы раз в неделю. А лучше активировать автоматическое сканирование (в настройках программы).

Некоторые вирусы требуют радикальных мер – переустановки операционной системы. Для этого желательно обращаться к сотрудникам сервисных центров.

Устаревшая версия Viber

Проверять версию мессенджера можно в самом приложении или перейдя к магазину загрузок (Плей Макрет, АппСтор).

В первом варианте:

  1. Откройте мессенджер.
  2. «Дополнительно» – «Информация, вопросы и ответы».

Во втором случае:

  1. Откройте магазин загрузок.
  2. Перейдите в «Мои приложения и игры».
  3. Если в разделе «Обновления» нет Вайбера – версия новая. Если есть приложение, активируйте команду «Обновить».

Проблемы синхронизации

Синхронизация телефона с ПК вручную.

Эта проблема может возникать только на дополнительных устройствах: планшете, компьютере.

Дело в том, что постоянная связь происходит между главным аппаратом – телефоном (Андроид, Айфон) и сервером. С компьютером и планшетом связь происходит по дополнительным каналам передачи информации.

Звучит сложно, но на деле – просто. Так, если не подключена синхронизация между связанными (с одним номером Вибера) устройствами, то будет нарушаться процесс передачи данных.

Чтобы исправить ошибку самостоятельно:

  1. Зайдите в «Настройки» телефона.
  2. Найдите команду «Синхронизация». В большинстве моделей – раздел «Аккаунты» (например, телефоны Самсунг).
  3. Подтвердите команду «Автосинхронизация данных». В этом случае при наличии хорошего подключения к интернету устройство автоматически будет синхронизировать данные.
  4. Если хотите провести операцию только один раз, внизу экрана выберите команду «Синхронизировать».

Такие же действия необходимо совершить на планшете. В компьютере откройте Вайбер, чтобы приложение автоматически синхронизировало информацию.

При ошибках синхронизации проблемы будут возникать с чатами, отображением главных изображений профиля, контактами, мультимедией. Чтобы устранить ошибки, не достаточно заново установить прикольные картинки на аватарку для парней или девушек, добавить номера и прочее. Необходимо, в первую очередь, перезагрузить устройства. Если баг не исправился – удалить программу, а затем скачать ее снова.

Как вернуть подключение к сервисам

В некоторых случаях вернуть подключение можно самостоятельно. Однако в большинстве вариантов необходимо обращаться за помощью к сотрудникам службы поддержки.

Проверка состояния сети

Статус подключения к сети WiFi.

Как уже упоминалось, ошибка подключения к интернету самая распространенная. Прежде, чем паниковать, проверьте связь устройства.

На телефоне

Мобильный телефон и планшет проверяются одинаково:

  1. Сверху экрана слева – оператор сотовой связи.
  2. Сверху экрана справа – Wi-Fi.

Устранить неполадки можно:

  1. Включите режим полета. Для этого проведите пальцем сверху вниз до появления контекстного меню, подтвердите команду.
  2. Перезагрузите адаптер, выключив и включив через 5-10 секунд.

Детальная инструкция видна на видео:

На компьютере

Увидеть состояние сети можно на панели задач: обычно небольшая закрепленная снизу экрана полоса с изображением иконок открытых программ, состояния работы базовых приложений.

Состояние сети отображается тремя иконками:

  1. Вертикальные полоски (как на телефоне с оператором сотовой связи), при наличии подключенного модема.
  2. Отображение дуг от Wi-Fi.
  3. Изображение ПК при кабельном подключении интернета.

Проверка подключения к сети WiFi на компьютере.

Независимо от типа связи, если есть ошибка, на иконке появится красный крестик. Если такое случилось:

  1. Проверьте порты соединения: плотно ли подключены модем, роутер, кабель.
  2. Перезагрузите интернет: отключите вай-фай, вытяните из разъема кабель/модем.
  3. Правой кнопкой мыши нажмите на иконку связи. Выберите «Диагностика неполадок». После обнаружения проблемы подтвердите команду «Исправить неполадки».

Перезагрузка

Банальным, но при этом действующим способом устранения проблемы является перезагрузка устройства. Сделать это можно:

  • задержав кнопку питания на несколько секунд, подтвердив команду «Перезагрузка» (планшет, смартфон);
  • нажав кнопку выключения на панели задач, выбрать «Перезагрузку» (компьютер).

Перезапуск операционной системы на телефоне и ПК.

Очистка кеша

Очистить кэшированную память Андроида можно так:

  1. Откройте настройки телефона, планшета.
  2. «Управление программами» – «Вайбер».
  3. «Очистить данные» или «Очистить кэш».

Для владельцев Айфон:

  1. «Настройки» аппарата.
  2. «Основные» – «Хранилище и iCloud» – «Вайбер».
  3. «Очистить кэш».

Детальная инструкция видна на видео:

Обновление или переустановка операционной системы

Обновление операционной системы необходимо для бесперебойной работы программ. Смартфон, планшет, компьютер автоматически напоминают о необходимости проведения операции во всплывающем окне. Происходит это только после создания разработчиками улучшенных кодов выхода обновлений для широкого использования.

А вот полная переустановка операционной системы – это радикальный способ избавления от проблем работы ОС, приложений. Для этого обратитесь в сервисный центр.

Как видим, причин ошибки подключения несколько. Некоторые можно исправить самостоятельно, однако есть и такие, которые требуют вмешательства технических работников. Главное – не паниковать, установить истинную причину и только после этого исправлять проблему. Также, по тем же причинам может возникнуть проблема с тем, что Вайбер не активируется на телефоне.

Закрыл дверь, а он в окно…

Предистория

По сравнению с блокировкой TeamViewer’а, блокировка Viber оказалась гораздо более увлекательной затеей. Эта зверюга поднимает десятки соединений на разные адреса из разных подсетей. Ловить всё это по IP казалось совершенно мифической задачей. Тут уже не обошлось без помощи L7, однако банальная блокировка домена ничего не давала. Пришлось вооружаться Wireshark и терпением.

Русскоязычный онлайн-курс по MikroTik от нашего коллеги Дмитрия Скромнова. Здесь можно изучить MikroTik и RouterOS самостоятельно по курсу «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA, но содержит больше информации. Это 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.

Решение

Как показал Torch, при каждом запуске, Viber лезет на DNS с более чем десятком запросов. Дальнейшее общение с миром происходит по https, естественно на разные IP адреса из разных подсетей. Количество и разнообразие соединений периодически ввергали в оцепенение, но сдаваться ни кто не собирался.

Viber DNS запросы
Viber https соединения

Теперь оставалось выяснить чего такого «ценного» Viber тянет из DNS сервера. Естественно, такое количество DNS запросов говорило о том, что Viber жить не может без доменов, а предидущий опыт говорил о том, что viber.com здесь явно не при делах. Именно в этот момент и понадобился Wireshark. Отфильтровав по источнику и DNS получилась вполне понятная картинка.

Viber DNS запросы в Wireshark

В итоге выяснилось, что Viber активно использует Amazon Web Services (AWS), именно там у них всё и располагается. Дело оставалось за малым — регулярка. Так как тестил я всё это «добро» дома, то все мои более менее изящные конструкции буквально кирпичили мои CRS’ы, посему пришлось воспользоваться банальным выражением viber|amazonaws.

RegEx

Моих 600 мГц в одном ядре не хватало даже на банальные «далее» (.*) при применении которых маршрутизатор просто зависал и его приходилось выдёргивать из сети. Теперь собственно о рецепте.

Рецепт

1 2 3 4 5 6 7 8 
# Создаём регулярку. /ip firewall layer7-protocol add name=viber regexp="(viber|amazonaws)"# Маркируем соединения по регулярке. /ip firewall mangle add chain=forward layer7-protocol=viber action=mark-packet new-packet-mark=viber # Добавляем адреса нарушителей в список провинившихся, дополнительно пишем лог. /ip firewall mangle add chain=forward action=add-src-to-address-list address-list=viber packet-mark=viber log=yes log-prefix="viber"# Теперь дропаем по маркеру. /ip firewall filter add chain=forward action=drop packet-mark=viber

# Создаём регулярку. /ip firewall layer7-protocol add name=viber regexp=”(viber|amazonaws)” # Маркируем соединения по регулярке. /ip firewall mangle add chain=forward layer7-protocol=viber action=mark-packet new-packet-mark=viber # Добавляем адреса нарушителей в список провинившихся, дополнительно пишем лог. /ip firewall mangle add chain=forward action=add-src-to-address-list address-list=viber packet-mark=viber log=yes log-prefix=”viber” # Теперь дропаем по маркеру. /ip firewall filter add chain=forward action=drop packet-mark=viber

Вот таким способом получится блокировать сервис и отловить всех нарушителей, которые вопреки всему активно используют Viber, а так как в лог пишется ещё и MAC адрес источника, то съехать с темы уже не получится 100%. Для активации правил Firewall «на лету» удаляем все активные соединения Viber. Это удобней всего сделать при помощи WinBox. Как показывает практика, всё что связано с L7 активируется не сразу, поэтому прийдётся подождать некоторое время.

UPD Недавно обнаружили что блокировка сети 52.0.252.0/22 помогает с данной задачкой. Пробуем, отписываемся о результатах ?

UPD2 Расширяем пределы сети 52.0.0.0/11. В моём случае помогло. Пробуем, отписываемся о результатах ?

В ответ на вопрос о обратном фильтре, когда нужно заблокировать всё кроме Viber. Адрес 10.0.0.7 — IP хоста для которого работает данный фильтр.

1 2 
/ip firewall filter add action=drop chain=forward comment="Drop all except Amazon WS (Viber)" disabled=no dst-address=!52.../11 src-address=10...7

/ip firewall filter add action=drop chain=forward comment=”Drop all except Amazon WS (Viber)” disabled=no dst-address=!52.0.0.0/11 src-address=10.0.0.7

Соответственно блокируется Viber (сеть Amazon Web Services) обратным правилом. Адрес 10.0.0.7 — IP хоста для которого работает данный фильтр. Если не указывать src-address, тогда правило работает глобально, для всех.

1 2 
/ip firewall filter add action=drop chain=forward comment="Drop Amazon WS (Viber)" disabled=no dst-address=52.../11 src-address=10...7

/ip firewall filter add action=drop chain=forward comment=”Drop Amazon WS (Viber)” disabled=no dst-address=52.0.0.0/11 src-address=10.0.0.7

О том как заблокировать не только Viber, но и другие сервисы, расскажет Дмитрий Скромнов в русскоязычном онлайн-курсе по MikroTik для самостоятельного изучения. Серия курсов по MikroTik и RouterOS основана на официальной программе MTCNA, однако содержит намного больше полезной информации. 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.

Блокируем Viber при помощи MikroTikИспользуемые источники:

  • https://cryptoworld.su/opredelenie-ip-polzovatelej-viber-i-drugie-vektory-atak-na-mesendzher/
  • https://vibir.ru/faq/oshibka-podklyucheniya-k-servisam-messendzhera-viber
  • https://blog.set-pro.net/блокируем-viber-при-помощи-mikrotik/

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий