Компания Интернет-Розыск, занимающаяся разработкой информационно-аналитических сервисов для правоохранительных органов и служб безопасности, запустила в Telegram бота, который позволяет пользователям получать информацию о номере мобильного телефона, привязанном к тому или иному аккаунту мессенджера.

Для начала использования бота @deanonym_bot нужно отправить ему сообщение содержащее nickname или ID пользователя Telegram, кроме этого боту можно и просто переадресовать любое сообщение, полученное от проверяемого пользователя. В ответ на поисковый запрос бот предоставит информацию о номере телефона пользователя, если таковая содержится в базе.

Разработчик сообщает, что бот не является полной версией Телеграм-Деанонимайзера, а создан исключительно для бесплатного пользования широкой аудиторией потребителей.

Полная версия Телеграм-Деанонимайзера предоставлена для тестирования в подразделения БСТМ МВД РФ. Кроме номера мобильного телефона, привязанного к профилю в Telegram, она позволяет устанавливать примерное местоположение используемого устройства, его операционную систему и язык пользовательского интерфейса.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы рассказать свою историю.


Мужчина с фотографией Павла Дурова на митинге в Москве против ужесточения государственного контроля над интернетом (март 2019 года). Фото: Шамиль Жуматов / Reuters

На прошлой неделе протестующие в Гонконге обнаружили, что Telegram показывает телефонный номер независимо от настроек конфиденциальности. Это вызвало настоящую панику, потому что Telegram является основным мессенджером для координации протестов. Раньше считалось, что он сохраняет конфиденциальность.

Сначала представители Telegram объясняли, что никакого бага нет: всё так специально задумано. Но под влиянием общественности дыру всё-таки решили закрыть.

Пока что о закрытии уязвимости не объявлено официально, но на официальной платформе переводов для интерфейса Telegram замечена специфическая строка для перевода:

Как видно на скриншоте, в интерфейс добавлена опция PrivacyPhoneNumberSettings.CustomDisabledHelp со следующим описанием: Users who add your number to their contacts will see it on Telegram only if they are your contacts («При добавлении вашего номера в свои контакты пользователь увидит вас в Telegram только в том случае, если он присутствует в вашей телефонной книге»).

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

Пока же функция не активирована — и в Telegram номера пользователей не скрываются от посторонних, как показано на скриншоте ниже.


Установка «Никто» по-прежнему позволяет посторонним узнать ваш номер телефона, если они добавят его в свою телефонную книгу

В данный момент не совсем понятно, будет ли новая настройка включена по умолчанию. Но если принять во внимание бизнес-интересы компании Telegram, это маловероятно. Компании выгодно стимулировать рост социального графа вирусным способом, то есть через контакт-листы и телефонные книги пользователей. Это главная причина, почему Telegram максимально широко транслирует номера телефонов и другие конфиденциальные данные.

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

В течение двух ближайших месяцев бесплатный мессенджер Telegram станет базой для платформы TON и криптовалюты Gram, под которую собрано 1,7 миллиарда долларов по программе предварительной продажи. Для успеха криптовалюты было очень важно набрать критическую массу пользователей. Telegram пытался привлечь максимально широкую аудиторию вирусным способом, в чём и преуспел.

Эксперты давно предупреждали, что нельзя доверять мессенджеру, который требует обязательного указания номера телефона при регистрации. На самом деле ещё в августе 2018 года стало известно о российской программе «Криптоскан», которая перебором 1 миллиарда номеров осуществляет деанонимизацию пользователей Telegram в России, Украине и Казахстане.

О существовании программы «Криптоскан» в августе 2018 года первой сообщила государственная газета «Известия». Она написала, что софт разработали программисты «Центра исследований легитимности и политического протеста»: «Мы проанализировали API (часть программного интерфейса приложения) и выяснили, что в мессенджере есть уязвимость, позволяющая раскрывать номера мобильных пользователей», — рассказал руководитель центра Евгений Венедиктов.

По словам Евгения Венедиктова, Центр исследований легитимности и политического протеста уже начал искать пользователей по запросу МВД и ФСБ.

Активисты в Гонконге более подробно описали этапы для деанонимизации пользователей: 1) скрипт генерирует контакт-лист с 10 000 телефонных номеров по порядку, 2) добавляется в группу протестующих, 3) Telegram сообщает, какие пользователи из контакт-листа уже есть в группе, 4) скрипт генерирует новый контакт-лист и повторяет вышеописанные действия, пока не переберёт все номера.

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

Последнее время безопасность Telegram (далее – телеграм) все чаще поддается критике и встает вопрос: «действительно ли телеграм хорошо защищен?»

Как и для любого мессенджера – важна его максимальная интеграция со сторонними сервисами. Для примера, телеграм в первую очередь работает с вашей телефонной книгой. Он синхронизирует ваши номера со своей базой и проверяет на наличие регистрации в телеграме. Далее – телеграм предлагает вам свободные сообщения и звонки с вашими потенциальными друзьями. «Удобно» — что еще сказать?

Воспользуемся этой удобностью.

Берем в руки Android. Я взял Samsung A3. Подключаем к ПК. Предварительно экспортируем контакты и получаем файлик с названием vCard.vcf. Следующие 5 минут прочтения этой статьи он будет нашим лучшим другом. Копируем себе на рабочий стол, открываем через текстовый редактор и видим следующую картину:

Каждый наш контакт заносится в некий шаблон с началом тега «BEGIN:VCARD» и концом «END:VCARD». Между ними находятся: имя контакта, телефон и фото (если есть) – это основные параметры, которые нам будут нужны.

Что ж, хорошо, но что это нам дает? А то, если мы создадим свою базу по подобному шаблону, то сможем импортировать ее обратно в наш телефон и использовать далее по назначению. Память андроида позволяет сохранять до 20 тысяч контактов. Ищем базу номеров в паблике/покупаем/генерируем сами, исходя из нашего региона, и т.д.

Смысл в том, чтобы собрать базу из 20 тысяч номеров, присвоить им номера и импортировать в наш телефон.

Я просто купил готовую базу для спама, номера которых зарегистрированы в телеграме. На PHP написал скриптик для генерации шаблона «name;number» и создал свой собственный vCard.vcf:

И так, мы имеем базу из 20к контактов, имена которых не известны, как и номера. Но мы же с вами собрались за экшеном, поэтому копируем эту базку на флешку нашего андроида, через контакты импортируем данную базу:

В итоге, имеем телефонную книгу из 20к контактов. Далее – самое интересное. Мы подрубаем интернет на телефоне. Желательно, Wi-Fi. Запускам клиент телеграма и, О, ЧУДО! «Телега» предлагает нам синхронизацию контактов, так как считает, что у нас якобы появились новые контакты, а, значит, потенциальные друзья! Мы соглашаемся, конечно же. И что делает телега? Телеграм проверяет ваши номера из телефонной книги на регистрацию в своей базе и выдает вам фото контактов, которые зарегистрированы!

И так, мы теперь знаем номер телефона и фото пользователя. Что же нам с этим делать? А делаем мы следующее: экспортируем все наши контакты. Стандартный экспорт контактов из телеграма не поможет, так как он не показывает фото, поэтому мы можем, воспользовавшись API, написать свой скриптик или взять готовый. Я взял готовый с гитхаба «ExportTelegramContacts». В конфиге надо прописать данные своего API, зарегистрировавшись как разработчик. Делается все за минуты.

Запускаем приложение через консоль

Авторизуемся и вводим команду на экспорт с фото!

Спустя некоторые секунды/минуты получаем файлик с форматом:

Абсолютно такой же вид, как и был у нас при генерировании импорта, только добавилось поле «фото». Это аватарка нашего контакта, зашифрованная base64.

То есть, телеграмм «сожрал» нашу базу из 20к номеров и выдал нам все контакты, которые зарегистрированы в системе, попутно привязав к ним реальный аватар пользователя: (фото есть не у всех пользователей).

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

Ну, а потом все повторяется. Экспортируем базу через ExportTelegramContacts и имеем такой же файл формата vcf с данными пользователей (фото, имя, логин).

Затем нам просто нужно сравнить 2 файла и перебрать всех пользователей из первого и второго аккаунтов. Сравнивать мы будем, конечно же, по фото (base64). Соответствующие фото будут означать найденных пользователей, следовательно, мы объединим их фото, логин, номер и имя. Таким образом, мы пробили данные нужных нам пользователей.

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

И так, подведем итоги! Все просто! Имеем 2 телеграм аккаунта. Один нам нужен для импорта номеров, которые будем пробивать. В другой добавим интересующих нас людей. Экспортируем из первого аккаунта все наши контакты, которые определил телеграм, как друзей. Вид экспорта будет: «номер_телефона: фото». Из другого экспортируем те же самые контакты, только вид уже будет: «логин: фото».

Ну, а дальше все просто. Сравниваем два файла и перебираем циклично все контакты, находим те, которые соответствуют фото.

Таким образом, фото из одного списка, которое соответствует фото из друго списка, приравнивается к нашей жертве, и мы узнаем его номер.

Ведь, фото = фото => логин + номер

Наглядный скриптик для полного перебора пользователей: (извиняюсь за красивый код).

Подведем итоги!

Вы можете помочь и перевести немного средств на развитие сайта