Теория:
1. Добавляем номера в адресную книгу телефона до лимита (если он вообще есть в iOS или Android смартфонах)
2. Смотрим в профиль нужного человека
3. Если его номер есть в адресной книге — этот номер отобразится и в профиле телеграма
4. Если нет, продолжаем брутфорсить добавляя номера до победного конца
По поводу первого пункта — здесь можно написать скрипт для автоматизации действий, но так как я этого делать не умею, я воспользовался своим вторым телефоном для проверки теории и она оказалась рабочей. Прикрепляю скриншоты.
Скрин. №1 —

Скрин. №2 —

Скрин. №3 —

Скрин. №4 —

Я понимаю, что это не совсем баг, а скорее фича, для поиска друзей, зарегистрированных в телеграме, но в телеграме нет настройки для отключения такого поиска меня по номеру телефона (и отображения моего номера, в профиле, даже если у кого-то мой номер есть в адресной книге) и добавлять, видимо, такую настройку не собираются, а это прямая угроза безопасности, ведь если злоумышленник узнает номер телефона, то он сможет перехватывать коды, идущие по смс для входа в аккаунт, или сможет удалить его, если включен дополнительный пароль. Как это делается уже не раз обсуждали и здесь и на гиктаймсе (через подкуп сотрудников салонов сотовой связи, например). А отсутствие возможности подключить Google Authenticator вместо смс меня ещё сильнее поражает, чем то, о чём этот топик.
Я писал об этой проблеме на security@telegram.org 3 месяца назад, а в ответ до сих пор полное молчание.
Комментарии (15)
frees2
01.06.2017 13:34+11Телеграм, поставьте наконец «виртуальные номера», хоть буквенные id, это не имеет значения, которые можно привязать к почте и-или телефону. Чтобы не привязывать общение к телефону.
leave_me_here
01.06.2017 13:45-4Ещё раз доказывает, что анонимность только мнимая.
Toronton
01.06.2017 14:21+4Так Telegram про анонимность ничего и не утверждал. Приватность да (при соблюдении определенных правил), анонимность нет.
dolphin4ik
01.06.2017 14:00+11Следующая задача — найти номер телефона малоизвестного пользователя "@durov"
Kondra007
01.06.2017 14:03+4Если мне не изменяет память, после какого-то количества контактов (что-то вроде 5000), Telegram перестаёт добавлять людей в свою адресную книгу.
В любом случае, автор статьи не потрудился провести полноценный эксперимент, так что разговаривать тут не о чем (не в обиду автору, конечно же)tmnhy
01.06.2017 14:13-5Какой вам эксперимент нужен? Это же известный метод залогиниться на мобилке с чужого аккаунта — найти учётку зарегенную на публичные ресиверы SMS.
stek29
01.06.2017 14:21+10Не совсем. Есть 2 лимита: на общее количество контактов, и ограничение для предотвращения брутфорса.
Первый лимит — 10 000, если мне не изменяет память.
Второй лимит — что-то около 5000.
API возвращает список успешно добавленных контактов, список незарегистрированных номеров, и список номеров, которые не были проверены — их добавление клиент должен запросить позже.
Как-то ради эксперимента я попробовал добавить 10000 номеров. Сервер прислал около 200 новых контактов, 4800 номеров, которые не зарегистрированы в TG, и ещё 5000 номеров для повторного запроса.
Вот только повторный запрос естественно ничего не дал — ни один контакт не был обработан.
Я попробовал удалить часть контактов и отправить новый запрос — безрезультатно. Причем те контакты, которые сервер уже обработал до этого, продолжали обрабатываться. А любые другие, включая 5000 изначально необработанных просто игнорировались — сервер их не добавлял.
На следующий день я всё ещё не мог добавлять контакты. Больше не проверял, надоело.
Toronton
01.06.2017 14:23+3Веселая статья, особенно определение «брутфорса в адресной книге»))
руками перебирать все номера по каждому оператору, быстрее экран сотрешь))
А если у меня Telegram на виртуальный номер зарегистрирован, как быть брутфорсом в адресной книге?))
другой вопрос, если под рукой есть файл(ы) со всей абонентской базой ОпСоСов в формате *.csv,
а их 10ки млн. При синхронизации, от такого брутфорса даже серваки Google загнутся, не говоря уже о Telegramwhiskey
01.06.2017 15:27А если еще вспомнить, что дело не ограничивается операторами одной страны… :)
JTG
02.06.2017 16:52-1Допустим, некая Алиса Бобова, работающая учителем русской литературы, зарегистрировалась в телеграме под ником @HrenUznaeteKtoYa чтобы читать один жутко экстремистский канал со стихами террориста Алексея Экваториального, которые недавно попали под запрет согласно новому закону. Алиса пребывает в твёрдой уверенности, что телеграм не показывает никому номер телефона, если только не добавить кого-то в контакты. И поэтому никого не добавляет, все видят только её ник.
Но однажды Ева Морозова — ученица Алисы, которая сидит на том же канале под ником pavlik, начинает что-то подозревать и хочет уличить Алису в чтении преступных стихов. Ева находит страницу Алисы в социальной сети «ВКапусте» и… о, нет. Алиса достаточно осмотрительна, на странице не указан номер телефона. Ева не сдаётся и пробует восстановления пароля:
Что ж, 9999 вариантов лучше, чем «десятки миллионов». К сожалению, парадокс дней рождения в этот раз не срабатывает, Еве приходится раскошелиться на ещё одну сим-карту, и вот наконец возле ника @HrenUznaeteKtoYa засветился номер Алисы: ...-99-98. Ах, судьба-злодейка.
Ура, победа! Учительница русской литературы Алиса читает Экваториального, какой будет скандал! Ева решает безотлагательно начать шантажировать Алису — да вот прямо с аккаунта pavlik. Почему бы и нет, ведь Алиса никогда не добавляла Еву в контакты, да и не знает об уловке из этой статьи. Ева пишет Алисе сообщение с угрозами и требованием оставить 50 000 рублей (100 долларов) в урне возле школы и отправляется готовиться к контрольной по русской литературе…
Утром около урны находят труп школьницы с признаками насильственной смерти, наступившей в результате удара сзади тяжёлым тупым предметом.
К сожалению, Ева была недостаточно внимательна и не прочта FAQ телеграма:
if you have somebody‘s number saved as a contact and you send them a message, your number also becomes visible to them. Just like with SMS.
Мораль:
1. Приватность != анонимность.
2. Приватность «при соблюдении определённых условий» — хреновая идея, т.к. создаёт ложное ощущение безопасности.
3. Среди «безопасно/анонимно/удобно» выберите любые 2 пункта.
pyrk2142
01.06.2017 14:49Я писал об этой проблеме на security@telegram.org 3 месяца назад, а в ответ до сих пор полное молчание.
Телеграм вообще любит игнорировать сообщения. Отправлял им несколько багов, в ответ обещания посмотреть. И все. Так уже полгода жду ответа.
firstbyte
02.06.2017 06:31-2Думаю, поднять и автоматизировать такой переборщик (или их массив) в "контейнерах" с android x86 — вопрос времени.
Kpblc
Так таким образом можно любой мессенджер перебрать, который к номеру мобильного вяжется.
redmanmale
Поэтому мессенджер, требующий привязку к номеру мобильного, это плохой мессенджер.