Хакаем WhatsApp, чтобы следить за активностью контактов
WhatsApp сообщает пользователю статус его контактов.
TL;DR: можно защититься от этого хака, изменив настройки конфиденциальности аккаунта. По умолчанию WhatsApp делится вашим статусом с другими людьми. Но так как в наши дни никто не меняет настройки, этот хак срабатывает практически всегда.
Дисклеймер: эта статья является proof of concept, призванной привлечь внимание к проблеме, а также попрактиковать свои технические навыки. Не используйте код для слежки за людьми.
WhatsApp на Android
Эксплойт функции
Я хочу создать эксплойт этой функции для слежения за пользователями (ради научного исследования, конечно). Возникает первый вопрос: как она работает?
Чтобы разобраться, я использую https://web.whatsapp.com/ в веб-браузере ноутбука вместо приложения в Android-смартфоне. То есть для создания эксплойта мне придётся иметь дело с обычным реверс-инжинирингом веб-приложения. Реверс-инжиниринг приложения для Android я оставлю на потом.
Я выбрал друга из контактов телефона, чтобы посмотреть, как ведёт себя его статус на моей стороне.
Разблокирую телефон друга и открываю приложение (не WhatsApp), занимаюсь этим минуту, на моей стороне ничего не происходит.
Статус online сохраняется, пока я не выхожу из WhatsApp или не отключаю экран целевого телефона.
После этого приложение возвращается к новому last seen и состоянию offline.
Технический анализ
Открываю отладчик Firefox, чтобы посмотреть, как фронтенд веб-приложения WhatsApp получает нужные данные.
Фронтенд использует для получения данных в реальном времени связь через веб-сокеты, примерно через каждые 10-15 секунд.
Когда статус контакта меняется, сервер передаёт фронтенду сообщение другого типа.
Временная метка совпадает с тем, что мы видим в UI.
Ограничения
Для получения событий presence от сервера через веб-сокеты, мы (фронтенд) подписываемся на конкретный номер телефона ( id ). Это срабатывает, когда мы выбираем другую беседу/контакт при помощи веб-интерфейса.
Итак, в этой концепции мы можем получать только события presence активного контакта. Другими словами, мы можем отслеживать одновременно только один контакт через веб-сокетное подключение. Очень жаль!
Также WhatsApp не позволяет нам открывать несколько параллельных экземпляров приложения (с одинаковыми куки). То есть мы никак не сможем одновременно открыть два канала веб-сокетов. Это было бы слишком просто!
И, наконец, это поведение вида «одна веб-сессия WhatsApp за раз» сохраняется при попытке создания двух независимых сессий (с разными куки). Новая сессия заставляет старую закрыться, в частности, на слое веб-сокетов.
Ещё одно ожидаемое ограничение: валидность сессии ограничена по времени. Срок моей истёк 22.10.2020, спустя шесть с лишним месяцев. Странно, что можно так получить подобную информацию на фронтенде. Возможно, я что-то не так понял.
Наивная реализация
Теперь, когда мы определили, в чём заключается функция status WhatsApp и как её можно злонамеренно использовать для слежения за пользователями, настало время писать код. Также мы взглянем на техническую реализацию и поищем возможные простые уязвимости безопасности.
Я мог бы заново написать код обмена данными через веб-сокеты, чтобы получать данные о статусе, но это будет сложно. Слишком сложно, если мы можем отслеживать одновременно только один контакт. Я начну с высокоуровневой технологии, учту известные нам пока ограничения, и посмотрю, к чему это может нас привести.
Мне хочется увидеть, чего можно добиться дешёвым хакингом, а уже потом приступать к более сложным вещам.
Я разобью proof of concept на три этапа:
Мы реализовали базовую функциональность в 38 строках кода.
Наконец, я реализовал в коде цикл, постоянно сканирующий статус и сохраняющий его в InfluxDB 2.0.
InfluxDB — это база данных временных рядов (time-series database). Она идеально нам подходит.
Извлечение наших данных — это превращение данных событий в данные временных рядов.
Такая структура лучше подходит для InfluxDB и особенно для Grafana, которая будет отображать наши данные. К тому же она не хранит состояния, мне это нравится.
Для сохранения данных в InfluxDB 2.0 я использую клиент Node.js с форматом line protocol базы данных InfluxDB.
Сохраняемые данные выглядят так:
Существует пограничный случай, который бы я хотел обрабатывать: иногда в WhatsApp статус вообще не отображается.
Теперь мы подключим Grafana к InfluxDB и создадим дэшборд для слежения за полученными данными.
Исходный код этого proof of concept можно найти здесь.
Часть 2. Отслеживаем 5000 случайных телефонов
В предыдущей части мы выяснили, что достаточно легко взломать онлайн-статус контакта WhatsApp. Простую информацию Online или last seen yesterday at 19:00 реверс-инжинирингом можно заставить выполнять утечку пользования телефоном с точностью в несколько секунд.
Но я ещё не сказал о гораздо более странной вещи: можно отслеживать любой мобильный телефон! Давайте поиграем и увеличим масштабы слежения до 5000 случайных номеров.
Как и в первой части, я делюсь исходным кодом как PROOF OF CONCEPT. Если вам больше интересны результаты, чем технические подробности, то можете сразу переходить в конец статьи. Мы снова будем использовать предыдущий код на основе Node.js, Puppeteer и Grafana.
Мои друзья, мои контакты
WhatsApp считывает контакты в телефоне и позволяет чатиться с теми, кто тоже добавлен в список. Поэтому мы можем свободно добавить в качестве контакта случайный номер и найти его в WhatsApp.
Хотя для добавления номера в список контактов не требуется, WhatsApp защищает пользователей, предлагая им согласиться на ответ или сообщить о спаме при первом обмене сообщениями. Безусловно, это помогает бороться с ботами.
Как ни удивительно, это не относится к статусу Last Seen.
Экспериментируем с 5000 контактов
Мне стало любопытно, как далеко мы сможем зайти с этой уязвимостью. Я не хочу отслеживать конкретных людей и не буду спрашивать разрешения у 5000 людей, как мог это сделать в первом хаке.
Поэтому я усложню задачу, вычислю анонимную статистику и запишу данные. Давайте увеличим масштаб до 5000 телефонов.
Генерируем 5000 контактов
Чтобы расширить proof of concept до 5000 контактов, мне нужно будет зарегистрировать 5000 контактов в телефоне! И я не собираюсь делать это вручную.
Документация выглядит очень запутанной и длинной. Я не стал её изучать и экспортировал уже имеющиеся контакты, чтобы изучить модель данных. И она действительно оказалась сложной. После нескольких попыток мне удалось импортировать пару контактов с минимально возможным количеством заполненных полей.
На случай, если вы больше привыкли к CSV в Excel…
Я написал скрипт для генерации CSV из 5000 контактов:
Набор из 5000 французских номеров
И импортировал их в Gmail.
Почему это так легко, Google, ты что, крэйзи?
Затем я убедился, что мой телефон их синхронизировал (бедному телефону потребовался на синхронизацию целый час, не думаю, что он сможет выдержать ещё пять тысяч контактов).
Получение данных
Я модифицировал свой код так, чтобы он обходил в цикле все 5000 импортированных неизвестных контактов, и запустил его.
Оставил этот краулер на пару дней. (На самом деле на шесть дней, и это при помощи совершенно тупого кода! Серьёзно, здесь нет никакой защиты.) И вот какие получились красивые данные в дэшборде Grafana, взятом из предыдущего проекта.
Исходная выборка в 100 контактов. Каждое падение до 0 означает, что контакт пользовался смартфоном.
Также мы можем проверять, зарегистрирован ли номер в WhatsApp, выполняя запросы, как показано на скриншоте ниже.
Заключение
Мне удалось продолжать сканировать 5000 телефонов непрерывно в течение месяца при помощи простого кода скрейпинга.
Очевидно, WhatsApp не проверяет и не предупреждает злонамеренное использование этой функции. Мне удалось 15 000 раз использовать движок поиска для получения данных last seen за одну веб-сессию.
Для исследования я наскрейпил множество данных из 112 тысяч записей.
Моё исследование показало, что можно:
Я использовал французский диапазон номеров 06xxxxxxxx (или 00336xxxxxxxx ), который переполнился 10 лет назад (поэтому тогда появился диапазон 07xxxxxxxx ). Поэтому, вероятно, можно допустить, что по крайней мере 80% номеров телефонов действительны.
Снижение с 1357 активных пользователей в прошлом месяце до 281 на прошлой неделе довольно значительно, его можно связать с критикой WhatsApp в конце декабря 2020 года. Мне не очень интересно изучать эти данные подробнее, на этом всё, спасибо за внимание.
Messenger, Signal и Telegram (бонус)
(Facebook) Messenger не использует номеров телефонов контактов для поиска пользователей, потому что пользуется для этого аккаунтами Facebook. Совершенно иная структура, поскольку это социальная сеть и она меньше похожа на мобильный сервис VOIP. Думаю, множество похожих хаков с получением информации можно реализовать и в Messenger. Но это уже другая история, возможно, оставим её на следующий раз?
Signal и Telegram больше похожи на WhatsApp с точки зрения работы с контактами. Однако утечки там не так велики.
В первый день исследования из 5000 пользователей 94 было в Signal, и каждый последующий день появлялось по 1-2 новичка. Никто не использует Signal во Франции, очевидно, влияние Илона Маска здесь не так велико.
Да, это картинка, чтобы за вами не могли следить.
На правах рекламы
VDSina предлагает безопасные серверы с посуточной оплатой. Возможно установить любую операционную систему, в том числе из своего образа. Каждый сервер подключён к интернет-каналу в 500 Мегабит и бесплатно защищён от DDoS-атак!
У меня ежемесячно списывают определённую сумму сайт Tiny check. Что это и как отписаться?
У меня ежемесячно списывают определённую сумму сайт Tiny check. Что это и как отписаться?
Ответы на вопрос:
Либо вы отключате подписку на сайте, либо смените номер счета или если подписка произведена с помощью номера телефона, позвоните в компанию и они вам помогут.
Зайдите вдичный кабинет оператора там должно бытьуправление услугами и прдписками найдитк это название там есть кнопка отключить подаиску нажмите туда.
Это все мошенничество, обман. Вы же когда приходите в магазин, смотрите ценник, устраивает покупаете, на кассе расчет, но при этом кассир же не пробивает сумму больше, мотивируя тем, что «а, вон там …В подсобке у нас правила такие. еще надбавка…. А еще при покупке ты подписался на оплату вон той херни на полке…»
Но и не зачем было подключать у мошенников услуги да и вообще «запиливать» данные карты на неизвестных сайтах.
Оплата начинает воспроизводиться с первого дня подключения услуги и не заканчивается до тех пор, пока она не будет отключена.
Отписаться от подписок, от VIP и прочих подписок по ЗАЙМАМ не так уж и просто. Во-первых везде идет обман и подписка автоматическая..
Если удалить аккаунт, то не удастся отключить автопродление премиум аккаунта.
Для того чтобы у вас больше не сняли деньги следует, как минимум сделать так:
войти в «Мой профиль», «Настройки»;, отыскать пункт «Настройки подписки», выбрать клавишу «Отключить» и т.д..
Осуществлять все вышеуказанные действия нужно именно на том ресурсе, где была подключена услуга. Если вы заходили в сервис через определенную социальную сеть, например, «Вконтакте», то для отключения услуги нужно зайти точно также.
Также следует звонить в техподдержку и убедится в отключении.
Лучше к этим всем манипуляциям дополнительно заблокировать карту и выпустить другую.
Перевод средств ОЭДС_10 для оплаты им услуги: что это, как отключить
С недавнего времени у многих абонентов Теле2 стали наблюдаться неизвестные списания, которые в детализации расходов указаны как «Перевод средств ОЭДС_10 для оплаты им услуги checkyour.name, комиссия 0%». Помимо числового приписки «10», могут встречаться и другие значения: 11 (8763), 11 (3912), 4 (2583) и др. В среднем, с баланса за такие услуги списывается по 30 рублей в сутки. Наша статья покажет, что означают такие списания, кем они активируются и каким образом их можно быстро отключить.
Перевод средств ОЭДС_10 для оплаты услуги CheckYour
Что это за списание?
Перевод средств ОЭДС_10 (659) для оплаты им услуги checkyour.name — это автоматическое списание за платную подписку на одноименном сервисе, доступ к которому для абонентов Теле2 составляет 30 рублей в сутки. Услугу предоставляет сторонний контент-провайдер ООО «Вива». ОЭДС расшифровывается как «оператор электронных денежных средств».
Сервис CheckYour позиционируется как автоматизированный мониторинговый сервис, который поможет пользователю отыскать информацию о штрафах и долгах, а также позволит отследить почтовое отправление по трек-номеру. Ничего нового и уникального в услуге нет, тем более, если учесть стоимость такого премиум доступа (30 руб./сутки). Пользователь может легко выполнить те же проверки абсолютно бесплатно, через официальные сайты ГИБДД, Гослуслуги, онлайн-банкинга и Почты России.
По заверениям специалистов поддержки Теле2, услуга может быть подключена несколькими способами, которые зависят исключительно от абонента:
Однако в действительности дела обстоят иначе. Практически все отзывы указывают на факт несанкционированной активации подписки. Абоненты никогда не слышали про данную услугу, но получали автоматические списания. По этой ситуации имеется ряд предположений. Абоненты отмечают, что в момент серфинга через мобильный интернет может происходить редирект на форму активации подписки. Причем пользователь не всегда способен понять назначение всплывающей формы. Имеются предположения о базе взломанных номеров, иначе как объяснить тот факт, что подписки подобного рода выскакивают на «кнопочных» телефонах без интернета.
Основная претензия абонентов идет в адрес оператора TELE2, который позволяет активировать такие услуги без ведома владельца номера. В любом случае, в выигрыше от такого своеобразного сотрудничества только две стороны — оператор и контент-провайдер ООО Вива.
Как отключается подписка CheckYour.name в Теле2
К счастью, отключение подписки на такой web-сервис можно выполнить быстро, любым из нижеперечисленных способов:
Отключение платной услуги на сайте web-сервиса
Перевод средств ОЭДС_11 для оплаты им услуги infoportal.me: что это, как отключить?
Аналогичным сайтом является платный сервис Infoportal.me. Данный сайт полностью повторяет назначение и функционал вышеописанного сервиса CheckYour — мониторинг штрафов и долгов, проверка движения посылок. Стоимость доступа к его премиум-услугам для абонентов Теле2 составляет те же 30 рублей в сутки. Услуга предоставляется все тем же контент-провайдером ООО «Вива».
Платный сервис Infoportal для абонентов Теле2 стоит 30 рублей в сутки
Ситуация с несанкционированным подключением повторяется в точности. Люди просто обнаруживают в детализации непонятное списание, хотя никогда не посещали данный инфопортал.
Отключиться от платной подписки на Infoportal можно следующими способами:
Можно ли вернуть деньги, списанные за платные подписки?
С отключением платных подписок особых сложностей не существует. До того момента, как абонент обнаружит списание, с его счета уже успевают снять примерно 120-150 рублей. Но если пользователь подаст запрос на возврат произвольно снятых средств — ему придется доказать поддержке оператора, что деньги списаны незаконно.
Для начала поддержка уточнит, что со своей стороны оператор никак технически не может повлиять на активацию подписок и услуг. Могут запросить электронный чек об оплате услуг, который контент-провайдер конечно же не выдает. А в конце укажут на факт покупки услуги, которая не предоставляется TELE2, из-за чего возврат средств оператор не осуществляет.
Оплата услуг сервиса infoportal
На самом деле очень сложно доказать факт несанкционированного подключения. Но ситуации с успешным возвратом средств все же имеются. Получается это сделать поставив поддержку перед неопровержимыми фактами и составив грамотную претензию. Доводы абонентов, которые добились справедливости, достаточно веские: работа с «кнопочным» телефоном, отсутствие интернета, отсутствие подключения в момент активации подписки. Рекомендуем сверить историю серфинга через мобильный интернет с временем подключения подписки (ориентируйтесь на время прихода SMS с короткого номера).
Заключение
Платеж выполнен в Paddle.net: что это такое?
Сегодня все чаще и чаще с карт пользователей списываются денежные средства в пользу непонятных им получателей. Например, в сети появились жалобы на списание с карты денег в пользу Paddle.net. Разберемся, что это такое и как с этим бороться.
Что это за сайт
Paddle.net представляет собой Интернет-ресурс, где можно продавать приложения, игры и пр. Часто разработчикам довольно сложно самостоятельно разобраться со всеми нюансами продаж и реализации своего товара.
По этой причине они ищут площадки для размещения, желательно с автоматическим решением всех последующих вопросов (оплата, настройка платежных шлюзов, системы лицензирования, пробные версии и пр.). Paddle.net как раз и является таким ресурсом.
Конечно же, услуги, предлагаемые сайтом, не являются бесплатными. Оплата производится на базе оформленной подписки, условия которой пользователи выбирают при выкладке своего товара. В дальнейшем можно будет выбрать другой тариф.
Зачастую, площадка предлагает воспользоваться промопериодом, причем, не только разработчикам приложений, но и потенциальным покупателям. Однако, для этого в обязательном порядке потребуется привязать к сервису банковскую карту. Некоторое время спустя, с нее начнут списываться деньги.
Почему так происходит
Все просто: пользователь не отказался от подписки после окончания промопериода. А значит, таким образом, он дал согласие на проведение автоплатежей. Многие люди не понимают и не знают, что после окончания бесплатного пользования услуга не отключится самостоятельно. На это и рассчитана данная уловка. Причем, пользователи, сами того не зная, дали свое согласие на списание средств.
Как отменить подписку
Для этого потребуется посетить личный кабинет на Paddle.net и деактивировать все активные платные функции. Если этого не сделать, деньги так и будут списываться.
Если по каким-то причинам не удалось самостоятельно отказаться от услуги, целесообразно обратиться в техническую поддержку ресурса с изложением своей просьбы.
Можно ли вернуть деньги
Правилами площадки возврат средств не предусматривается, однако, можно аргументировать ошибкой выбора тарифа. При этом нельзя пользоваться подпиской уже после того, как кончился промопериод. Если это будет сделано, то услуга считается оказанной, а значит, деньги никто не вернет. Поэтому нужно быть очень аккуратным в данном вопросе.
Пользователей Сети обманывают при помощи нового сайта и обещают денежные выплаты
Редакция, Общество, 11:25, 22.11.2021
Мошенники придумали новый сайт, при помощи которого обманывают пользователей Сети и обещают вернуть невыплаченные денежные средства
Что за сайт ЕКЦ ВНДС
ЕКЦ ВНДС – это Единый компенсационный центр возврата невыплаченных денежных средств, который якобы предоставляет возможность получить компенсацию от 12 до 300 тыс. рублей. Об этом сообщает портал antiobman.com.
Перейдя по ссылке на этот сайт, перед пользователем появится извещение, которое будет напоминать платежку от государственной организации. Невооруженным глазом отличить от настоящей сложно. Мошенники в данном извещении уточняют, что деньги полагаются на основании «возврата Н.Д.С.».
Как работает схема с возвратом НДС
Пользователям на почту приходит письмо от сервиса Google Docs. Схема продумана так, что оно проходит спам-фильтр, который блокирует подозрительные ссылки.
В самом сообщении получателя уведомляют о том, что ему положена компенсация денежных средств. А всю дополнительную информацию можно получить, если пройти по указанной ссылке в хранилище Google. Об этом сообщает портал kaspersky.ru.
Чтобы проверить свою компенсацию, на сайте предлагают ввести последние шесть цифр своей банковской карты. Так система проверяет и рассчитывает положенную сумму, которую можно получить на карте или электронный кошелек.
Далее мошенники попросят оплатить юридические услуги, а после пришлют новые требования по оплате. И так будет продолжаться до тех пор, пока жертва не поймет, что попала на обман.
Лишь один знак ждет ссора с другом: астрологический прогноз с 22 по 28 ноября
На этой неделе Раки будут готовы сделать предложение своим возлюбленным, Дев ожидают судьбоносные встречи, а Стрельцы поменяют место работы



















