Как отслеживать онлайн-статус контактов в WhatsApp на Android
Постоянные пользователи Androidlist наверняка знают, что мы стараемся писать о WhatsApp каждую неделю, освещая вам последние новости этого мессенджера, а также рассказывая об интересных трюках, добавляющих новые возможности и делающие пользование WhatsApp ещё приятнее и проще.
В последнее время, нам часто задают вопрос о том, можно ли отслеживать онлайн-статус в WhatsApp и сегодня мы подробно осветим эту тему.
Как отслеживать онлайн-статус контактов в WhatsApp на Android
Добавить такую функцию можно, скачав одно из сторонних приложений, предназначенных специально для таких целей. В нашей статье мы рассмотрим пример с приложением Sotla, позволяющим отслеживать онлайн-статус даже если эта функция скрыта конкретным контактом, а также предложим вам несколько других аналогичных инструментов.
Отслеживайте появление контактов в WhatsApp с помощью Sotla
Давайте подробно рассмотрим пример с приложением Solta:

- Установите приложение на смартфон, и запустите его (регистрация отсутствует).
- Предоставьте Solta доступ на сохранения системных данных и примите условия пользования.
- Нажмите на «+» в правом верхнем углу и выберите WhatsApp (приложение также работает с vk и Telegram).
- Введите номер интересующего вас пользователя WhatsApp, а также укажите его имя.
Готово! Теперь вы увидите этот контакт в списке, где будет указано время его последнего посещения WhatsApp. Кроме того, вы будете получать уведомления об изменении его онлайн-статуса, отключить которые можно просто переведя курсор влево.

Нажав на контакт, вы получите доступ к аналоговым часам, где будет указана подробная информация о времени его пребывания онлайн в дневное и ночное время.
Учтите, что для отслеживания нескольких номеров вам нужно будет покупать подписку, так что тщательно подбирайте бесплатный номер, который вы хотели бы отслеживать.
Как посмотреть онлайн-статус контакта, не читая сообщения
Хотели бы узнать, когда какой-то контакт был онлайн, не читая его сообщения? Тогда сделайте следующее:

- Откройте Чаты и нажмите на фото нужного вам контакта.
- Нажмите на значок «i» и в открывшемся окне получите доступ к информации о его текущем онлайн-статусе. Теперь нажав Назад, его сообщение не будет вами прочтено, а вы будете знать, когда он был в WhatsApp в последний раз.
Другие шпионы онлайн-статуса в WhatsApp: OnLog, WhatsAgent
Далее мы привели несколько других самых стабильных и безопасных приложений, позволяющих отслеживать онлайн-статус контактов в WhatsApp.
Знаете другие способы, позволяющие узнавать точное время появления контактов в WhatsApp? Не забудьте поделиться ими с другими пользователями Androidlist в комментариях!
Sotla — online last seen
Самое безопасное и стабильное приложение для отслеживания онлайн-статуса контактов в WhatsApp, Telegram и vk, доступное для скачивания на Google Play.
OnLog
Отличный аналог Sotla с аналогичным функционалом и простым в пользовании интерфейсом. Установив его, вы получите подробную онлайн-статистику по всем контактам.
WhatsAgent — Online Tracker
Ещё один инструмент для отслеживания онлайн-статистики в WhatsApp. В этой бесплатной версии приложения вы получите доступ к онлайн-статусу только одного контакта.
WhatsAgent — Premium Tracker & Analyzer
Premium-версия WhatsAgent с неограниченным количеством отслеживаемых контактов и другими интересными дополнительными функциями.
5 лучших приложений для Проверки WhatsApp Last Seen
WhatsApp Last Seen – это функция, позволяющая узнать, находится ли пользователь онлайн в WhatsApp. Обычно, если вы хотите проверить статус Last Seen в WhatsApp, просто нажмите на имя контакта во вкладке ЧАТЫ, и под именем контакта в верхней части экрана появится статус «Last Seen (дата) в (время)».
Однако этот статус нельзя увидеть, если кто-то специально скрыл его. Но как проверить скрытый статус WhatsApp Last Seen? В этом случае мы составили для вас список из 5 лучших приложений для Проверки WhatsApp Last Seen. Также мы дадим вам инструмент, который также позволяет отслеживать чаты WhatsApp определенных людей, звонки, статусы, файлы и т.д.

Давайте проверим эти методы вместе!
- Часть 1: Топ 5 Программ для Проверки WhatsApp Last Seen онлайн
- 1. wTrack
- 2. WaStat
- 3. WhatsLog
- 4. WhatsDog
- 5. wLog Online
Как проверить Last Seen в WhatsApp
В этой статье мы расскажем о 5 лучших программах для проверки WhatsApp Last Seen, а также представим лучшую программу-шпион KidsGuard для WhatsApp чтобы проверить, что кто-то делает в WhatsApp онлайн. Нажмите на кнопку ниже, чтобы узнать, как посмотреть Last Seen в WhatsApp. Вы точно останетесь довольнв!
1. wTrack
Начнем с того, что wTrack является лучшим онлайн инструментом для отслеживания WhatsApp Last Seen в нашем топ-листе с более чем 100 000+ загрузок. Вы можете просто и легко проверить, сколько времени ваши друзья и члены вашей семьи проводят в WhatsApp.
Он также предлагает функцию родительского контроля, т.е. вы будете получать уведомления, когда ваши дети становятся онлайн или оффлайн. Более подробная информация, такая как время онлайн/оффлайн, продолжительность, а также контактный номер, будет отображаться в вашем аккаунте. Более того, это полностью анонимное приложение, и ваши контакты не могут знать, что вы отслеживаете их статус Last Seen или онлайн активность.

Характеристики wTrack:
- Ежедневная, ежемесячная и еженедельная статистика активности в WhatsApp.
- Активируйте push-уведомления, чтобы получать уведомления в режиме реального времени о том, что кто-то находится онлайн или офлайн в WhatsApp.
- Приложение работает на всех типах устройств Android и iOS.
- Вы также можете заблокировать приложение WhatsApp на чьем-либо мобильном телефоне в премиум-плане.
2. WaStat
WaStat также способен отслеживать статус онлайн или офлайн ваших контактов в WhatsApp. Он предлагает бесплатный план. Вы можете добавить контакт для получения нужной информации. Затем, всякий раз, когда контакт выходит в Сеть, вы будете получать уведомление.
Вы даже можете увидеть, как долго контакт оставался онлайн. Функция продолжительности доступа — отличный вариант для родителей, следящих за своими детьми. Вы можете выяснить, заходили ли ваши дети к WhatsApp или занимались своими школьными делами. Кроме того, эта проверка статуса онлайн в WhatsApp очень проста в использовании, а приложение занимает очень мало место, поэтому оно работает очень быстро и без сбоев.

Характеристики WaStat:
- Вы можете проверить статус онлайн любого номера в WhatsApp.
- Он будет отображать все временные интервалы в WhatsApp в удобном виде часов.
- Вы также можете просмотреть статистику за последние 30 дней в графиках.
- И, наконец, благодаря функции уведомлений он может отправлять вам оповещения, как только человек подключится к WhatsApp.
3. WhatsLog
Если вам интересно увидеть Last Seen в WhatsApp , даже если он скрыт, WhatsLog — еще одно отличное приложение для Android, которое вы можете использовать в своем WhatsApp. Вы можете указать любой из номеров вашего друга в этом приложении, всякий раз, когда ваш друг приходит онлайн или оффлайн в WhatsApp, вы получите уведомление об этом.
В этом приложении для проверки WhatsApp Last Seen вы также можете изменить звуки уведомлений на те, которые вы хотите для каждого контакта. Он предоставляет однодневную бесплатную пробную версию. Более того, в любой момент вы можете отозвать подписку. Также стоит отметить, что все данные хранятся и передаются по их защищенному протоколу!

Характеристики WhatsLog:
- Точный и очень эффективный.
- Приложение для Проверки WhatsApp Last Seen представляет возможность проверять онлайн / оффлайн активность ваших контактов.
- Он сразу определит номер и даже заблокирует телемаркетологов, которые вас раздражают.
- Он работает 24/7.
- Вы можете управлять звуками уведомлений так, как вам нужно.
4. WhatsDog
WhatsDog – еще одно достаточно известное приложение, которое может помочь вам узнать точный статус WhatsApp, когда пользователь закрыл такую возможность, что дает вам возможность видеть активность любого человека онлайн в WhatsApp. Что касается того, как посмотреть скрытые Last Seen в WhatsApp, с помощью этого приложения вы можете отслеживать всех или конкретных пользователей WhatsApp на вашем телефоне, не используя WhatsApp, что является отличительной особенностью этого приложения.
Это приложение предлагает календарь для переключения между датами. Таким образом, вы можете проверить ранее сохраненные данные. И еще одно меню предназначено для просмотра активности текущего дня.

Характеристики WhatsDog:
- Доступ к списку всех профилей контактов WhatsApp.
- Вы можете увидеть последние активности пользователя в WhatsApp, если они были скрыты.
- Вы получите уведомление, когда нужный пользователь появится в сети.
5. wLog Online
wLog online способен моментально определить статус WhatsApp в сети. Он идеально подходит родителям или супругам, чтобы следить за активностью в WhatsApp членов семьи. Вы будете получать мгновенные уведомления и подробные отчеты, когда они находятся онлайн.
Этот инструмент для проверки нахождения в WhatsApp и статуса last online даст вам всю информацию о том, как долго ваши близкие сидят в сети. Вы также можете наблюдать, как часто ваш возлюбленный выходит в интернет и проверяет сообщения. Кроме того, он предоставляет подробный анализ активности статуса, который составляется ежедневно и ежемесячно.

Характеристики wLog Online:
- Вы можете узнать, как долго человек проводит время в социальных сетях и WhatsApp.
- Вы будете знать, когда ваши любимые, ваши дети и ваши друзья находятся онлайн.
- Получайте неограниченную статистику для анализа онлайн-активности.
- Мгновенная отмена подписки.
Бонусное Приложение: Как Посмотреть, что Делает Пользователь в WhatsApp Онлайн
Бонусное Приложение: Как Посмотреть, что Делает Пользователь в WhatsApp Онлайн Теперь, когда вы знаете все способы, как посмотреть статус Last Seen в WhatsApp, даже если он скрыт. Однако, вам также интересно, что кто-то делает в WhatsApp с отключенной функцией Last Seen? ? Возможно, этот пользователь что-то скрывает от вас? Хотя, на самом деле, это скорее инструмент мониторинга, чтобы защитить ваших близких от рисков в Интернете.
Итак, давайте перейдем сразу к делу, мы протестировали несколько приложений доступных на рынке и выяснили, что KidsGuard для WhatsApp является лучшим приложением для мониторинга WhatsApp, независимо от последнего посещения приложения и связи с вами.
С его помощью вы можете отслеживать любого пользователя в WhatsApp без его ведома. Например, вы узнаете, что ваш сын общается в WhatsApp в 4 часа утра, а вы думали, что он в это время спокойно спит.
- Отслеживайте чаты WhatsApp: Отправленные, полученные или удаленные сообщения.
- Доступ к медиафайлам: Фотографии, видео, документы и голосовые заметки.
- Просмотр статуса WhatsApp: Публичный, приватный или просроченный статус.
- Мониторинг звонков WhatsApp: Подробный список голосовых или видео вызовов WhatsApp и запись вызовов WhatsApp.
- Скриншоты WhatsApp: Автоматический снимок экрана телефона при использовании WhatsApp.
- Ограничение экранного времени WhatsApp: Ограничение использования WhatsApp с точностью до минуты.
- Оповещения по ключевым словам: Получайте уведомления, когда человек набирает определенные ключевые слова, которые вы заранее установили.
KidsGuard для WhatsApp может быть очень полезным решением для мониторинга WhatsApp. Он полностью совместим со всеми телефонами Android и работает тайно в фоновом режиме, он также может показывать статус WhatsApp Last Seen.
Шаги использования KidsGuard для WhatsApp
Шаг 1. Нажмите на кнопку ниже, чтобы создать учетную запись KidsGuard с действующей электронной почтой. Затем вам нужно будет приобрести тарифный план для доступа к мониторингу WhatsApp, чтобы активировать все функции.
Шаг 2. Вы попадете на страницу «Мои продукты«, где вы найдете полное руководство по настройке. Затем загрузите приложение KidsGuard для WhatsApp с сайта www.installapk.net на целевое устройство Android и завершите настройку в соответствии с подсказками на экране.

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

Просто установите приложение для мониторинга WhatsApp и войдите в панель управления, чтобы начать отслеживать действия интересующих вас пользователей в WhatsApp. Существует бесплатная демо где вы можете попробовать приложение и принять решение позже.
Вопрос-Ответ о WhatsApp Last Seen
В1. Узнает ли кто-нибудь, часто ли я проверяю их статус Last Seen в WhatsApp?
Безусловно нет. Не существует официального способа или стороннего инструмента, позволяющего кому-либо проверить, проверяли ли вы их статус Last Seen в WhatsApp. Использование KidsGuard для WhatsApp с еще меньшей вероятностью будет раскрыто, оно будет скрыто на устройстве целевого пользователя, и человек, которого вы пытаетесь отследить, не обнаружит его.
В2. Как проверить статус WhatsApp Last Seen, если вас заблокировали?
Вы не сможете увидеть последнее сообщение из WhatsApp, если вы заблокированы. Но вы можете использовать приложения для проверки последних посещений WhatsApp, про которые говорили выше, и даже получать уведомления каждый раз, когда человек выходит в Интернет или переходит в автономный режим.
В3. Почему я не могу просмотреть Последнее просмотренное в WhatsApp?
- От вас скрывают онлайн-статус в WhatsApp, но вы его можете всегда проверить и посмотреть, когда пользователь был в сети в последний раз.
- Возможно, вы были заблокированы этим человеком.
- Вас нет в их списках контактов.
Вывод
Здесь вы узнали, как увидеть, кого в последний раз видели в WhatsApp, если он скрыт. В зависимости от того, что вам нужно, вы можете выбрать онлайн-программу проверки последнего просмотра WhatsApp, которая подходит именно вам.
Если вы также хотите получить больше информации, проверить их чат WhatsApp, звонки или другие действия, то вы попали по адресу. Просто выберите KidsGuard для WhatsApp, который предлагает вам множество функций мониторинга, и сами станьте настоящим детективом.
Если вам понравилась эта информация, пожалуйста, оставьте нам свой отзыв в комментарии и поделитесь им со своими друзьями в социальных сетях.
вам также может понравиться:

Posté sur December 19, 2022 ( Mis à jour: December 19, 2022 )
Сертифицированный специалист по контент-маркетингу с большой страстью к интернету и онлайн-безопасности. Она стремится просвещать аудиторию о советах и хитростях кибербезопасности.
(Cliquez pour évaluer ce message)
Généralement évalué 4.6 ( 170 participé)
Évalué avec succès!
Vous avez déjà noté cet article!
Хакаем WhatsApp, чтобы следить за активностью контактов
TL;DR: можно защититься от этого хака, изменив настройки конфиденциальности аккаунта. По умолчанию WhatsApp делится вашим статусом с другими людьми. Но так как в наши дни никто не меняет настройки, этот хак срабатывает практически всегда.
Дисклеймер: эта статья является proof of concept, призванной привлечь внимание к проблеме, а также попрактиковать свои технические навыки. Не используйте код для слежки за людьми.

WhatsApp на Android
Эксплойт функции
Я хочу создать эксплойт этой функции для слежения за пользователями (ради научного исследования, конечно). Возникает первый вопрос: как она работает?
Чтобы разобраться, я использую https://web.whatsapp.com/ в веб-браузере ноутбука вместо приложения в Android-смартфоне. То есть для создания эксплойта мне придётся иметь дело с обычным реверс-инжинирингом веб-приложения. Реверс-инжиниринг приложения для Android я оставлю на потом.
Я выбрал друга из контактов телефона, чтобы посмотреть, как ведёт себя его статус на моей стороне.
Изначально статус имеет значение Offline, и в этом случае WhatsApp передаёт вам абсолютную дату вида last seen 16/03/2020 at 15:40 .

Разблокирую телефон друга и открываю приложение (не WhatsApp), занимаюсь этим минуту, на моей стороне ничего не происходит.
Ладно, теперь переключаемся на WhatsApp. 10 секунд спустя статус изменился на online . Я не перехожу в беседы, которые являются общими с этим телефоном/контактом, чтобы убедиться, что статус передаётся без этого условия.

Статус online сохраняется, пока я не выхожу из WhatsApp или не отключаю экран целевого телефона.
После этого приложение возвращается к новому last seen и состоянию offline.

- Мы не сможем следить за местоположением пользователя в мире при помощи его телефона (надеюсь!)
- Но мы можем отслеживать, пользуются ли WhatsApp те, кто находится в наших контактах
- Утекающая информация представляет собой дату last seen и статус online для каждого контакта
- Можно ожидать как минимум точность до минуты для даты last seen
- А статус online отображается, если WhatsApp был открыт хотя бы в течение 5-10 секунд
Технический анализ
Открываю отладчик Firefox, чтобы посмотреть, как фронтенд веб-приложения WhatsApp получает нужные данные.
Фронтенд использует для получения данных в реальном времени связь через веб-сокеты, примерно через каждые 10-15 секунд.

Если внимательно следить, то можно заметить, что фронтенд «пингует» сервер примерно каждые 15 секунд строкой . , и почти всегда за этим следует ответ ! . Что-то типа проверки активности соединения. Нам это неинтересно.

Когда статус контакта меняется, сервер передаёт фронтенду сообщение другого типа.


Частично скрытое мной значение id — это номер телефона, type — это флаг «доступен/недоступен», t — это временная метка даты last seen . Вся полезная нагрузка инкапсулирована в объект Presence , который легко можно распознать.
Временная метка совпадает с тем, что мы видим в UI.

Ограничения
Для получения событий presence от сервера через веб-сокеты, мы (фронтенд) подписываемся на конкретный номер телефона ( id ). Это срабатывает, когда мы выбираем другую беседу/контакт при помощи веб-интерфейса.

Итак, в этой концепции мы можем получать только события presence активного контакта. Другими словами, мы можем отслеживать одновременно только один контакт через веб-сокетное подключение. Очень жаль!
Также WhatsApp не позволяет нам открывать несколько параллельных экземпляров приложения (с одинаковыми куки). То есть мы никак не сможем одновременно открыть два канала веб-сокетов. Это было бы слишком просто!

И, наконец, это поведение вида «одна веб-сессия WhatsApp за раз» сохраняется при попытке создания двух независимых сессий (с разными куки). Новая сессия заставляет старую закрыться, в частности, на слое веб-сокетов.
Ещё одно ожидаемое ограничение: валидность сессии ограничена по времени. Срок моей истёк 22.10.2020, спустя шесть с лишним месяцев. Странно, что можно так получить подобную информацию на фронтенде. Возможно, я что-то не так понял.

Наивная реализация
Теперь, когда мы определили, в чём заключается функция status WhatsApp и как её можно злонамеренно использовать для слежения за пользователями, настало время писать код. Также мы взглянем на техническую реализацию и поищем возможные простые уязвимости безопасности.
Я мог бы заново написать код обмена данными через веб-сокеты, чтобы получать данные о статусе, но это будет сложно. Слишком сложно, если мы можем отслеживать одновременно только один контакт. Я начну с высокоуровневой технологии, учту известные нам пока ограничения, и посмотрю, к чему это может нас привести.
Мне хочется увидеть, чего можно добиться дешёвым хакингом, а уже потом приступать к более сложным вещам.
Я разобью proof of concept на три этапа:
- Получение данных
- Сохранение данных (легко)
- Визуализация данных (легко, но у меня вызовет сложности)
const puppeteer = require('puppeteer'); // The contact name to track (mind the case). const contactTarget = "Jean-Mich"; (async () => < const browser = await puppeteer.launch(< headless: false, // No headless to scan the QR code. userDataDir: 'data/userdata' // Persist the session. >); const page = await browser.newPage(); await page.goto('https://web.whatsapp.com/'); await page.waitFor(5000); console.log('Awaiting/Checking peering with WhatsApp phone'); await page.waitFor('#side', < timeout: 60000 >).then(() => < // Scan the QR code within the next minute. console.log('Connected !'); >).catch((res) => < console.log('Not connected !', res); return -1; >) await page.waitFor(1000); await page.focus('._2S1VP'); // Focus search input form. await page.keyboard.type(contactTarget, < delay: 100 >); await page.waitFor(6000); let contactElt = (await page.$x(`//*[@class="_25Ooe" and . = "$"]`))[0]; // Select the best result. contactElt.click(); await page.waitFor(5000); let statusElt = await page.$('.O90ur'); let status = await statusElt.evaluate(x => x.textContent); console.log(`Status for $ is '$'.`); // `last seen today at 13:15` format. await browser.close(); >)();Мы реализовали базовую функциональность в 38 строках кода.
Чтобы двигаться дальше, нам нужно спарсить формат last seen today at 13:15 в формат даты. Для этого я использую замечательный npm-пакет chrono-node .
const chrono = require('chrono-node'); // . let status = await statusElt.evaluate(x => x.textContent); // `last seen today at 13:15` format. let lastSeenDate = chrono.parseDate(status); // .Наконец, я реализовал в коде цикл, постоянно сканирующий статус и сохраняющий его в InfluxDB 2.0.
InfluxDB — это база данных временных рядов (time-series database). Она идеально нам подходит.
На основании даты last seen я запишу UInteger в переменную offline since . Это будет счётчик секунд, прошедших после даты last seen .
Если статус online , то offline since будет иметь значение 0 .
Извлечение наших данных — это превращение данных событий в данные временных рядов.
Такая структура лучше подходит для InfluxDB и особенно для Grafana, которая будет отображать наши данные. К тому же она не хранит состояния, мне это нравится.
Для сохранения данных в InfluxDB 2.0 я использую клиент Node.js с форматом line protocol базы данных InfluxDB.
measurementName,tagKey=tagValue fieldKey="fieldValue" 1465839830100400200 --------------- --------------- --------------------- ------------------- | | | | Measurement Tag set Field set Timestamp
Сохраняемые данные выглядят так:
status,contactName=Toto offlineSince=8275u 1465839830100400200 status,contactName=Toto offlineSince=8280u 1465839830100400200 status,contactName=Toto offlineSince=0u 1465839830100400200 status,contactName=Tata offlineSince=0u 1465839830100400200 ------ --------------- ----------------- ------------------- | | | | Measurement Tag set Field set Timestamp
const < InfluxDB, FluxTableMetaData >= require('@influxdata/influxdb-client') let client = new InfluxDB(< url: 'http://localhost:9999', token: process.env.INFLUXDB_TOKEN >); const writeApi = client.getWriteApi(process.env.INFLUXDB_ORG, process.env.INFLUXDB_BUCKET); //. let offlineSince = (lastSeenDate === null) ? 0 : ((new Date().getTime() - lastSeenDate.getTime()) / 1000).toFixed(0); if (offlineSince < 0) offlineSince = 0; let data = `status,contactName=$offlineSince=$u`; writeApi.writeRecord(data);Существует пограничный случай, который бы я хотел обрабатывать: иногда в WhatsApp статус вообще не отображается.
В таком случае мы не введём в базу данных значение offlineSince , потому что у нас его нет. Вместо этого мы при каждом сканировании статуса будем записывать значение statusAvailable (которое равно 0 или 1 ).
Теперь мы подключим 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.

Ой, а почему я вижу эти данные last seen ?
Как мы видели в первой части, существует препятствующая этому настройка конфиденциальности. По умолчанию она имеет значение Everyone , но никто его не меняет.

Если вы не хотите делиться своим статусом Last Seen , то WhatsApp отключает эту функцию в обоих направлениях
Экспериментируем с 5000 контактов
Мне стало любопытно, как далеко мы сможем зайти с этой уязвимостью. Я не хочу отслеживать конкретных людей и не буду спрашивать разрешения у 5000 людей, как мог это сделать в первом хаке.
Поэтому я усложню задачу, вычислю анонимную статистику и запишу данные. Давайте увеличим масштаб до 5000 телефонов.
Генерируем 5000 контактов
Чтобы расширить proof of concept до 5000 контактов, мне нужно будет зарегистрировать 5000 контактов в телефоне! И я не собираюсь делать это вручную.
Для этого я перешёл в свой аккаунт Google на десктопном веб-сайте, зашёл на страницу Contacts и нашёл там кнопку import a CSV .

Документация выглядит очень запутанной и длинной. Я не стал её изучать и экспортировал уже имеющиеся контакты, чтобы изучить модель данных. И она действительно оказалась сложной. После нескольких попыток мне удалось импортировать пару контактов с минимально возможным количеством заполненных полей.
Name,Given Name,Additional Name,Family Name,Yomi Name,Given Name Yomi,Additional Name Yomi,Family Name Yomi,Name Prefix,Name Suffix,Initials,Nickname,Short Name,Maiden Name,Birthday,Gender,Location,Billing Information,Directory Server,Mileage,Occupation,Hobby,Sensitivity,Priority,Subject,Notes,Language,Photo,Group Membership,Phone 1 - Type,Phone 1 - Value ContactA. Mobile,06 01 02 03 04 ContactB. Mobile,06 01 02 03 05 ContactC. Mobile,06 01 02 03 06
Additional Name Yomi ?

На случай, если вы больше привыкли к CSV в Excel…
Я написал скрипт для генерации CSV из 5000 контактов:
const fs = require("fs"); require("dotenv").config(); const startingNumber = process.env.STARTINGNUMBER; const fileName = "5000contacts.csv"; const csvHeader = "Name,Given Name,Additional Name,Family Name,Yomi Name,Given Name Yomi,Additional Name Yomi,Family Name Yomi,Name Prefix,Name Suffix,Initials,Nickname,Short Name,Maiden Name,Birthday,Gender,Location,Billing Information,Directory Server,Mileage,Occupation,Hobby,Sensitivity,Priority,Subject,Notes,Language,Photo,Group Membership,Phone 1 - Type,Phone 1 - Value"; fs.appendFileSync(fileName, csvHeader + "\n"); let numbers = startingNumber.split(" "); let counter2 = Number(numbers[2]); let counter3 = Number(numbers[3]); let counter4 = Number(numbers[4]); for (let index = 0; index < 5000; index++) < if (counter4 == 99) < counter4 = 0; counter3++; >if (counter3 == 99) < counter3 = 0; counter2++; >let number = `$ $ $ $$`; let csvRow = `Unknown$. Mobile,$`; fs.appendFileSync(fileName, csvRow + "\n"); counter4++; console.log(`$ -> $`); > function twoDigit(number) < var twodigit = number >= 10 ? number : "0" + number.toString(); return twodigit; > 
Набор из 5000 французских номеров
И импортировал их в Gmail.

Почему это так легко, Google, ты что, крэйзи?
Затем я убедился, что мой телефон их синхронизировал (бедному телефону потребовался на синхронизацию целый час, не думаю, что он сможет выдержать ещё пять тысяч контактов).

Получение данных
Я модифицировал свой код так, чтобы он обходил в цикле все 5000 импортированных неизвестных контактов, и запустил его.
Оставил этот краулер на пару дней. (На самом деле на шесть дней, и это при помощи совершенно тупого кода! Серьёзно, здесь нет никакой защиты.) И вот какие получились красивые данные в дэшборде Grafana, взятом из предыдущего проекта.

Исходная выборка в 100 контактов. Каждое падение до 0 означает, что контакт пользовался смартфоном.
Также мы можем проверять, зарегистрирован ли номер в WhatsApp, выполняя запросы, как показано на скриншоте ниже.

Заключение
Мне удалось продолжать сканировать 5000 телефонов непрерывно в течение месяца при помощи простого кода скрейпинга.
Очевидно, WhatsApp не проверяет и не предупреждает злонамеренное использование этой функции. Мне удалось 15 000 раз использовать движок поиска для получения данных last seen за одну веб-сессию.
Для исследования я наскрейпил множество данных из 112 тысяч записей.
Моё исследование показало, что можно:
- Определить, зарегистрирован (или был ли зарегистрирован) номер телефона в WhatsApp
- Действителен (или был ли действителен) номер телефона и привязан ли он к телефонной сети
- Получать фото профиля пользователя WhatsApp (можно извлекать версию в большом размере)
- Получать сами данные last seen
Я использовал французский диапазон номеров 06xxxxxxxx (или 00336xxxxxxxx ), который переполнился 10 лет назад (поэтому тогда появился диапазон 07xxxxxxxx ). Поэтому, вероятно, можно допустить, что по крайней мере 80% номеров телефонов действительны.
Вот визуализация пользователей, сгруппированных по дате last seen , дающей представление о пользовании WhatsApp. Я собрал данные примерно в первую неделю февраля.

Снижение с 1357 активных пользователей в прошлом месяце до 281 на прошлой неделе довольно значительно, его можно связать с критикой WhatsApp в конце декабря 2020 года. Мне не очень интересно изучать эти данные подробнее, на этом всё, спасибо за внимание.
Messenger, Signal и Telegram (бонус)
(Facebook) Messenger не использует номеров телефонов контактов для поиска пользователей, потому что пользуется для этого аккаунтами Facebook. Совершенно иная структура, поскольку это социальная сеть и она меньше похожа на мобильный сервис VOIP. Думаю, множество похожих хаков с получением информации можно реализовать и в Messenger. Но это уже другая история, возможно, оставим её на следующий раз?
Signal и Telegram больше похожи на WhatsApp с точки зрения работы с контактами. Однако утечки там не так велики.
Данные last seen из Telegram менее доступны публично и менее подробны, например, они сообщают, что пользователь был онлайн около месяца назад . Движок поиска не имеет утечек, позволивших бы оценить количество пользователей во время моего исследования. Но теперь, спустя шесть недель, похоже, что это возможно. Меня это немного расстроило.
У Signal вообще нет функции last seen , здесь он чист. Однако посчитать пользователей было просто. Signal имеет уведомление is on Signal! , когда контакт начинает им пользоваться. Это помогает отслеживать переход пользователей на Signal.

В первый день исследования из 5000 пользователей 94 было в Signal, и каждый последующий день появлялось по 1-2 новичка. Никто не использует Signal во Франции, очевидно, влияние Илона Маска здесь не так велико.

Да, это картинка, чтобы за вами не могли следить.
На правах рекламы
VDSina предлагает безопасные серверы с посуточной оплатой. Возможно установить любую операционную систему, в том числе из своего образа. Каждый сервер подключён к интернет-каналу в 500 Мегабит и бесплатно защищён от DDoS-атак!
Создана программа для слежки за пользователями WhatsApp

В магазине App Store появилось приложение Chatwatch, которое позволяет любому владельцу iPhone следить за пользователями WhatsApp. Об этом сообщает Lifehacker.
«Используйте Chatwatch для мониторинга активности ваших друзей, родственников и подчиненных», — говорится в описании приложения.
По словам разработчиков, установившие программу люди смогут посмотреть, когда их собеседник последний раз заходил в приложение, даже если тот отключил функцию отображения статуса. Кроме того, приложение покажет, в какое время пользователь обычно ложится спать и просыпается.
Также Chatwatch позволяет узнать, общались ли между собой выбранные люди из списка контактов. Для этого приложение комбинирует личные данные нескольких пользователей.
При помощи программы разработчики планируют привлечь внимание к тому, как материнская компания Facebook обрабатывает личные данные посетителей социальных сетей и мессенджеров.
Приложение обойдется в 1,99 доллара. За эти деньги пользователи получают возможность следить за двумя определенными контактами в течение недели. Разработчики говорят, что все заработанные средства пойдут на поддержание программы и финансирование политической некоммерческой организации, выступающей против Дональда Трампа.
19 марта американские журналисты сообщили о беспрецедентной утечке данных 50 миллионов пользователей Facebook через аффилированную компанию Cambridge Analytica. Среди информации были списки друзей, предпочтения зарегистрированных людей и их телефонные контакты.

